zoukankan      html  css  js  c++  java
  • 弹性盒模型

    一、弹性盒模型

      1.display:flex

        说明:设置为弹性盒(父元素添加)

           要让一个元素变成伸缩容器,需要使用display属性。

           采用flex布局的元素,称为伸缩容器(flex container),容器内的子元素称为伸缩项目(flex item)

        注意:浏览器会将任何直接在伸缩容器里的连续文字块包起来,成为匿名伸缩项目;

           使用flex布局实现上是使元素FFC化(flex formatting context伸缩格式化上下文),FFC是普通流的一种;

           而浮动流和定位流以及CSS其他属性对FFC是有影响的,主要表现在以下几点:

            1)float、clear和vertical-align属性在伸缩项目上没有效果

            2)伸缩容器的margin与其内容的margin不会重叠

            3)text-align属性在伸缩容器上没有效果,因为其只可应用于块级block容器

            4)另外,columns属性伸缩容器上没有效果

          弹性盒模型的两种容器块级伸缩容器和内联伸缩容器的区别类似于block和inline-block的区别,一个独占一行,另一个非独占一行

      2.flex-direction(主轴排列方式)

        说明:顺序指定了弹性子元素在父容器中的位置

           row:默认横向一列内排行

           row-reverse:反向横向排列(右对齐,从后往前排,最后一项排在最前面)

           column:纵向排列

           column-reverse:反向纵向排列,从下往上排,最后一项排在最上面

      3.justify-content(主轴对齐方式)

        说明:内容对齐(justify-content)属性应用在弹性容器上,把弹性项沿着弹性容器的主轴线(main axis)对齐

           flex-start默认,顶端对齐

           flex-end末端对齐

           center居中对齐

           space-between两端对齐,中间自动分配

           space-around自动分配距离

      4.align-items(侧轴对齐方式)

        说明:flex-start:弹性盒子元素的侧轴起始位置的边界紧靠住该行的侧轴其实边界

           flex-end:弹性盒子元素的侧轴起始位置的边界紧靠住该行的侧轴结束边界

           center:弹性盒子元素在该行的侧轴上居中放置;(如果该行的尺寸小于弹性盒子元素的尺寸,则会向两个方向溢出相同的长度)

           baseline:如果弹性盒子元素的行内轴与侧轴同为一条,则该值与“flex-start”等效,其他情况下,该值将参与基线对齐

      5.flex-wrap

        说明:该属性控制flex容器为单行或者多行,同时横轴的方向决定了新行堆叠方向

           nowrap:flex容器为单行,该情况下flex子项可能会溢出容器

           wrap:flex容器为多行,该情况下flex子项溢出的部分会被放置到新行,子项内部会发生断行

           wrap-reverse:反转wrap排列

      6.align-content(航宇行之间的对齐方式)

        说明:当伸缩容器的侧轴还有多余空间时,。本属性可以用来调整伸缩行在容器里的对齐方式,这与调准整缩项目在主轴上对齐方式的<"justify-content">属性类似;注意本属性在只有一行的伸缩容器上是没有效果的

           flex-start没有行间距

           flex-end底对齐没有行间距

           center居中没有行间距

           space-between两端对齐,中间自动分配

           space-around自动分配距离

      7.align-self(加给子元素)

        说明:align-self属性规定灵活容器内被选中项目的对齐方式

           注意:align-self属性可重写灵活容器的align-items属性

           auto默认值,元素属性继承了它父元素的align-items属性;如果没有父容器则为“stretch”;

           stretch元素被拉伸以适应容器

           center元素位于容器的中心

           flex-strat元素位于容器的开头

           flex-end元素位于容器的结尾

           IE和Safari浏览器不支持align-self属性

      8.order

        说明:number排序优先级,数字越大越往后排,默认为0,支持负数

      9.flex(flex-grow,flex-shrink,flex-basis)

        说明:复合属性,设置或检索弹性盒模型对象的子元素如何分配空间;

           缩写(flex:1;)则其计算值为(1 1 0%)

           缩写(flex:auto)则其计算值为(1 1 auto)

           flex:none,则其计算值为(0 0 auto)

           flex:0 auto;或者flex:initial;则其计算值为(0 1 auto),即flex初始值

      10.flex三个属性介绍

        flex-grow:一个数字,规定项目将相对于其他灵活的项目进行扩展量

        flex-shrink:一个数字,规定项目将相对于其他灵活的项目进行收缩的量

        flex-basis:项目的长度

    Why do you work so hard? Because the things I want to buy are expensive and the places I want to go are far away. The person I like is very excellent.
  • 相关阅读:
    Asp.Net MVC3 简单入门第一季(五) 通过Asp.Net MVC的区域功能实现将多个MVC项目部署到一个站点
    Asp.Net MVC3 简单入门第一季(一)环境准备
    Asp.Net MVC3 简单入门第一季(三)详解Controller之Filter
    Entity Framework快速入门一对零到一关系处理
    Html5 学习系列(一)认识HTML5
    程序员体检完事后的感受
    Asp.Net MVC3 简单入门第一季 【索引贴】
    实在忍不住,【转】一篇好文章!题目:【转】想要成功,请记住!
    Html5 学习系列(二)HTML5新增结构标签
    大学应该怎么读?
  • 原文地址:https://www.cnblogs.com/liufuyuan/p/10256171.html
Copyright © 2011-2022 走看看