目前我有一些类似于下面代码的东西。我试图使红色列不负责任,设置宽度为300px,但保持蓝色列的响应性。
.specific-image-container {
display: flex;
position: relative;
width: 100%;
}
.specific-image-column {
flex: 4;
background-color: blue;
}
.more-images-column {
flex: 1;
background-color: red;
}
.content {
height: 300px;
}
<div class="specific-image-container">
<div class="specific-image-column">
<div class='content'></div>
</div>
<div class="more-images-column">
<div class='content'></div>
</div>
</div>
是,将固定列设置为flex-grow: 0
(使其不增长(、flex-shrink: 0
(使其不会收缩(和flex-basis: 300px
(使其固定在300px(。
jsFiddle演示
.specific-image-container {
display: flex;
}
.specific-image-column {
flex: 1;
background-color: blue;
}
.more-images-column {
flex: 0 0 300px; /* new */
background-color: red;
}
.content {
height: 300px;
}
<div class="specific-image-container">
<div class="specific-image-column">
<div class='content'></div>
</div>
<div class="more-images-column">
<div class='content'></div>
</div>
</div>
在不负责任的元素上设置flex-shrink: 0; width: 300px;
,在灵活的元素上设定flex-grow: 1;
。一旦完成了flex
属性,就可以去掉它。
尝试使用flex-basis
规则。您可以使用此规则来代替flexbox元素中的宽度。您还可以使用calc将第一列设置为100%-300px,以确保300px具有优先级。
.specific-image-container {
display: flex;
position: relative;
width: 100%;
}
.specific-image-column {
flex-basis: calc(100% - 300px);
background-color: blue;
}
.more-images-column {
flex-basis: 300px;
background-color: red;
}
.content {
height: 300px;
}
<div class="specific-image-container">
<div class="specific-image-column">
<div class='content'></div>
</div>
<div class="more-images-column">
<div class='content'></div>
</div>
</div>