您现在的位置是:网站首页> 编程资料编程资料

CSS margin全面了解_CSS教程_CSS_网页制作_

2021-09-12 1314人已围观

简介 下面小编就为大家带来一篇CSS margin全面了解。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧,祝大家游戏愉快哦

一、margin可以为负值

在盒模型中,内容区的width/height、padding、border都不能为负值,但是margin例外,它可以为负值。

关于margin负值的使用技巧,了解不多,日后有机会再补充,此处先贴一个经典应用,margin-left负值结合浮动实现不改变DOM结构的流体布局。

此demo与CSS float浅析篇中的是同一个。

XML/HTML Code复制内容到剪贴板
  1. >  
  2. <html>  
  3.     <head>  
  4.         <meta charset="utf-8">  
  5.         <title>不改变DOM结构的流体布局title>  
  6.         <style>  
  7.             .container {   
  8.                 width:600px;   
  9.                 margin-left: auto;   
  10.                 margin-right: auto;   
  11.                 background-color: orange;   
  12.                 font-size: 16px;   
  13.                 line-height: 1.5;   
  14.             }   
  15.   
  16.             .box1 {   
  17.                 width:100%;   
  18.                 float:left;   
  19.             }   
  20.   
  21.             .box2 {   
  22.                 margin-right: 220px;   
  23.                 padding-left: 20px;   
  24.             }   
  25.   
  26.             img {   
  27.                 width:200px;   
  28.                 float:left;   
  29.                 margin-left:-200px;   
  30.             }   
  31.   
  32.             .clearfix:after {   
  33.                 content: "";   
  34.                 display: table;   
  35.                 clear: both;   
  36.             }   
  37.   
  38.             .clearfix {   
  39.                 *zoom: 1;   
  40.             }   
  41.   
  42.         style>  
  43.     head>  
  44.     <body>  
  45.         <div class="container clearfix">  
  46.             <div class="box1">  
  47.                 <div class="box2">  
  48.                 <h3>不改变DOM位置的流体布局h3>  
  49.                 <p>假如有一段文本和一幅图像,在DOM节点中,文本在前,图像在后,怎么能把图像定位到右边呢?p>  
  50.                 <p>通常的做法是,调换DOM节点中图像与文本的位置,让图像在前,文本在后,然后将图像浮动到右边即可。p>  
  51.                 <p>但这样改变DOM节点顺序始终不妥,还有什么更好的方法呢?p>  
  52.                 <p>下面就介绍一种新的思路来完成布局。p>  
  53.                 <ul>  
  54.                     <li>将文本用div包起来,定义为box1;现在的结构是一个box1和一个img。li>  
  55.                     <li>将box1宽度设为100%,左浮动;将img设置一个宽度,也左浮动,然后margin-left设为负的宽度值;此时图像就定位到文本的右边啦。li>  
  56.                     <li>但是有一个问题,图像盖住了文本内容,这可怎么办?li>  
  57.                     <li>重点来了,在box1中增加一个box2,box2把文本全部包起来,然后margin-right设为图像的宽度(+额外的间距),这样就解决问题啦!li>  
  58.                 ul>  
  59.                 div>  
  60.             div>  
  61.             <img src="http://imgsrc.baidu.com/forum/w%3D580/sign=0c101fe665380cd7e61ea2e59145ad14/f9a3492762d0f7032de1758a08fa513d2797c542.jpg" alt="a picture" style="width:200px;height:300px" />  
  62.         div>  
  63.     body>  
  64. html>  

二、margin的百分比数值

当margin属性的值为百分数时,其总是以父元素的width为基数进行计算。

请看下面这个demo,当初折磨了我N久的。。。只怪我知道得太晚了,说多了都是泪啊。。。

XML/HTML Code复制内容到剪贴板
  1. >  
  2. <html>  
  3.     <head>  
  4.         <meta charset="utf-8">  
  5.         <title>margin的百分数值title>  
  6.         <style>  
  7.             .container {   
  8.                 width: 500px;   
  9.                 height: 300px;   
  10.                 margin: 50px auto;   
  11.                 background-color: orange;   
  12.                 border: 1px solid black;   
  13.             }   
  14.   
  15.           &

-六神源码网