相关疑难解决方法(0)

如何在填充和边框中使用flex-shrink因子?

假设我们有一个宽度为400px的弹性容器.

在这个容器里面有三个flex项:

:nth-child(1) { flex: 0 2 300px; }   /* flex-grow, flex-shrink, flex-basis */
:nth-child(2) { flex: 0 1 200px; }
:nth-child(3) { flex: 0 2 100px; }
Run Code Online (Sandbox Code Playgroud)

因此,flex项的总宽度为600px,容器中的可用空间为-200px.

这个问题,本文flexbox规范的帮助下,我学会了在flex项目中分配负空闲空间的基本公式:

步骤1

将每个收缩值乘以其基础并将它们全部加在一起:

:nth-child(1)  2 * 300 = 600
:nth-child(2)  1 * 200 = 200
:nth-child(3)  2 * 100 = 200
Run Code Online (Sandbox Code Playgroud)

总计= 1000

第2步

将上面的每个项目除以总数来确定收缩因子:

:nth-child(1)  600 / 1000 = .6
:nth-child(2)  200 / 1000 = .2
:nth-child(3)  200 / 1000 = .2 …
Run Code Online (Sandbox Code Playgroud)

css css3 flexbox

28
推荐指数
2
解决办法
4073
查看次数

尽管有“flex: 1”和“flex-basis: 0”,Flexbox 子项并不相等

我有一个flexbox有两个孩子的人。我希望两个孩子有相同的大小,尽管一个有填充而另一个没有。

这是一个演示。我希望蓝色和绿色框的大小相等:

html, body, .container {
  margin: 0;
  width: 100%;
  height: 100%;
}

.container {
  display: flex;
}

.container div {
  flex: 1;
  min-width: 0;
  flex-basis: 0;
}

.first {
  background: cornflowerblue;
}

.second {
  background: lightgreen;
  padding: 100px;
}
Run Code Online (Sandbox Code Playgroud)
<div class="container">
  <div class="first"> </div>
  <div class="second"> </div>
</div>
Run Code Online (Sandbox Code Playgroud)

我知道我可以使用width: 50%,但这不是方向不可知的,如果我添加更多元素就会中断。

html css flexbox

4
推荐指数
1
解决办法
1173
查看次数

标签 统计

css ×2

flexbox ×2

css3 ×1

html ×1