我有两个不同的div,内容各不相同,我希望它们的高度和宽度相同。将它们的高度和宽度设置为固定像素大小似乎不是一个好主意,因为它们的大小可能会根据浏览器/屏幕大小而变化。将宽度设置为百分比可以解决问题,但是高度不能使用百分比。
是否有一种方法可以确保两个div具有相同的尺寸而不设置固定像素大小?或者固定像素大小真的很糟糕吗?
display: table;
,然后内部有两个div,分别设置CSS样式为 display: table-cell;
,这样就可以实现你想要的效果。<div class="container">
<div class="first-div">first div </div>
<div class="second-div">second div </div>
</div>
.first-div{
-webkit-flex: 1; /* Safari 6.1+ */
flex: 1;
background-color:yellow;
border: 2px solid black;
}
.second-div{
-webkit-flex: 1; /* Safari 6.1+ */
flex: 1;
background-color:blue;
border: 2px solid black;
}
.container{
width:auto;
display: -webkit-flex; /* Safari */
-webkit-align-items: center; /* Safari 7.0+ */
display: flex;
align-items: center;
}
希望这能帮到您。div {
height:100vh;
}
在使用高度时,您需要确保有一个完整的主体可供使用。默认情况下,body
的高度是自动的。如果将高度设置为 100%
,则可以开始在子元素上使用高度属性。
只需记住,高度始终设置为其父级:
body,html{height:100%;}
div{width:50%; height:50%;}
.el1{float:left; background:#f00;}
.el2{float:right; background:#0f0;}
<div class="el1"></div>
<div class="el2"></div>
制作响应式的正方形容器非常简单和直观
使用padding-bottom实现可缩放的百分比高度:
基本上,将高度设置为0,然后将底部填充设置为任何所需的百分比即可。
.box {
float: left;
width: 23%;
height: 0;
padding-bottom:23%;
margin: 1%;
background-color: #e6e6e6;
box-sizing: border-box;
text-align: center;
}
<section>
<div class="box">
1
</div>
<div class="box">
2
</div>
<div class="box">
3
</div>
<div class="box">
4
</div>
</section>
vw
,比如div{width:50vw;height:50vw;}
? - Stickers50vh
而不是50vw
。 - zgood