flex布局——回顾

news/2024/5/19 18:18:42 标签: flex

flex 即为弹性布局。
  任何一个容器都可以指定为flex布局。
    .box{display:flex}
  行内元素可以使用flex布局
    .box{display: inline-flex}
  webkit内核的浏览器必须加上-webkit 前缀。
    .box{display:-webkit-flex; display:flex;}
  注意:元素设置flex布局以后,子元素得float ,clear 和 vertical-align 属性将失效。
  基本概念:
    采用flex布局的元素称之为flex容器,它的所有子元素自动成为容器成员,称为flex
    项目。
    容器默认存在两根轴,水平的主轴(main axis) 和垂直的交叉轴(cross axis)。主轴的开始位置(与边框的交叉点)叫做 main start, 结束位置叫做 main end ;
      交叉轴的开始位置叫做cross start,结束位置叫做 cross start,技术位置叫做 cross end.
  单个项目占据的主轴空间叫做 main size 占据的交叉轴空间叫做cross size.

 

容器的属性:
  有6个属性设置在容器上。
    flex-direction    flex-wrap    flex-flow    justify-content
    align-items    align-content
      1.flex-direction
        属性决定主轴的方向(即项目的排列方向)
          .box{flex-direction:row | row-reverse | column | column-reverse;}
            row(默认值)主轴为水平方向,起点在左端。
            row-reverse: 主轴为水平方向,起点在右端。
            column: 主轴为垂直方向,起点在上沿。
            column-reverse: 主轴为垂直方向,起点在下沿。
      2.flex-wrap 属性
        默认情况下,项目都排列在一条线(又称轴线)上,flex-wrap 属性定义,如果一条轴线
          排列不下,如何换行。
            .box{flex-wrap: nowrap | wrap | wrap-reverse;}
                nowrap (默认): 不换行。
                wrap: 换行,第一行在上方。
                wrap-reverse: 换行,第一行在下方。
      3.flex-flow
        flex-flow 属性是flex-direction 属性和flex-wrap 属性的简写方式,默认值为row nowrap.
          .box{ flex-flow:<flex-direction> || <flex-wrap>;}
      4.justify-content 属性
        属性定义了项目在主轴上的对齐方式。
          .box{justify-content: flex-start | flex-end | center | space-between | space-around;}
              5个值,具体对齐方式与轴的方向有关,下面假设主轴为从左到右。
                 flex-start(默认值) : 左对齐
                 flex-end 右对齐
                 center 居中
                 space-between: 两端对齐,项目之间的间隔都相等。
                 space-around: 每个项目两侧的间距都相等,所以项目之间的间隔比项目与边框的间隔大一倍。
      5.align-items
        属性定义项目在交叉轴上如何对齐。
          .box{align-items: flex-start | flex-end | center | baseline | stretch;}
            可能取5个值,具体的对齐方式与交叉轴的方向有关,下面假设交叉轴上从上到下。
              flex-start: 交叉轴的起点对齐。
              flex-end: 交叉轴的终点对齐。
              center: 交叉周的中点对齐。
              baseline:项目的第一行文字的基线对齐。
              stretch (默认值) 如果项目未设置高度或设置auto,将占满整个容器的高度。
      6.align-content 属性
        属性定义了多根轴线的对齐方式,如果项目只能有一根轴线,该属性不起作用。
          .box{align-content: flex-start | flex-end | center | space-between | space-around |
          stretch;}
            属性可取6个值。
              flex-start: 与交叉轴的起点对齐。
              flex-end: 与交叉轴的终点对齐。
              center: 与交叉轴的中点对齐。
              space-between;与交叉轴两端对齐,轴线之间的间隔平均分布。
              space-around: 每根轴线两侧的间隔都相等。
              stretch(默认值):轴线占满整个交叉轴。

  项目的属性
    可以设置6个属性在项目上。
      order flex-grow flex-shrink flex-basis flex align-self

        1.order属性
          order 属性定义项目的排列顺序,数值最小,排列越靠前,默认为o.
            .item { order: <integer>;}
        2.flex-grow 属性
          flex-grow 属性定义项目的放大比例,默认为0,即如果存在剩余空间,也放大。
            .item { flex-grow: <number>;}
            如果所有项目的flex-grow 属相都为1,它们将登封剩余空间,如果一个项目的
              flex-grow 属性为2, 其他项目都为1 则前者占据的剩余空间将比其他项目多一倍。

        3.flex-shrink 属性
          flex-shrink 属性定义项目的缩小比例,默认为1,即空间不足,该项目将缩小。
            .item{flex-shrink:<number>;}
              如果所有的项目flex-shrink 属性都为1 ,当空间不足时,都将等比例缩小。
              如果一个项目的flex-shrink属性为o,其他项目都为1,则空间不足时,前者
                不缩小。负值对该属性无效。
        4.flex-basis 属性
            属性定义了在分配多余空间之前,项目占据的主轴空间,浏览器根据这个属性,计算
            主轴是否有多余空间。它的默认值为 auto,即项目的本来大小。
          .item {flex-basis: <length> | auto;}
            他可以设为跟width 或 height 属性一些样的值,则项目将占据固定空间。
        5.flex 属性
          flex 属性是flex-grow. flex-shrink 和 flexflex-basis 的简写,默认值
          为 0 1 auto. 后两个属性可选。
            .item { flex:none | [<'flex-grow'> <'flex-shrink'> ? || <'flex-basis'>]}
              该属性有两个快捷值:auto (1 1 auto) 和 none (0 0 auto)。
                建议优先使用这个属性,而不是单独写三个分离的属性,
            因为浏览器会推算相关值
        6.align-self 属性
            align-self 属性允许单个项目有与其它项目不一样的对齐方式,可以
              覆盖align 属性,默认值为auto, 表示继承父元素的align-items属性
              如果没有父元素,则等于stretch.
              .item{align-self: auto | flex-start | flex-end | center | baseline | stretch;}
          该属性可能取6个值,除了auto,其他都与align-items属性完全一致。

           demo下载https://github.com/ningmengxs/css3.git


