我正在尝试将div
元素保持为特定比率(例如,1:2),但保持宽度小于200px。
到目前为止我得到了什么:
div {
width: 100%;
height: 0;
padding-bottom: 50%;
max-width: 200px;
}
它不起作用 - 如果我展开窗口,宽度会以200px的速度停止扩展,但高度会不断增长!
我已尝试设置box-sizing: border-box
和max-height: 100px
,但都无法正常工作。
我该怎么办?
这是一个小提琴:http://jsfiddle.net/WVu3s/
答案 0 :(得分:3)
这是一个基于此post代码的纯CSS解决方案,但有一些小的改动:
HTML
<div class = "box">
<div class = "content">Ratio 1:2</div>
</div>
CSS
/* Box styles */
.box {
width: 100%;
position: relative;
display: inline-block;
max-width:200px; /* max width of the box */
}
.box:after {
padding-top: 50%; /*1:2 ratio*/
display: block;
content: '';
}
/* Style that should be applied to the box content */
.content {
position: absolute;
width: 100%;
height: 100%;
top: 0;
left: 0;
background-color: green;
}
这是一个demo
答案 1 :(得分:0)
在我的情况下,问题是我想根据应用于body标签的CSS类显示两个不同的图像。我本可以只使用display:none,但我不想在上面显示它,但是那只涉及到只需要一个时就加载两者,所以我得出了这样的结论:
HTML:
<div class='arrow'>
<img src="/img/arrow.png" style='max-width: 100%;'>
</div>
CSS:
.arrow {
max-width: 100%;
overflow: auto;
}
.darktheme .arrow {
background: url(/img/arrow-darktheme.png) center no-repeat;
}
.darktheme .arrow img {
opacity: 0;
}
它在Darktheme条件下都加载,但如果未应用darktheme,则仅加载一个。