IT入门 > 图文教程 > HTML5+CSS3 >

IT入门 > 图文教程 > HTML5+CSS3 >

Flexbox CSS3弹性布局一次搞懂

  你会看到这个提示,那是因为你的系统无法识别某栏目的模型信息,或者你新建模型后,没为这个模型设计单独的模板。不同模型的文档浏览页的模板为:article_模型名字标识.htm 如“article_article.htm”,更多的信息你可以在频道模型管理的地方查看。
文件类型 内容:
模板调用标记:
.exe
语言 内容:
模板调用标记:
简体中文
软件类型 内容:
模板调用标记:
国产软件
授权方式 内容:
模板调用标记:
共享软件
操作系统 内容:
模板调用标记:
Win2003WinXPWin2000Win9X
软件等级 内容:
模板调用标记:
3
官方网址 内容:
模板调用标记:
http://
演示网址 内容:
模板调用标记:
http://
软件大小课程时长 内容:
模板调用标记:
未知
下载资料 内容:
模板调用标记:
详细介绍 内容:
模板调用标记:

1. 引言

希望可以通过可视化的方式帮助您了解Flexbox属性如何影响flex布局。

2. 正文
    2.1 引入

Flexbox布局官方称为CSS Flexible Box Layout Module是一个CSS3新的布局模块,用于实现容器里项目的对齐、方向、排序(即使在项目大小位置、动态生成的情况)。flex容器最大的特性在于,能够修改子元素的宽度和高度,以满足在不同尺寸屏幕下的如意分布。

许多设计人员、开发人员发现flexbox布局方式使用简单,定位元素更加简单、复杂的布局更容易用较少的代码实现,大大地简化了开发流程。不像块状布局、内联布局那样基于竖直方向、水平方向,flexbox的布局算法基于方向。flexbox布局适用于小的应用组件、新的CSS Grid布局模块更适用于大量的布局。

本指南不解释flex属性如何工作,我们只是用可视化的方式展示flex属性如何影响布局。
 

2.2 基础

在具体描述flex属性之前,我们先来简要介绍下flexbox模型。flex布局由父容器(我们叫做flex container)和它的子元素(我们叫做flex items)组成。

(干货)CSS3 Flexbox布局一次搞懂

在上图所示的盒子里,你可以看到用来描述flex container和flex items的属性和术语,如果你想了解详细信息,请访问W3C的flexbox model官方文档.

flexbox自2009的初次草案开始,已经经历了几次更新和语法修改,为了避免困惑、保证清晰,我们仅仅使用2014年9月最后一次工作草案中的语法。如果您想要实现旧浏览器的兼容,请访问这篇文章寻找最佳实践。

最近的flexbox规范浏览器支持情况如下:

  • Chrome 29+

  • Firefox 28+

  • Internet Explorer 11+

  • Opera 17+

  • Safari 6.1+ (prefixed with -webkit-)

  • Android 4.4+

  • iOS 7.1+ (prefixed with -webkit-)

您也可以到caniuse了解浏览器兼容情况详情。

本文中的用到的一些术语的表达约定如下

  1. flex-container-弹性容器

  2. flex-item-弹性子元素

  3. main axis-主轴

  4. cross axis-侧轴

     

2.3 使用

使用flexbox只需要在父元素上设置display属性即可。

(干货)CSS3 Flexbox布局一次搞懂


如果您想让它以内联方式显示,则

(干货)CSS3 Flexbox布局一次搞懂

注意:仅仅需要在父元素上设置这一个属性即可,它的子元素会自动变成flex items。

有很多方式分组flexbox的所有属性,我发现最容易理解的方式是分成两组,一组为弹性容器的属性,另一组为弹性子元素的属性,接下来我们按这种方式来一一解析。

 

2.4 弹性容器(Flex container)属性

       2.4.1 flex-direction

该属性通过设置flex container主坐标轴方向影响子元素(flex item)如何在容器中排布。我们可以设置两个主要的方向水平和垂直方向。

可以接受的值有四个row、row-reverse、column、column-reverse,如下所示。

(干货)CSS3 Flexbox布局一次搞懂


弹性子元素将会按照自左向右的水平排列。

(干货)CSS3 Flexbox布局一次搞懂

(干货)CSS3 Flexbox布局一次搞懂


弹性子元素将会自右向左水平排列。

(干货)CSS3 Flexbox布局一次搞懂

(干货)CSS3 Flexbox布局一次搞懂


弹性子元素将自上而下竖直排列

(干货)CSS3 Flexbox布局一次搞懂

(干货)CSS3 Flexbox布局一次搞懂