http://www.niftyadmin.cn/n/1732706.html

相关文章

Java中使用Base64编码URL作为URL的参数

http://www.itzhai.com/base64-encoding-in-java-using-a-url-as-a-url-parameter.htmlJava中使用Base64编码URL作为URL的参数本文由arthinking发表于3年前 | Java基础 | 暂无评论 | 被围观 8,004 views 有时候我们需要使用一个URL作为URL地址的参数来传递&#xff0c;假如我们…

关于box-shadow和drop-shadow的显著区别

一、box-shadow box-shadow是css3中新增的属性&#xff0c;用于增加边框阴影&#xff0c;让原有的元素变得更多样性&#xff0c;它名下有四位小弟&#xff0c;老大控制水平方向偏移&#xff0c;老二控制垂直方向偏移&#xff0c;老三控制模糊度&#xff0c;最小的老四控制阴影颜…

一个我纠结很久的background和background-image关系区别问题

在写一个关于背景图的CSS时候发现一个奇怪的现象&#xff0c; 原图&#xff1a; 如下代码&#xff1a; <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html x…

jQuery 事件绑定方法 bind

jQuery 事件绑定方法&#xff08;bind hover toggle live.... &#xff09;、删除事件方法&#xff08;unbind, die&#xff09;及 事件对象http://www.cnblogs.com/lihuiyy/archive/2012/07/17/2595357.html 事件绑定方法&#xff1a; 1.<type>(function) $("butto…

java中super用法

super关键字主要有以下两种用途。 1&#xff0e;调用父类的构造方法 子类可以调用由父类声明的构造方法。但是必须在子类的构造方法中使用super关键字来调用。其具体的语法格式如下&#xff1a; super([参数列表]); 如果父类的构造方法中包括参数&#xff0c;则参数列表为必选…

让html select支持readonly属性(转)

刚刚碰到一个要为html select添加readonly属性的要求&#xff0c;可是select是不支持readonly属性的&#xff0c;找了找&#xff0c;方法还是有的&#xff0c;不过大都比较麻烦。以下的方法个人认为是最简单的&#xff1a; <select id"lstTest" onfocus"this…

css 3d 基础知识

css3d 总结 3d transform (3D变形)&#xff08;rotate skew scale translate&#xff09; 基础知识 perspective (视距,景深) perspective-origin (视点) transfrom (1) 坐标 x y z (2) 变形 基点位置 transform-origin (3)transfrom-style&#xff1a;preserve-3d 3D旋转…

Java 表单注册常用正则表达式验证工具类

http://springmvc-springdata.iteye.com/blog/2114555Java 表单注册常用正则表达式验证工具类&#xff0c;常用正则表达式大集合。 1. 电话号码 2. 邮编 3. QQ 4. E-mail 5. 手机号码 6. URL 7. 是否为数字 8. 是否为中文 9. 身份证 10. 域名 11. IP 。。。。 常用验证应有尽有…