我有这样的HTML:
<div id='content'>
<div id='first'>...</div>
<div id='second'>...</div>
</div>
#content
{
width:100%;
position:relative;
padding:20px;
}
#first
{
width:70%;
position:relative;
}
#second
{
width:70%;
position:fixed;
}
这导致第二个div比第一个div更宽一点(确切地说是40px),因为第一个div的70%是相对于内容的宽度(100%减去每边20px的填充) )。
第二个div的70%指的是什么?我怎么能让两个div的宽度相同呢?
答案 0 :(得分:7)
第一个div
的70%指的是#content
宽度的70%。
第二个div
的70%是指视口宽度的70%。
如果添加此CSS,则两个div
的宽度相同:
html, body {
margin:0; padding:0
}
答案 1 :(得分:5)
根据CSS 2.1 Positioning Scheme spec:
在手持,投影的情况下, 屏幕,tty和电视媒体类型, 盒子是固定的 视口...
这让我相信你设置的70%实际上是视口的70%。
至于使其与其他div的宽度相同,也许您可以使用JavaScript(或明确指定宽度)。
答案 2 :(得分:2)
这个奇怪的行为(很棒的问题!!)可以参考这样一个事实:相对div(第一个)看着他父亲的宽度。第二个看看视口,不管是谁的父亲(以及它的父亲的宽度是多少)!
这可以解决您的问题:
body,html{
padding:0;
}
编辑 - &gt; Fiddle
答案 3 :(得分:0)
我使用javascript设置绝对宽度来检测#first的计算宽度。