我有一个<div>
100px
高(出于演示目的)
在<div>
内部是另一个60%
高,其中margin-top
为20%
。
我希望结果为60px
高<div>
,margin-top
为20px
。
不幸的是,事实并非如此,我无法想出这一点。
这是CSS:
html, body {
min-height:100%;
}
div#one {
height:100px;
}
div#two {
background:red;
height:60%;
margin-top:20%;
margin-bottom:0;
width:100%;
}
HTML:
<html>
<body>
<div id="one">
<div id="two">
</div>
</div>
</body>
</html>
这是一个jsFiddle。
感谢。
答案 0 :(得分:1)
使用relative
职位尝试this fiddle。
div#one {
background-color:green;
height:100px;
width: 100%;
}
div#two {
float: left;
position: realtive;
background:red;
height:60%;
width: 100%;
margin-top: 2.5%;
}
答案 1 :(得分:1)
html, body {
margin: 0px;
padding: 0px;
}
div#one {
height: 100px;
min-height: 100px;
max-height: 100px;
}
答案 2 :(得分:1)
边距/填充属性的百分比值始终相对于包含块的宽度,即使在margin-top
和margin-bottom
的情况下 - 来自2.1 Spec:
<强>保证金强>
<percentage>
:百分比是根据生成的框的包含块的宽度计算的。 请注意,对于'margin-top'和'margin-bottom'也是如此。如果包含块的宽度取决于此元素,则在CSS 2.1中未定义结果布局。
答案 3 :(得分:0)
html, body {
min-height: 100px;
}
div#one {
height: 100px;
}
div#two {
background: red;
height: 60px;
margin-top: 20px;
margin-bottom: 0;
width: 100%;
}
答案 4 :(得分:0)
如果您查看http://www.w3.org/TR/CSS2/box.html#propdef-margin-top处的规格,您会注意到
百分比:指包含块的宽度
所以在你的情况下,20%适用于#two
意味着#one
宽度的20%