弹性子元素将自下而上竖直排列

(干货)CSS3 Flexbox布局一次搞懂

默认值为row.

 

    2.4.2 flex-wrap

flexbox最初的理念是保持弹性容器的子元素在一行中。flex-wrap属性控制当子元素items超出弹性容器范围是是否换行,以及新行的方向。

本属性可以接受一下几个值:no-wrap、wrap、wrap-reverse,分别如下所示。

(干货)CSS3 Flexbox布局一次搞懂


弹性子元素将会在一行显示,默认的子元素items将会缩减以适应弹性容器的宽度。

(干货)CSS3 Flexbox布局一次搞懂

(干货)CSS3 Flexbox布局一次搞懂


如果需要的话,弹性子元素将会自左向右、自上而下多行显示

(干货)CSS3 Flexbox布局一次搞懂

(干货)CSS3 Flexbox布局一次搞懂

如果需要的话,弹性子元素将会自左向右、自下而上多行显示

(干货)CSS3 Flexbox布局一次搞懂

默认值为no-wrap.

 

    2.4.3 flex-flow

flex-flow属性是flex-directionflex-wrap属性的快捷方式,复合属性。

(干货)CSS3 Flexbox布局一次搞懂默认值为row nowrap.

 

    2.4.4 justify-content

justify-content设置弹性子元素在弹性容器中当前行主坐标的对齐方式,当弹性容器里一行上的所有子元素都不能伸缩或已经达到其最大值时,该属性可协助对多余的空间进行分配。

可以接受的值为flex-start、flex-end、center、space-between、space-around等五个值,默认值为flex-start。详细如下所示。

(干货)CSS3 Flexbox布局一次搞懂

(干货)CSS3 Flexbox布局一次搞懂

(干货)CSS3 Flexbox布局一次搞懂

(干货)CSS3 Flexbox布局一次搞懂

(干货)CSS3 Flexbox布局一次搞懂


弹性子元素flex items将会弹性容器中居中对齐

(干货)CSS3 Flexbox布局一次搞懂


弹性子元素flex items中的第一个、最后一个对齐弹性容器的边缘,其余均匀分布

(干货)CSS3 Flexbox布局一次搞懂

(干货)CSS3 Flexbox布局一次搞懂


弹性子元素flex items中的任何一个都参与均匀分布,即使是第一个和最后一个。

(干货)CSS3 Flexbox布局一次搞懂

    2.4.5 align-items

align-items设置弹性子元素在弹性容器中当前行侧轴上的对齐方式,跟justify-content类似但是作用于侧轴(flex-direction为row和row-reverse时为纵轴,flex为column和column-reverse时为横轴)。该属性设置所有flex items(包含匿名的item)的默认对齐方式。

可以接受的值为flex-start、flex-end、center、baseline、stretch等五个值,默认值为stretch。详细如下所示。

(干货)CSS3 Flexbox布局一次搞懂


弹性子元素将会从侧轴开始到侧轴结束铺满整个高度(宽度)。

(干货)CSS3 Flexbox布局一次搞懂

(干货)CSS3 Flexbox布局一次搞懂


弹性子元素将会堆栈在弹性容器的侧轴开始位置。

(干货)CSS3 Flexbox布局一次搞懂

(干货)CSS3 Flexbox布局一次搞懂


弹性子元素将会堆栈在弹性容器的侧轴结束位置。

(干货)CSS3 Flexbox布局一次搞懂

(干货)CSS3 Flexbox布局一次搞懂


弹性子元素将会堆栈在弹性容器的侧轴中间位置。

(干货)CSS3 Flexbox布局一次搞懂

(干货)CSS3 Flexbox布局一次搞懂


弹性子元素将会以文字基线的方式对齐。

(干货)CSS3 Flexbox布局一次搞懂

   

    2.4.6 align-content

当弹性容器侧轴中有空白时,align-content属性设置伸缩行的对齐方式,正如justify-content在主轴上设置对齐方式一样。

可以接受的值为:stretch、flex-start、flex-end、center、space-between、space-around等, 默认值为stretch。

(干货)CSS3 Flexbox布局一次搞懂


各行平分剩余空间。

(干货)CSS3 Flexbox布局一次搞懂

(干货)CSS3 Flexbox布局一次搞懂


各行堆栈紧靠侧轴起始边界。

(干货)CSS3 Flexbox布局一次搞懂

 

下载级别 内容:
模板调用标记:
0
需要金币 内容:
模板调用标记:
0
课程难度 内容:
模板调用标记:
0
(责任编辑:zengmumu)
    广告位API接口通信错误,查看德得广告获取帮助