for*_*yez 5 html css user-interface
我想知道是否应该开始使用 flexbox 进行网站/webapp 布局设计,而不是浮动 div 等。
但我收到的信息很复杂。在一个网站上,他们说 Flexbox 现在是页面布局的“圣杯”: http://philipwalton.github.io/solved-by-flexbox/demos/holy-grail/
然而,创建 css3 flex 规范的人 Tab Atkins 有一个名为“为什么 Flexboxes 不适合页面布局”的页面 http://www.xanthir.com/blog/b4580
我观看了有关此内容的视频:http://vimeo.com/98746172
所以我的结论是,他的意思是它不应该用于复杂的页面布局。而 display:grid 会更适合。然而,网格可能还需要几年时间才能覆盖所有流行的浏览器。
所以我的问题是,到目前为止,Flexbox 是否比当前的解决方案(div 浮动、显示:表格单元格、内联块等)更适合创建页面布局,并且在网格出现之前我应该使用 Flexbox ?
ps 我知道 flexbox 与旧版浏览器不兼容。但我在这里只是假设,对于这个问题,我们假设这不是问题。
我认为您误解了 Philip 关于 Solved by Flexbox 的内容。他并没有说 Flexbox 是布局的圣杯,布局本身才被称为圣杯。
Tab 提出了一些很好的观点,但这并不意味着 Flexbox 不是我们目前针对某些布局的最佳解决方案。
Flexbox 会让您的 HTML 或 CSS 更简洁、更易于理解或维护吗?使用 Flexbox 可以让您消除一些黑客行为,例如删除内联块元素上的空格或display: table.
Flexbox 元素的渲染速度比浮动或内联块元素要慢一些。但是,除非您的页面上有数百个弹性框,否则这是优化页面速度时最后需要考虑的事情之一。有时使用 Flexbox 可以大幅减少 CSS 的数量。
Flexbox 非常灵活(不是双关语)。您可以执行诸如重新排列元素顺序之类的操作,这对于其他方法来说可能非常困难或不可能。
当做简单的事情(例如两列布局)时,我仍然会使用浮动。也就是说,如果您需要 Flexbox 为您的布局提供的功能或者它简化了您的 HTML 或 CSS,那么就去吧!从长远来看,网格布局可能更适合,但大多数浏览器尚未实现。