这里有两个p, 都向左浮动,其中sub 设置了margin-left:-100%; 请问为何会出现这样的效果,sub能够占据到main上面。
在线demo:
http://codepen.io/anon/pen/zvJeNG
请问这个负边距有何妙用,为何-100% 和 -190px(p的宽度)效果截然不同呢?
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<title>Document</title>
</head>
<body>
<p class="main">
this is main</p>
<p class="sub">
this is sub
</p>
</body>
</html>
.main{
float:left;
width:100%;
background-color:aqua;
}
.sub{
float:left;
width: 190px;
margin-left:-100%;
background-color:black;
}
margin值是百分比數的時候,是相當於元素的包含區塊的width來計算的
你這兒的.sub margin-left:-100%的100% 是相對於sub的包含塊 body的width 來計算
也就是body的寬度
而-190px只是190個像素
1、這兩個p都設定了左浮動,當body的寬度足夠他們倆平排在一起的時候,他們一定會排在同一行。
2、sub設定了-100%,這個100%是相對於它的父元素body的寬度,也就是說它等於body的寬度,所以,它就回到了最左邊,而sub的寬度為190px ,那就是從最左邊開始排列,就是現在這個樣式。