CSS 之flex 弹性盒布局

flex 是flexible box的缩写,意思是“弹性布局”,用来为盒状模型提供最大的灵活性。任何一个容器都可以设置为flex 布局,但是,设置为flex 布局后,子元素的 float 、clear 、和vertical-align 属性将失效。

设置了 flex 属性的元素称为容器,它的所有子元素会成为容器的成员,也就是项目。

  flex 容器可以设置6个属性,分别是:flex-direction 、flex-wrap 、justify-content 、align-items 、align-content 、flex-flow 。

  flex 项目可以设置6个属性,分别是:order 、align-self 、flex-grow 、flex-shrink 、flex-basic 、flex 。

 下面说一下flex 容器的6个属性的一些取值。

  1,flex-direction 属性用来指定多个元素的排列方向,可指定的值如下:

  • row    横向排列(默认值)
  • row-reverse    横向反向排列
  • column    纵向排列
  • column-reverse    纵向反向排列

  2,flex-wrap 控制换行方式,用来指定单行布局和多行布局,可指定的值如下:

  • nowrap    不换行
  • wrap    换行
  • wrap-reverse    虽然换行,但是换行方向与使用wrap 换行的方向相反

  3,justify-content  属性用于指定项目在主轴上的对齐方式,可指定的值如下:

  • flex-start    从主轴起点布局所有的子元素 (默认值)
  • flex-end    从主轴终点布局所有的子元素
  • center    居中布局所有的子元素
  • space-between    将第一个元素布局在主轴起点,最后一个元素布局在主轴终点,将空白部分平均分配在所有子元素与子元素之间。
  • space-around    将空白部分平均分配在以下几处,如主轴起点与第一个子元素之间、各子元素与子元素之间、最后一个子元素与主轴终点之间。

  4,align-items  属性指定的是交叉轴(横向布局时为垂直方向,纵向布局时为水平方向)上的对齐方式,可指定的值如下:

  • flex-start    从交叉轴起点布局所有的子元素
  • flex-end    从交叉轴终点布局所有的子元素
  • center    居中布局所有的子元素
  • baseline    项目的第一行文字的基线对齐
  • stretch    如果未设置高度或设置为auto ,则占满整个容器的高度

  5,align-content  属性指定多行布局时的对齐方式,如果项目只有一行,该属性不起作用。可指定的值如下:

  • flex-start  从交叉轴起点布局所有行
  • flex-end    从交叉轴的终点布局所有行
  • center    居中布局所有行
  • space-between    第一行布局在交叉轴起点,最后一行布局在交叉轴终点,将空白部分平均分配在各行之间
  • space-around    将空白部分平均分配在以下几处,交叉轴起点与第一行之间、各行与行之间、最后一行与交叉轴终点之间

  6,flex-flow    属性是 flex-direction 属性和 flex-wrap 属性的简写形式,默认值为 row nowrap 。

  下面是flex 项目可以设置的属性的一些取值

  1,order   属性用来改变项目的显示顺序,数值越小,排列越靠前,默认为0

  2,align-self    属性用于单独制定某些子元素的对齐方式。可指定的值如下:

  • auto    表示继承父元素的align-items 属性,
  • 其它可指定的属性值同align-items 属性的可指定属性值

  3,flex-grow  属性指定项目的放大比例,默认为 0 ,即使存在剩余空间,也不放大。可指定的值是一个数字。

    如果都为1,则平分剩余空间。如果一个为2,其余的都为1,则前者占据的剩余空间比其他的多一倍。

  4,flex-shrink  属性定义项目的缩小比例,默认为1 ,即如果空间不足,项目将会缩小。可指定的值是一个数字。

    如果值都为1 ,则空间不足时,所有的项目将等比例缩小。如果一个为0,其余的都为1,则空间不足时,前者不缩小。

  5,flex-basic   属性定义了在分配多余的空间之前,项目占据的主轴空间。默认为 auto 即项目的本来大小。它可以设置为和 width 与 height 同样的值,则项目将占据固定空间。

  6,flex  属性是 flex-grow  flex-shrink 和 flex-basic 的简写,默认值为 0 1 auto , 后两个值可选。

原文地址:https://www.cnblogs.com/jyfeng/p/8283825.html

时间: 2024-08-02 06:59:32

CSS 之flex 弹性盒布局的相关文章

移动端:Flex弹性盒布局

