CSS flexbox中宽度:50%和flex:50%之间的区别?

Posted

技术标签:

【中文标题】CSS flexbox中宽度:50%和flex:50%之间的区别?【英文标题】:Difference between width: 50% and flex: 50% in a CSS flexbox? 【发布时间】:2014-07-09 20:34:02 【问题描述】:

当它的容器有一个 flex 显示时,设置一个元素为 flex: 50% 和 width: 50% 有什么区别。结果似乎是一样的:

ul 
  display: flex;
  flex-flow: row wrap;


.table a 
  flex: 50%;
  background: grey;


.table2 a 
  width: 50%;
  background: grey;


<ul class="table">
  <a href="#">ad ds fdsaf dsfa dsfj dsf dsfj lkdsjflkdsa jflkdsja lkfjdslkjfldska jlkfdsajlkdjslkajflkd sjalkfjdslkjdsalkjdlakjfldksjflkdsjflkdsjd fdsd</a>
  <a href="#">b</a>
  <a href="#">c</a>
  <a href="#">d</a>
</ul>

<ul class="table2">
  <a href="#">ad ds fdsaf dsfa dsfj dsf dsfj lkdsjflkdsa jflkdsja lkfjdslkjfldska jlkfdsajlkdjslkajflkd sjalkfjdslkjdsalkjdlakjfldksjflkdsjflkdsjd fdsd</a>
  <a href="#">b</a>
  <a href="#">c</a>
  <a href="#">d</a>
</ul>

http://codepen.io/anon/pen/KAbof

【问题讨论】:

&lt;ul&gt; 元素中添加&lt;a&gt; 元素而不包含&lt;li&gt; 不是一个好习惯。 这不仅仅是不好的做法......它是无效的 html 这不是我的实际代码,我只是想知道我关于 felx 问题的答案 【参考方案1】:

在这种情况下没有有效的区别。

实际上,这是因为flexflex-growflex-shrinkflex-basis 组合的简写。

flex-basis 定义了元素在剩余空间分配之前的默认大小。

所以在这种情况下,您已将所有 a children` 定义为 50%。

参考文章:http://css-tricks.com/snippets/css/a-guide-to-flexbox/

【讨论】:

以上是关于CSS flexbox中宽度:50%和flex:50%之间的区别?的主要内容,如果未能解决你的问题,请参考以下文章

CSS 自动宽度不适用于 Flexbox

CSS3的Flexbox

CSS Flexbox 响应式布局和 % 宽度

CSS3 Flexbox:显示:box vs. flexbox vs. flex

CSS3 Flexbox:显示:box vs. flexbox vs. flex

CSS3 Flexbox:显示:box vs. flexbox vs. flex