我在編寫網站時遇到了一個我無法理解的問題。爲什麼css float會將子元素的填充添加到父元素?
我有兩列,使用浮動:左(和保證金:0填充:0) 裏面的列是塊
當塊是空的有沒有問題,我甚至可以將文本添加到它,而無需使用<p>
標籤。 但是,當我在塊中添加<p>
標記時,父項列會添加一些填充。
當我不使用float:left
(所以只有一列),但我可以使用塊內的<p>
標記沒有填充添加到父元素。
當然,我可以想出一些解決辦法,但我也想明白爲什麼會發生這種情況,如果有人知道如何恢復事情的奇怪行爲。
我有一個活的問題演示here。
<style>
#html, body{
margin: 0;
padding: 0;
height: 100%;
font-size: 100%;
}
#pagewrap {
padding: 0 20px;
width: 960px;
height: 100%;
margin: 0 auto;
background: #CCC;
}
.test {
width: 100%;
height: 100px;
margin: 0;
padding: 0;
background: #00F;
clear: both;
}
.column {
width: 480px;
margin: 0;
padding: 0;
float: left;
background: #0F0;
}
.column2 {
width: 480px;
margin: 0;
padding: 0;
background: #0F0;
}
.lefty {
min-height: 100px;
width: 470px;
margin: 0 10px 10px 0;
padding: 0;
background: #999;
}
.righty {
min-height: 130px;
width: 470px;
margin: 0 0 10px 10px;
padding: 0;
background: #999;
}
</style>
<div id="pagewrap">
<div class="test"></div>
<div class="column">
<div class="lefty">
<p></p>
</div>
<div class="lefty">
<p></p>
</div>
</div>
<div class="column">
<div class="righty">
</div>
<div class="righty">
</div>
</div>
<div class="test"></div>
<div class="column2">
<div class="lefty">
</div>
<div class="lefty">
</div>
</div>
<div class="test"></div>
<div class="column2">
<div class="lefty">
<p></p>
</div>
<div class="lefty">
<p></p>
</div>
</div>
<div class="test"></div>
</div>
的p標籤必須引起間隙 – Xaver
沒有像樣的CSS重置填充,所有元素有一個默認的填充和保證金。 – Mark