Flexbox

一个完整的Flexbox指南

Flexbox布局(Flexible Box)模块(目前处于W3C工作草案)旨在提供一个更佳有效的布局方式,更好的控制项目的对齐和自由分配容器空间,即使它们的大小是未知的或动态的。因此得其名"flex"。本文是根据CSS-Tricks整理的一篇《A Complete Guide to Flexbox》和W3C中文兴趣小组翻译的Flexbox规范整理。

探索Flexbox

Flexbox最大的优点是计算空间能力强,尤其是当对一个容器里未知数量的子项目进行布局时。更具体来说,当给导航栏或者网格布局时,它们所需的空间有可能远超过现在计算的数值。想象一下在CMS里面当用户增删导航栏的项目时,既不想更改样式,又要填充其空间。你甚至可以用它同时计算不同类型的单元。对于不熟悉Flexbox的人来说,在CSS里它就是一种计算并分布空间的智能布局模式,同时也解决了一些困扰多年的布局问题以及hack。

图解CSS3 Flexbox属性

Flexbox布局官方称之为CSS Flexible Box布局模块,他是CSS3中的一种新的布局模式。Flexbox可以控制未知容器元素的对齐方式,排列方向,排列顺序等,甚至是在未知大小的容器也能这样做。Flex容器的主要特点是能够修改其子元素(Flex item)的宽度或高度,使其在不同的屏幕尺寸中填补可用的空间。许多设计人员和开发人员发现使用Flexbox来布局更容易,可以使用更少的代码,更简单的方式实现更复杂的布局,也使整个开发过程更为简单。Flexbox布局算法基于水平或垂直的块或行内元素来布局。Flexbox布局常用于小的应用程序组件之中,而CSS Grid布局模块将应用于大规模的布局之中。

时下Web App中的Flexbox应用

虽然语法可能比较混杂,但 Flexbox 还是名不虚传的。它创造的是可伸缩的、有弹性的、可改变视觉顺序的智能盒子。它提供了简单的CSS布局方案范例让容器总是处于垂直水平居中的位置。使用盒模型来工作是非常通用的。

今天就用Flexbox

Flexbox让我们对过去无法真正达到的对布局的掌控更进了一层,过去我们浮动、清除浮动,与inline-block间的空格斗争,强制display:table,甚至用position:absolute来撑开内容。现在我们不需要依赖这些解决方案使得内容在不支持伸缩特性的浏览器可见。Flex的特性给我们所以构建的内容增加了一系列重要工具,但不是替代之前存在的东西,而是改进我们如今的构建方式。

Flexible boxes更加优雅的Web布局

Flexible boxes layout是W3C为了更好的在网页中排版和布局而设计出来的一个模块。它用来可以处理更加复杂的布局。它本质是盒模型的延伸,它可以进一步去规范容器中子元素盒模型之间的相对关系。

解决Flexbox跨浏览器兼容Bug

Flexbox是CSS3新增的一个功能特性,对于布局有很大方便之处。但浏览器支持力度各异,而且其规范也还在不断更新之中,也造成很多同学还不敢在实际项目中使用Flexbox的缘故。Philip Walton在他的Github中创建了Flexbugs库,用来回收Flexbox相关的Bug。主要宗旨是收集Flexbox跨浏览器存在的问题和解决方案。目标是让你使用Flexobx构建一个网站能得到你想要的效果,并且能在这里找到相应的解决方案。而这篇文章就是以创建Sticky footer布局为例,介绍了如何解决Flexbox在浏览器兼容的解决方案。

终极Flexbox属性查询列表

Flexbox是CSS3的一个新特性,这个特性可以帮助你实现很多以前实现起来困难的一些效果。比如会让你不会在为浮动感到困惑,不在为水平垂直居中烦恼,不在为自适应布局而感到凝惑。自从Flexbox出现,但也给前端开发人员带很语法版本的困惑,在整个发展过程中经历了三个不同的语法版本,造成前端开发人员不知道怎么使用,今天根据的《THE ULTIMATE FLEXBOX CHEAT SHEET》文章整理了一份Flexbox使用查询列表清单。希望对初学者有所帮助。

Hold住CSS布局新属性

新css属性为我们提供了更加便捷的网页布局方式。来自微软的thomas lewis将带你认识去Grid Alignment,Flexibox Box以及Multi-column Layout这三大领域。这篇文章最早出现在 the April 2012 issue (226)这期的.net杂志上-这杂志是面向网页设计者以及开发者,全球销量最高的杂志。按照以往来说,用CSS来布局看起来总是一样非常繁杂的工作。然而,随着一个个新标准的推出,网页设计者已经能够实现非常轻松地进行布局工作了。

主流的浏览器,在W3C的推动下,已经开始实现多种新型的布局方式,而且我们现在已经可以开始使用了。举个例子,W3C开始把CSS3 Multicolumn Layout Module考虑进来。这就意味着W3C非常愿意看到浏览器在将来能够对上面的模块实现出来。

CSS布局的未来

大家都知道,css有着奇妙的特性,然而让人失望的是,css对基本页面布局上的支持有所欠缺。但是这种情况正在得到改变,更多的动态页面正是由css所支持的,正如peter gasston所说的。这是一篇关于css布局且具有前瞻性的 文章。在这里,我能够保证在数年之后,css3必定能够引领潮流。在这篇文章当中,我将为大家从优秀实用到纯粹理论阶段中介绍有关css布局的工具,也许在这些阶段中你不一定用得到他们,(至少不是现在),但仍然还很有必要去了解,通过这样可以透过迷雾,看清未来。

页面

返回顶部