【发布时间】:2016-09-07 14:59:28
【问题描述】:
我的html和css是这样的
.section {
display: flex;
}
.section > .zone:first-child {
flex: 1;
}
<div class="section">
<div class="zone">
[content]
</div>
<div class="zone">
[content]
</div>
</div>
这就是我想要的,就是两列,第一列的宽度最大化,第二列的宽度最小化。但问题是,如果[content] 部分中有固定宽度(或最小宽度)元素。发生的情况是 flex 忽略了这一点,并且当窗口宽度变得足够小时时,它们只是将区域重叠在一起。我想要这样,在它们开始重叠之前(比如在窗口宽度X),它应该移除 flex,以便区域以最大宽度垂直堆叠。
但是如果窗口宽度应该再次扩大(超过窗口宽度X),那么它应该返回到 display:flex。
有谁知道我可以如何使用 jquery 来实现这一点?
谢谢
【问题讨论】:
-
仅使用 CSS,您应该可以使用 flex-wrap 和媒体查询来做到这一点。
-
但是 flex 是如何检测固定宽度元素的呢?
-
如果您在
section上应用flex-wrap: wrap,并且当设备宽度达到x宽度时,在zone上应用flex-grow: 1。 flex-wrap 将其堆叠起来,flex-grow 填充容器的空间 -
问题是
x未知,都是动态的。 -
所以编写 CSS 并通过 jQuery 将其附加到 head。
标签: javascript jquery css flexbox