Flex弹性盒布局 一. Flex的发展史 2009年W3C 提出概念,但是官方没有flex这个词 2011年浏览器厂商决定使用flexbox,来形容它的布局特点 2015年W3C正式将其修改为flexbox布局 2016年5月官方正式公布最新的稳定的flex布局规范标准,各大浏览器的支持越来越稳定 二. 定义 Flex是 Flexible Box 的缩写,意为"弹性布局",用来为盒状模型提供最大的灵活性 作用 它能够更加高效方便的控制元素的对齐.排列 可以自动计算布局内元素的尺寸,无

flex 弹性盒布局 移动端首页

广告淘宝适配js文件下载地址 https://github.com/amfe/lib-flexible ---------开始------------------------------ 移动首页案例制作  弹性盒布局 body{   的初始化样式 min-width:320px; max-width:540px; margin:0 auto; color:#000; background:#f2f2f2f; overflow-X:hiddenn; -webkit-tap-highlight-c

CSS3 中弹性盒布局,实例说明

相关资料 : http://www.w3.org/html/ig/zh/css-flex-1/ CSS 3中弹性盒布局的最新版概述 在CSS 3中,CSS Flexible Box模块为一个非常重要的模块,该模块用于以非常灵活的方式实现页面布局处理. 虽然可以使用其他CSS样式属性来实现页面布局处理,但是如果使用CSS Flexible Box模块中定义的弹性盒布局技术,可以根据屏幕尺寸或浏览器窗口尺寸自动调整页面中各局部区域的显示方式,即实现非常灵活的布局处理. 虽然CSS Flexible

87.CSS Flex 弹性盒模型布局教程(共用的css在48篇文章gird)

CSS Flex 弹性盒模型布局教程 Flex 是 Flexible Box 的缩写,意为"弹性布局",用来为盒状模型提供最大的灵活性. flex布局就是给任何一个容器添加 display:flex 注:设为 Flex 布局以后,子元素的float.clear和vertical-align属性将失效. 注:Safari 6.1+(前缀-webkit-) iOS 7.1+(前缀-webkit-)最新flex 兼容性查看请点此处 最新Flex兼容性 Flex 容器 flex contain

css3 弹性盒布局的使用-Flex

 介绍: css3 的Flex弹性盒的布局是一个用于页面布局的全新CSS3模块功能.它可以把列表放在同一个方向(从左到右或从上到下排列),并且让这些列表能延伸到占用可用的空间.较为复杂的布局可以通过嵌套一个伸缩容器(flex container)来辅助实现. Flexbox可以简单快速的创建一个具有弹性功能的布局,当在一个小屏幕上显示的时候,Flexbox可以让元素在容器(伸缩容器)中进行自由扩展和收缩,从而容易调整整个布局.它的目的是使用常见的布局模式,比如说三列布局,可 以非常简单的实现.

深入理解 CSS3 弹性盒布局模型

Web 应用的样式设计中,布局是非常重要的一部分.布局用来确定页面上不同组件和元素的尺寸和位置.随着响应式用户界面的流行,Web 应用一般都要求适配不同的设备尺寸和浏览器分辨率.响应式用户界面设计中最重要的一环就是布局.需要根据窗口尺寸来调整布局,从而改变组件的尺寸和位置,以达到最佳的显示效果.这也使得布局的逻辑变得更加复杂.本文介绍的是 CSS3 规范中引入的新布局模型:弹性盒模型(flex box).弹性盒模型可以用简单的方式满足很多常见的复杂的布局需求.它的优势在于开发人员只是声明布局应该

CSS3与弹性盒布局

1.弹性盒布局对齐模式 1.1.弹性盒子 在规定弹性盒子之中的子级元素换行显示之前父级元素必须是弹性盒子模型,也就是设置 display 为 flex 代码如下: <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>弹性盒布局</title> <style type="text/css"> .div1{ width:

flex弹性盒模型理解

首先,flex布局的迷之属性们,如果一知半解,机械记忆的话,那不到半个月基本忘光光.先感受一下这12个flex布局属性,是不是很“迷”人. 容器属性 flex-flow flex-direction flex-wrap justify-content align-items align-content 元素属性 order flex-grow flex-shrink flex-basis flex align-self 就连老外也都在twitter吐槽不好理解,可见还是有一定的学习成本. 而目前

弹性盒布局学习总结

近期在做移动端的项目过程中,经常听到有人说用弹性盒布局来写比较快,因为我一直用的是传统的百分比布局(好吧,不敢否认我还是喜欢用拿手的,但是不要鄙视我对新技术的热情),因此一直也想抽空学习下弹性盒布局,看看他到底是何方神圣,能够用到哪些场合,还有浏览器兼容性到底怎么样 一.语法 应用flex布局,首先要设定一个flex容器(flex container),它的子元素就自动成为flex容器的成员,称为flex项目(flex item). .flex_container{ display:flex;