我有三个<div>
元素:
<div class="foo">A</div>
<div class="foo">B</div>
<div class="foo">C</div>
随着屏幕尺寸的变化,我想写一些CSS来创建以下效果:
我知道如何实现以下(不受欢迎的)行为:
div.foo {
display: inline-block;
vertical-align: top;
width: 300px;
}
有没有一种简单的方法(pref。没有任何Javascript库)来实现我想要的主要浏览器(Chrome,Safari,Firefox,IE9 +)的行为?
答案 0 :(得分:2)
如果没有额外的包装div和媒体查询,我认为这是不可能的。
HTML:
<div class="box-wrap">
<div class="box">a</div>
<div class="box">b</div>
</div>
<div class="box">c</div>
CSS:
.box {
border: 1px solid #000;
float: left;
height: 300px;
width: 300px;
}
.box-wrap {
float: left;
width: 300px;
}
@media (min-width: 900px) {
.box-wrap {
width: auto;
}
}
答案 1 :(得分:1)
将A和B包裹在自己的容器中。
<div class="foo-wrap">
<div class="foo">A</div>
<div class="foo">B</div>
</div>
<div class="foo">C</div>
然后使用媒体查询来控制较小屏幕上A / B列的显示:
.foo-wrap {
display: inline-block;
}
div.foo {
display: inline-block;
vertical-align: top;
width: 300px;
}
@media all and (max-width: 925px) {
.foo-wrap {
width: 300px;
}
}