我对大多数浏览器(即ff,chrome,safari)都有一个非常奇怪的“问题”。 以下是示例代码:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<style type="text/css">
html{
outline: 1px #0ff solid;
background: rgba(0,255,255,0.1);
}
body{
margin: 0;
padding: 0;
outline: 1px #00f solid;
background: rgba(0,0,255,0.1);
}
#aDiv{
width: 300px;
outline: 1px #f00 solid;
background: rgba(255,0,0,0.2);
}
#bDiv{
margin-top: 100%;
outline: 1px #0f0 solid;
background: rgba(0,255,0,0.1);
}
</style>
</head>
<body>
<div id="aDiv">
<div id="bDiv">
content
</div>
</div>
</body>
</html>
当您更改#aDiv宽度时,#bDiv margin-top将更改为相同的值。 我不知道它是如何可能的,高度是宽度。无论如何,也许你可以解释一下我在做什么?
最好的问候;)
d
答案 0 :(得分:12)
&LT;百分比&GT;百分比是根据宽度计算的 生成的框包含块。请注意,这是真的 'margin-top'和'margin-bottom'也是如此。如果包含块的话 width取决于此元素,然后生成的布局未定义 在CSS 2.1中。
相当无用,对吧?您是否考虑过使用position: absolute
和bottom: 0
?它们可能更符合您的需求。
答案 1 :(得分:8)
您可以尝试视口相对单位(1vw =视口宽度的1%,1vh =视口高度的1%)。
尝试margin-top: 90vh;
?
答案 2 :(得分:4)
#bDiv{
margin-top: 100%; --> This need to change
outline: 1px #0f0 solid;
background: rgba(0,255,0,0.1);
}
这不是一个奇怪的问题。这是因为您已将margin-top
设置为100%,因为aDiv
是bDiv
的父级,因此aDiv
的宽度为margin-top
。
答案 3 :(得分:1)
这与bDiv上具有margin-top: 100%;
如果你删除它,一切都恢复正常。