【发布时间】:2014-04-21 10:19:54
【问题描述】:
在《CSS 权威指南》中,作者说“这七个属性的值加起来必须等于元素包含块的宽度,通常是块元素父级的宽度值”。但在下面,子元素比父元素宽。
//html
<div class="wrapper">
<div class="content-main">
<div class="main">This is main</div>
</div>
</div>
// 风格
.wrapper {
width: 500px;
padding: 30px 0;
border: 1px solid #0066cc;
}
.content-main {
padding: 0 20px;
border: 2px solid #00CC33;
}
.main {
width: 500px;
border: 1px solid #f00;
}
所以我有两个问题:
作者所说的“七个属性加起来必须等于元素包含块的宽度”是什么意思。
为什么在我的示例中,元素会突出父元素。
在编辑版本中,这七个属性加起来就是元素包含块的宽度,看起来效果很好。为什么等式不适用于我的示例?
编辑版本
p.wide宽度为438px,作者计算如下
10px(左边距)+ 1(左边框)+ 0 + 438px + 0 + 1(右边框)- 50px(右边距)= 400px(父宽度)
// HTML
<div>
<p class="wide">A paragraph</p>
<p>Another paragraph</p>
</div>
// CSS
div {width: 400px; border: 3px solid black;}
p.wide {
margin-left: 10px; width: auto; margin-right: -50px;
border: 1px solid #f00;
}
【问题讨论】:
-
你可以按照外星先生的建议alter box-sizing