我的部分 css 布局设置了相对于宽度的 div 高度,以便所有屏幕尺寸的宽高比都相同。这样我就不会专门将 div 的高度设置为 px 值 - 高度只是宽度的纵横比。如果您以前没有遇到过这种技术,here is a good explanation .
到我的具体问题...
考虑到这一点,我创建了以下简单的 div,它的宽度是高度的两倍:(to see it in action please see this fiddle)
<html>
<head>
<style type="text/css">
.container
{
position:relative;
width:50%;/*half the width of the whole page*/
margin:auto;/*center the whole thing*/
}
.relative_container
{
background-color:blue;
position:absolute;
width:100%;
top:0;
left:0;
}
.set_height
{
width:100%;
height:100%;
margin-top:50%;/*aspect ratio 2:1*/
}
</style>
</head>
<body>
<div class='container'>
<div class='relative_container'>
<div class='set_height'></div>
</div>
</div>
</body>
</html>
到目前为止一切都很好。但是我想在第一个下添加另一个相同的 div。正如您在 this fiddle 中看到的那样,我无法让它们以任何方式显示,只能相互叠加。毫无疑问,答案在于清除 div as demonstrated here但我想不通。
最佳答案
您的 relative_container
类是绝对定位的,因此它将两个 div 放置在 top:0, left:0 处,宽度和高度相同(因此它们彼此重叠)。这对您正在做的事情没有意义。
如果您将定位更改为相对,并将 float: left
添加到您的奇怪命名的 relative_container
,您将获得所需的行为,因为它们将“ float ”到父 div 中最左边的位置。
此外,您的“清晰”div 没有做任何事情。 clear 属性告诉其他 div 不要 float 到给定 div 的右/左。如果您的 div 的宽度为 100%(即它填满了父级),那么它旁边无论如何都不能 float 。
示例 1:http://jsfiddle.net/NKRPe/13/
编辑: This second example在不使用虚拟 div 的情况下完成相同的任务。请注意,可以使用 padding-top
或 padding-bottom
。
关于css - 高度相对于宽度的多个垂直 div,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14671410/