使用flexbox时遇到问题。
我正在使用容器flex-direction: column; flex-wrap: wrap
,因此我的内部物品实际上可以放在多列中。
问题在于浏览器仍将容器的宽度计算 为内部项目宽度的总和 !
我的容器块应具有较小的宽度(基于内容大小),但实际上很大。
无论如何,使用列而不是行时以这种方式计算容器的宽度也是非常不自然的。
看一下我代码中的绿色方块。它具有巨大的优势,但事实并非如此。此外,当您从容器中取出物品时,它会变小。
我期望容器的宽度较小,因此不会占用超过可用空间的一半。
在最新的Safari和最新的OS X上选中此选项。
.container {
display: flex;
flex-wrap: wrap;
flex-direction: column;
background: #aa0000;
height: 100px;
}
.group {
display: flex;
flex-wrap: wrap;
flex-direction: column;
align-content: flex-start;
}
.g1 {
background: #00aa00;
}
.g2 {
background: #0000aa;
}
<div class="container">
<div class="group g1">
<div class="item">Item</div>
<div class="item">Item</div>
<div class="item">Item</div>
<div class="item">Item</div>
<div class="item">Item</div>
<div class="item">Item</div>
<div class="item">Item</div>
</div>
<div class="group g2">
<div class="item">Item</div>
</div>
</div>
这似乎是“ 柔性盒布局”模块中涉及flex-direction:column
和的另一个错误flex-wrap: wrap
。
浏览器似乎无处不在。
在这种特殊情况下,如错误报告中所述:
在我看来,宽度的计算方式就像内部元素是水平(
flex-direction: row
)而不是垂直地布置。
在其他情况下,情况恰恰相反:
在这两种情况下,当前都没有可解决此问题的flex方法。
对于这个特定问题,一个开发人员提供了一种CSS解决方法,但是我不确定它是否可以在所有浏览器中使用。除非您真的绝望,否则我不建议您这样做:
在某些情况下,您可以通过使用垂直书写模式来解决此问题。
也就是说flex-direction: column;
,使用代替使用 flex-direction: row; writing-mode:vertical-lr;
。记住writing-mode: initial;
在flexbox的子代中重置为。
flex-direction属性用于指定需要放置flex容器(flex-items)元素的方向。 usage - flex-direction: row | row-reverse | column | column-reverse 此属性接受四个值 - row - 从左到右水平排列容器的元素。 row-reverse - 从右到左水平排列容器的元素。 column - 从左到右垂直排列容器的元
flex-direction 排列方向 弹性和模型中内部的子元素的排列方向可以通过这个属性修改,那么我们就一起看下它的使用吧。 1. 官方定义 flex-direction 属性规定项目的排列方向。 2. 慕课解释 flex-direction 用来调整主轴的方向,我们知道主轴默认是水平方向且从左到右,而我们可以通过这个属性设置主轴的方向,即项目是水平方向从左到右还是垂直方向从上到下或者从下到上排
问题内容: 如果使用IE11,似乎无法正确计算弹性项目宽度。 4个盒子每个都有flex-basis:50%,所以我们应该得到两行,每个盒子两个,但是在IE11中,每个盒子只有一行。将边框设置为0时,它可以正常工作。 知道这是一个错误还是有办法使IE11表现出来(并且仍然使用边框)? PS值得庆幸的是,在我的项目中,仅需要支持流行浏览器的最新版本,但是IE11就是其中之一。 问题答案: 使用该属性计
问题内容: 昨天我在学校里有一个使用CSS 3 flexbox语句的网站。我以前从未用过。因此,我用Google搜索了一下,发现了很多不同样式的flexbox语句。 有些人写,有些用,还有一些。 那有什么区别呢?我应该使用哪个? 问题答案: 这些是不同的风格。 是2009年 的版本。 是2011年的版本。是实际版本。 保罗·爱尔兰的名言 警告:Flexbox进行了一些重大修订,因此本文已过时。总而
Fixed 盒子数量不是固定的 Fixed 盒子宽度是固定的 Fill 盒子只有一个 Fill 盒子宽度是动态的 如何让 Fill 填满剩余 Container 的宽度? 如下图
我有一个用于标题导航的Flexbox,徽标向左对齐,ul项目向右对齐,就像传统样式一样。徽标和导航链接都是全宽Flexbox中的flex项目,我给了它们两个flex:50%。导航链接部分也是一个Flexbox(内部Flexbox),用于防止菜单堆叠,而不是以更好的响应方式运行。 当我将“对齐内容”应用于该内部Flexbox时,链接没有任何更改,就好像存在替代样式或该属性在内部文本框上不起作用一样。