【发布时间】:2016-09-19 20:48:05
【问题描述】:
我习惯于像这样垂直居中块元素:
.parent {
display: table-cell;
vertical-align: middle;
display: -webkit-box;
display: -ms-flexbox;
display: flex;
-webkit-box-align: center;
-ms-flex-align: center;
-ms-grid-row-align: center;
align-items: center;
}
当我需要 IE9 和更低的支持时。当然,使用 css-tables 作为旧 IE-s 的后备。我不需要 flex 做其他事情。但最近我开始问自己:为什么我还需要 flex 呢? Css-table 是这个星球上几乎所有浏览器都支持的强大解决方案,根据this Ben Frain's article,它甚至更快。这里的 css-table 还不够吗?当向人们询问这个问题时,我得到了诸如“flex 更现代”之类的答案。这很好,我也明白,有些事情只有 flex 才能实现,但这并不是真正的答案。我们谈论的是最简单的居中块元素。
所以我有两个问题:
- 在这种情况下我必须使用 flex 吗?
- 如果“是” - 为什么?
【问题讨论】:
-
一般来说,一个问题没有单一的解决方案,所以尽量坚持一种你觉得舒服的方法,不要把你不完全理解的事情复杂化,将来必须审查代码并进行更改的将是您。..
-
查看this post,它展示了一些可以使用css表代替flexbox的用例
标签: css flexbox css-tables fallback