三行并列

1 <div class="content">
2     <div class="left"></div>
3     <div class="center"></div>
4     <div class="right"></div>
5 </div> 
1 body{margin:0;padding:0;}
2 .content div{
3      width:100px;
4      height:100px;
5      background:rgb(147,172,213);
6      margin:10px;
7 }

方法一:float

 1 .content div{float:left;} 

三个div一起浮动,浮动元素无外边距合并问题,故center左右margin都是20px。

 方法二:绝对定位

1 .content {position:relative;}
2 .content div{position:absolute;}
3 div.center{top:0;left:110px;}
4 div.right{top:0;left:220px;}  

设置父元素为relative,被定位的子元素为absolute,绝对定位不占位空间,所以此时三个元素会重叠于父元素的顶点,再用top,left布局左右margin10px。

方法三:inline-block

  1 .content div{display:inline-block;} 

将其变为行内块元素,但是这样div之间会有额外间距,且兼容问题较多。

方法四:margin负值

1  div.center{
2       margin-left:120px;/*100+10*2=120px 以下数值都以center左右margin为10px考虑*/
3       margin-top:-110px;/*100+10=110px 要想用margin-top实现上移,则其值为负*/
4 }
5 div.right{
6       margin-left:230px;/*100*2+10*3=230px*/
7       margin-top:-110px;/*当center上去之后,原占位空间不存在,right上移,故再移动需要的高度与center一致为100+10=110px。而如果先写right,margin-top就应该上移(100+10)*2=220px*/
8 }

在网速较慢或者高频率刷新时,使用margin负值会出现明显的移动,故此法不作推荐。

posted @ 2015-01-27 15:21  Ssnowy  阅读(394)  评论(1)    收藏  举报