我想我的div调整它的高度,总是等于它的宽度。宽度是百分数。当父元素的宽度减小时,盒子应该通过保持其纵横比减小。
这是CSS怎么做的?
我想我的div调整它的高度,总是等于它的宽度。宽度是百分数。当父元素的宽度减小时,盒子应该通过保持其纵横比减小。
这是CSS怎么做的?
适用于几乎所有浏览器。
你可以试着按百分比给衬底。
<div style="height:0;width:20%;padding-bottom:20%;background-color:red">
<div>
Content goes here
</div>
</div>
外部div正在制作一个正方形,内部div包含内容。这个方法对我奏效过很多次。
这是jsfiddle
为了达到你想要的效果,你可以使用viewport-percentage length vw。
下面是我在jsfiddle上做的一个快速示例。
HTML:
<div class="square">
<h1>This is a Square</h1>
</div>
CSS:
.square {
background: #000;
width: 50vw;
height: 50vw;
}
.square h1 {
color: #fff;
}
我相信有很多其他的方法可以做到这一点,但对我来说,这种方法似乎是最好的。
这是我想到的。这是一把小提琴。
首先,我需要三个包装器元素,分别用于正方形和居中文本。
<div><div><div>Lorem ipsum dolor sit amet, consectetuer adipiscing elit,
sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat
volutpat.</div></div></div>
这是样式表。它使用了两种技术,一种用于方形形状,另一种用于居中文本。
body > div {
position:relative;
height:0;
width:50%; padding-bottom:50%;
}
body > div > div {
position:absolute; top:0;
height:100%; width:100%;
display:table;
border:1px solid #000;
margin:1em;
}
body > div > div > div{
display:table-cell;
vertical-align:middle; text-align:center;
padding:1em;
}
这就像指定一个与宽度相同大小的填充底部一样简单。所以如果你的宽度是50%,就使用下面的例子
id or class{
width: 50%;
padding-bottom: 50%;
}
这是一个jsfiddle http://jsfiddle.net/kJL3u/2/
编辑版本与响应文本:http://jsfiddle.net/kJL3u/394
另一种方法是在div中使用透明的1x1.png,宽度:100%,高度:auto,并在其中绝对定位内容:
html:
<div>
<img src="1x1px.png">
<h1>FOO</h1>
</div>
css:
div {
position: relative;
width: 50%;
}
img {
width: 100%;
height: auto;
}
h1 {
position: absolute;
top: 10px;
left: 10px;
}
Fidle: http://jsfiddle.net/t529bjwc/
HTML
<div class='square-box'>
<div class='square-content'>
<h3>test</h3>
</div>
</div>
CSS
.square-box{
position: relative;
width: 50%;
overflow: hidden;
background: #4679BD;
}
.square-box:before{
content: "";
display: block;
padding-top: 100%;
}
.square-content{
position: absolute;
top: 0;
left: 0;
bottom: 0;
right: 0;
color: white;
text-align: center;
}
http://jsfiddle.net/38Tnx/1425/