我有以下代码:
HTML:
<div class="main">
<div class="myClass1">
</div>
<div class="myClass2">
</div>
<div class="myClass3">
</div>
<div class="myClass4">
</div>
</div>
CSS:
.main {
width:100%;
height:100px;
background-color:#000;
}
.myClass1 {
height: 100px;
width:200px;
background-color: blue;
display: inline-block;
}
.myClass2 {
height: 100px;
width:200px;
background-color: yellow;
display: inline-block;
}
.myClass3 {
height: 100px;
width:200px;
background-color: red;
display: inline-block;
}
.myClass4 {
height: 100px;
width:200px;
background-color: yellow;
display: inline-block;
}
JSFiddle:http://jsfiddle.net/a2whdvmw/
我希望它们都与main
的右边对齐,但是当我调整窗口大小时,某些时候myClass1
会到达main
的左边缘,我想要{{1从那一点开始在myClass3
和myClass2
之间挤压。
myClass4
,myClass1
和myClass2
都有固定的尺寸。因此,当我调整窗口大小时,我想要更改的唯一宽度是myClass4
。
是否可以仅使用CSS执行此操作?
答案 0 :(得分:1)
使用flex布局。
为flex: 0 1 200px
指定.myClass3
。这将导致它不会增长,但仍允许从200px
的弹性基宽度缩小。对于其余部分,请指定flex: 0 0 200px
以禁止展开和缩小,有效修复200px
处的内容,因为.myClass3
会随着可用空间的减少而缩小。
演示小提琴:http://jsfiddle.net/abhitalks/a2whdvmw/1/
演示代码段
.main { width:100%; height:100px; background-color:#000; display: flex;}
.myClass1 {
flex: 0 0 200px;
height: 100px; background-color: blue;
}
.myClass2 {
flex: 0 0 200px;
height: 100px; background-color: yellow;
}
.myClass3 {
flex: 0 1 200px;
height: 100px; background-color: red;
}
.myClass4 {
flex: 0 0 200px;
height: 100px; background-color: yellow;
}
&#13;
<div class="main">
<div class="myClass1"></div>
<div class="myClass2"></div>
<div class="myClass3"></div>
<div class="myClass4"></div>
</div>
&#13;