<!doctype html>
<html>
<head>
<meta charset="utf-8">
<style>
body{
margin:0;
font-size:5em;
}
.a,.b,.c{
width:200px;
height:200px;
}
.a{
background-color: red;
width:100%;
float:left;
}
.b{
background-color: green;
width:100%;
float:left;
}
.c{
background-color: yellow;
float: left;
/*margin-left:-100%;*/
}
</style>
</head>
<body>
<p class="a">a</p>
<p class="b">b</p>
<p class="c">c</p>
</body>
</html>
代码如上,在浏览器中显示如下:
如果给方块C添加margin-left:-100%,效果如下:
方块C移动到了绿色部分,看了相关博文了解负边距是能够移动添加了float属性的元素,这还能理解,但如果把-100%改成-200%,我以为可以让方块C再移上去到红色部分,但却没有,似乎移到了绿色部分的左边而且到了屏幕外,这是为什么? 如图:
float
是很怪异的一个css属性,也是新手常犯迷糊的一个属性。页面元素添加该属性后,该元素会从页面上“飘”起,然后其父级元素高度归零(即脱离文档流),这是常见的浮动效果。但实际使用中,它貌似是只影响上一行结构的。你的代码, 如果给
.c
继续添加margin-top: -200px;
的话,就可以实现.c
叠加在.a
上了。