`
天梯梦
  • 浏览: 13762885 次
  • 性别: Icon_minigender_2
  • 来自: 洛杉矶
社区版块
存档分类
最新评论

CSS3 Flex 弹性布局用法详解

 
阅读更多

Flex是Flexible Box的简称,意为弹性布局,顾名思义,在网页布局时,他可以给我们提供更多的灵活性。

说明:

1.flex是display的一个属性值。与之相当应的还有一个是inline-flex。

2.设置了Flex布局后,子元素的float,clear,还有verticle-align属性都不起作用。

3. 设置了display:flex属性的元素,称为Flex容器,他里面的所有子元素统称为容器成员,称为Flex项目。后面我们就使用Flex容器和 Flex项目来进行介绍。 Flex容器有两根坐标轴:水平的叫主轴(main axis)和垂直的叫交叉轴(cross axis)。

Flex容器有6种属性可用分别是:

属性 详细说明
flex-direction 决定主轴的方向(即项目的排列方向)
flex-wrap 控制Flex容器是单行显示还是多行显示,而交叉轴的方向就决定着新线的排列方向
flex-flow flex-flow属性是flex-direction属性和flex-wrap属性的简写
justify-content 定义了Flex项目在主轴方向上的对齐方式
align-items 定义项目在交叉轴上的对齐方式
align-content 定义了多根轴线的对齐方式,如果只有一条轴线,那么此属性不起作用

下面就逐一给大家介绍这些属性有什么用,以及他们所对应的属性值又是什么意思。

flex-direction: row | row-reverse | column | column-reverse;
属性决定主轴的方向(即项目的排列方向)
名称(属性/值) 详细说明
row(默认值) 主轴为水平方向,起点在左端
row-reverse 主轴为水平方向,起点在右端
column 主轴为垂直方向,起点在上沿
column-reverse 主轴为垂直方向,起点在下沿
 效果演示
 
flex-wrap: nowrap | wrap | wrap-reverse;
属性可以控制Flex容器是单行显示还是多行显示,而交叉轴的方向就决定着新线的排列方向
属性/值 详细说明
nowrap 不换行
wrap 换行
wrap-reverse 换行与wrap相似,但行的顺序是倒过来的
 效果演示
 
属性/值 详细说明
flex-flow flex-flow属性是flex-direction属性和flex-wrap属性的简写,默认值为flex-flow : row nowrap
justify-content: flex-start | flex-end | center | space-between | space-around;
属性定义了Flex项目在主轴方向上的对齐方式
属性/值 详细说明
flex-start 类似于左浮动(float:left)
flex-end 类似于右浮动(float:right)
center Flex项居中
space-between 两端对齐容器,各个Flex项目之间的间距相等
space-around 每一个Flex项目两侧的间隔相等
  效果演示
 
align-items: flex-start | flex-end | center | baseline | stretch;
属性定义项目在交叉轴上的对齐方式
属性/值 详细说明
flex-start 对齐交叉轴的起点
flex-end 对齐交叉轴的终点
center 以交叉轴为参考,居中对齐
baseline Flex项目第一行文字基线对齐
stretch 如果Flex项目未定义高度或者设置为auto,Flex项目将占满整个窗口的高度
   效果演示
 
align-content: flex-start | flex-end | center | space-between | space-around | stretch;
属性定义了多根轴线的对齐方式,如果只有一条轴线,那么此属性不起作用
属性/值 详细说明
flex-start 对齐交叉轴的起点
flex-end 对齐交叉轴的终点
center 以交叉轴为参考,居中对齐
space-between 交叉轴两端对齐,轴线这间的间隔平均分布
space-around Flex项目(沿交叉轴方向)之间的间隔相等
stretch Flex项目(沿交叉轴方向)占满整个交叉轴
   效果演示
属性/值 详细说明
order 用于控制Flex项目的排列顺序,默认为0,值越小越靠前。可取的值:0 | 1
flex-grow 用于定义Flex项目的放大比例,默认为0,即使存在剩余空间,也不放大。可取的值:0 | 1
flex-shrink 用于定义Flex项目的缩小比例,默认为1,即空间不足,Flex项目将等比缩小。可取的值 0 | 1
flex-basis 用于定义如何分配多余空间默认值为auto,即Flex项目本来的大小
flex flex属性是flex-grow,flew-shrink和flex-basis的简写。默认值为0 1 auto
align-self 允 许单个Flex项目有不同于其他Flex项目的对齐方式。默认值为auto,表示继承父元素的align-items属性,如果不存在父元素,则等同于 stretch。可取的值:flex-start | flex-end | center | baseline | stretch;
stretch Flex项目(沿交叉轴方向)占满整个交叉轴
  效果演示

2009版本,我们称之为老版本,使用的是“display:box”或者“display:inline-box”;

2011版本,我们称之为混合版本,使用的是“display:flexbox”或者“display:inline-flexbox”;

2013版本,也就是最新语法版本,使用的是“display:flex”或者“display:inline-flex”。

刚开始研究Flex弹性布局时分不清box,flexbox,和flex的区别还以为他们的作用是不一样的,可后来慢慢收集Flex相关资料时才发现原来他们指的都是同一样东西。

CSS3 Flex 弹性布局用法详解
CSS3 Flex 弹性布局用法详解

更兼容性细节,可前往Can I use官网查询,传送门:http://caniuse.com/#search=flex

W3C最新版本介绍,传送门:http://www.w3.org/TR/css3-flexbox/

 

虽然现在浮动布局还比较流行,但随着浏览器的更新换代,我相信未来将会是Flex布局(弹性布局)的天下。因为Flex确实给我们带来了不少的方便,甚至有些效果与传统的布局方式相比,用弹性布局实现起来要简单得多。

 

原文:http://yunkus.com/article/css3/256.html

转自:CSS3 Flex 弹性布局用法详解

 

 

 

 

 

 

分享到:
评论

相关推荐

    CSS3 Flex 弹性布局实例代码详解

    //行内元素也可以使用Flex布局。 .box{ display: inline-flex; } //注意,设为Flex布局以后,子元素的float、clear和vertical-align属性将失效。 二、容器属性 1. flex-direction flex-direction 决定项目的...

    css flex 弹性布局详解

    CSS Flex(弹性布局)是一种强大的布局模式,特别适用于创建响应式设计,因为它允许开发者更灵活地控制元素在容器中的对齐方式和排列顺序。在本文中,我们将深入探讨Flex布局的关键概念,包括基本用法、父容器属性...

    详解css3 flex弹性盒自动铺满写法

    本文将详解CSS3 flex弹性盒模型中的自动铺满写法。 在开始之前,我们先来理解几个关键概念。flex布局是由flex container(弹性容器)和flex item(弹性子项)组成的。容器内的子项会根据容器的布局方向进行排列。在...

    CSS Flex布局详解及其重要属性应用

    使用场景及目标:适合于需要灵活调整界面布局的设计场景,在实际开发过程中可以帮助快速构建整齐划一又具有良好弹性的页面布局,提升用户体验并提高开发效率。 阅读建议:由于涉及较多CSS的具体操作细节与实践应用...

    CSS布局 案例详解

    Flexbox(弹性盒布局)是CSS3引入的一种新的布局模式,适用于单行或单列的复杂布局。它允许元素在容器中灵活地调整大小和位置。通过设置`display: flex;`,容器变为flex容器,可以调整`flex-direction`、`justify-...

    CSS3弹性布局内容对齐(justify-content)属性使用详解

    CSS3的弹性布局(Flexbox布局)是一种强大的布局模型,它允许开发者更加灵活地控制元素在容器中的排列方式。在弹性布局中,`justify-content`属性是关键的一部分,用于控制弹性容器内元素沿主轴(main axis)的对齐...

    详解CSS中的flex布局

    flex布局又称为弹性布局,任何一个容器都可以指定为flex布局 声明弹性盒子的几种方式 就像前面说的,所有容器都可以指定为flex布局 .box{ display:flex;} 行内元素也可以使用: display:inline-flex; 改变弹性...

    Web前端开发中 Flex 布局详解及其应用场景

    内容概要:本文档详细介绍了 CSS 中的 Flex 弹性布局,探讨了该技术使页面布局更为灵活且响应式的特性。文章首先解释了在父元素启用 Flex 后子元素自动拥有特定宽度高度,并取消原有浮动静态定位的特点;接着深入...

    flex布局(自用自用自用自用自用)

    Flex布局是一种弹性布局方式,可以简便、完整、响应式地实现各种页面布局。它可以定义一个容器,并控制子盒子的位置和排列方式。在 Flex 容器中,默认存在两条轴:水平主轴(main axis)和垂直的交叉轴(cross axis...

    网页制作之CSS用法布局详解

    3. **Flexbox布局**:Flexbox(弹性盒布局)主要用于单行或单列的弹性布局。`display: flex;`开启Flexbox模式,`justify-content: space-between;`可以使得子元素在主轴方向上均匀分布。 4. **相对定位与绝对定位**...

    css3参考手册

    弹性盒布局(Flexbox)是CSS3中的一个模块,提供了一种更为灵活的盒模型,可以方便地处理元素的对齐、排序和大小调整。主要属性有`display: flex`, `flex-direction`, `justify-content`, `align-items`等。 6. **...

    Div_CSS.rar_DIV css布局_css大全_css布局

    **Div+CSS布局详解** Div(Division)+CSS(Cascading Style Sheets)布局是网页设计中的核心概念,它能够帮助开发者实现灵活、高效的页面结构和样式控制。本资料包包含"Div_CSS.pdf",是一份全面的学习Div+CSS布局...

    弄懂CSS盒子模式 DIV布局详解(不容错过)(带源码)

    此外,CSS3引入了一些新的布局技术,如Flexbox和Grid,极大地增强了网页设计的灵活性。Flexbox用于一维布局(行或列),而Grid则适用于二维布局。例如,创建一个简单的Flexbox布局: ```css .container { display:...

    CSS弹性盒模型flex在布局中的应用详解

    前面已经详细介绍过flex弹性盒模型的基本语法和兼容写法,本文将介绍flex在布局中的应用 元素居中【1】伸缩容器上使用主轴对齐justify-content和侧轴对齐align-items JavaScript Code复制内容到剪贴板 <style&...

    css 3布局与技术 外国大牛写的

    ### CSS3布局与技术知识点详解 #### 一、前言 《ProCSS3Layout Techniques》是一本由国外知名作者Sam Hampton-Smith编写的关于CSS3布局技术的专业书籍。本书旨在帮助读者深入了解并掌握CSS3的强大功能,以便能够...

    微信小程序-FlexLayout布局源码

    FlexLayout,又称为弹性盒子布局,是Web开发中用于创建响应式和动态布局的一种CSS布局模型。它允许开发者更加灵活地安排元素的位置,特别是在不同屏幕尺寸和方向上。在微信小程序中,FlexLayout同样扮演着关键角色,...

    flex组件

    2. Flex属性详解:深入理解弹性系数`flex-grow`、`flex-shrink`和`flex-basis`,以及如何通过它们控制元素的伸缩。 3. 布局模式:介绍如何通过调整各种属性实现主轴对齐、交叉轴对齐、排序和换行等布局模式。 4. ...

    div+css 布局 demo

    - 弹性布局(flex layout):也称Flexbox,适用于单行或单列的弹性布局。 - 定位(positioning):包括static、relative、absolute和fixed四种定位方式,可以精确控制元素的位置。 5. **div+css布局示例** - 页...

Global site tag (gtag.js) - Google Analytics