html - 用于页面布局的 Flexbox?

标签 html css user-interface

我想知道我是否应该开始使用 flexbox 进行网站/web 应用程序布局设计,而不是 float div 等。

但是我收到的消息很复杂。在一个网站上,他们说 flexbox 现在是页面布局的“ chalice ”: 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 float 、display:table-cell、inline-blocks 等)更适合创建页面布局,我应该使用 flexbox 直到网格出来了?

p.s 我知道 flexbox 与旧浏览器不兼容。但我在这里是假设性的,对于这个问题,我们假设这不是问题。

最佳答案

我认为你误解了 Philip 在 Solved by Flexbox 上的内容。他没有说 flexbox 是布局的 chalice ,布局本身被称为 chalice 。

Tab 提出了一些好的观点,但这并不意味着 flexbox 不是我们目前针对某些布局的最佳解决方案。

简单

flexbox 会使您的 HTML 或 CSS 更简洁、更易于理解或维护吗?使用 flexbox 可以让您避免像删除行内 block 元素上的空格或 display: table 通常需要的额外标记这样的技巧。

性能

与 float 或内联 block 元素相比,Flexbox 元素的渲染速度稍慢。但是,除非您的页面上有数百个 flexbox ,否则这是优化页面速度时需要考虑的最后一件事。有时使用 flexbox 可以大大减少 CSS 的数量。

灵 active

Flexbox 非常灵活(双关语不是故意的)。您可以执行诸如重新排列元素顺序之类的操作,而使用其他方法可能很难或无法做到这一点。

在做简单的事情时,比如两列布局,我仍然会使用 float 。也就是说,如果您需要 flexbox 为您的布局提供的功能,或者它可以简化您的 HTML 或 CSS,那就去吧!从长远来看,网格布局可能更适合,但它们尚未在大多数浏览器中实现。

关于html - 用于页面布局的 Flexbox?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27282135/

相关文章:

php - Paypal 立即购买按钮如何在 ipn 监听器中捕获价格/选项下拉数据

jquery - 砌体图像相互重叠

javascript - 隐藏div中的日历

java - 真正高质量和复杂的 Swing 组件在哪里?

javascript - 自动排列div,同时放大一个div

javascript - 图像周围有可笑的灰色边框

javascript - 使用 Input 标签作为按钮

css - matlab浏览器版本

wpf - 如何从可调整大小的窗口中删除最小化和最大化按钮?

Java - 移动 JPanel 的位置