margin负值应用

margin,外边距,对于盒模型来说,这应该是一个十分熟悉的属性。设置外边距可以拉开两元素的距离,而上下margin会塌陷,给一个块级元素设置margin-left或是margin-right,这个元素会移动,等等。

在了解css布局中的经典布局,圣杯布局和双飞翼布局时,了解到了给浮动元素设置margin-left:-100%和margin-left:-XXpx;(XX为该元素的宽度)的一些奇怪现象。

总所周知,当第一个浮动元素占满一行时,第二个浮动元素就会被迫挤到第二行,像:

<body> 
     <div style="float:left;height:50px;width:100%;background-color:#ccc;"></div> 
     <div style="float:left;height:50px;width:300px;background-color:olive;"></div>
     <div style="float:left;height:50px;width:300px;background-color:#abc;"></div>
</body>

margin负值1

但如何让第二行的元素跑到第一行呢?

绝对定位,嗯,是的,可以,但是不用这个会使页面变乱的属性,没有别的方法了么?

那就使用margin-left吧!

给第二个div设置margin-left:-300px,给第三个div设置margin-left:-100%,我们便可以看到效果了

margin负值2

当然也可以给margin-left设置其他的负值,依然是有效的(可以尝试下),只是现在这两个值比较特殊。

发表评论