昨天我在学校里有一个使用CSS 3 flexbox语句的网站。我以前从未用过。所以我用谷歌搜索了一下,发现了很多不同样式的flexbox语句。
有些人写display: box;
,有些用display: flexbox;
,还有一些display: flex;
。
那有什么区别呢?我应该使用哪个?
昨天我在学校里有一个使用CSS 3 flexbox语句的网站。我以前从未用过。所以我用谷歌搜索了一下,发现了很多不同样式的flexbox语句。
有些人写display: box;
,有些用display: flexbox;
,还有一些display: flex;
。
那有什么区别呢?我应该使用哪个?
Answers:
这些是不同的风格。
display: box;
是2009年
display: flexbox;
的版本。
display: flex;
是2011年的版本。是实际版本。
保罗·爱尔兰的名言
警告:Flexbox进行了一些重大修订,因此本文已过时。总而言之,本文所基于的旧标准(Flexbox 2009)在v4以来的Chrome,v2以后的Firefox和IE10 beta中实现。
从那时起,新的flexbox标准在Chrome 17中首次亮相,并开始在Chrome 17中首次亮相。Stephan Hay编写了有关新的flexbox实现的指南。从那时起,该规范进行了命名更改,该更改开始在Chrome 21中着陆。Chrome22稳定地实施了最新规范。
在这一点上,实施任何方法都有其风险,因此请注意。
这是有关不同的flexbox语句的博客。
这是css-tricks撰写的有关不同版本的博客条目。
当我使用flexbox时,我总是这样写:
display: -webkit-box;
display: -moz-box;
display: -ms-flexbox;
display: -webkit-flex;
display: flex;
编辑:
仍然不是每个人都有能够查看弹性框布局的浏览器/设备。因此,对于后备解决方案或替代方案,Kenan Yusuf的这篇文章介绍了如何在不使用flexbox的情况下使用flexbox。
-webkit-box
第一位。您的最后声明应该始终是最新的或W3C标准。但是我建议这样做-ms-flexbox
,-webkit-flex
因为IE12 / Edge支持-webkit-flex
,但是从技术上讲,您希望IE使用其正确的-ms-
前缀而不是-webkit-
。尽管显示为nitpick,但通常要小心:flex; 不受IE12的影响。