zoukankan      html  css  js  c++  java
  • 盒子模型的理解

    盒子模型有两种:W3C和IE盒子模型

    盒子模型包括margin、border、padding、content

    W3C的元素宽度=content的宽度

    IE的元素宽度=content+padding+border

    我个人认为W3C定义盒子模型与IE定义的盒子模型,IE定义的比较合理,

    元素的宽度应该包含border(边框)和padding(填充),这个和我们现实生活的盒子是一样的,

    W3C也认识到自己的问题了,所以在CSS3中新增了一个样式box-sizing,

    包含两个属性content-box 和 border-box。

    content-box  :  width=content+padding+border

    border-box:     width=width(样式指定的宽度)

    1.对于行级元素,margin-top和margin-bottom对于上下元素无效,margin-left和margin-right有效

    2.对于相邻的块级元素margin-bottom和margin-top 取值方式

     1) 都是正数: 取最大值   距离=Math.max(margin-botton,margin-top)

      2) 都是负数: 取最小值   距离=Math.min(margin-botton,margin-top)

      3)上面是正数,下面是负数或者 上面是负数,下面是正数: 正负相加   距离=margin-botton+margin-top

    这段时间了解到一个关于盒子模型的几个概念,css中的核心是盒子,盒子模型有四个概念ifc,gfc,ffc,bfc

    BFC 
    BFC(Block Formatting Contexts)意为“块级格式化上下文”。就是页面上的一个渲染区域,容器内的子元素不会对外面的元素布局产生影响,反之亦然。如何生成BFC: 
    float的值不为none; 
    overflow的值不为visible; 
    position的值不为relative和static; 
    display的值为table-cell,table-caption何inline-block中的任何一个。 

    运用场景:1,不与浮动元素重叠     2,可以清楚元素内部浮动 3,解除上下两个相邻元素的重叠  4,自适应布局


    IFC 
    IFC(Inline Formatting Contexts)意为“内联格式化上下文”,IFC中,盒子依次水平放置,从包含块的顶部开始。

    运用场景:水平居中  垂直居中  其他行内元素可以在此元素下垂直居中 可能会导致样式混乱

     
    GFC 
    GFC(GridLayout Formatting Contexts)意为“网格布局格式化上下文”当一个元素设置为display:grid的时候,此元素将获得一个独立的渲染区域,可以在网格容器上定义网格行和列,为每一个网格定义位置和空间。GFC和table的区别在于GridLayout会有更加丰富的属性来控制行列,控制对齐以及更为精细的渲染。 


    FFC 
    FFC(Flex Formatting Contexts)意为“自适应格式化上下文”,display值为flex或者inline-flex的元素将会生成自适应容器,当前只有谷歌和火狐支持该属性,不过在移动端几乎没有障碍(移动端是chrome和Safari的天下)。flex box由伸缩容器和伸缩子元素组成。通过设置元素display:flex/inline-flex可以得到伸缩容器,前者为块级元素,后者为行内元素。伸缩容器外元素不受影响。

  • 相关阅读:
    原来 是 需要的,
    传说中的 拉伸,
    date + 排序,
    两个 header,
    招财铃,负责模块,
    一个字母,
    一个词,
    vue+webpack静态资源路径引用
    Webstorm 的 Tab 键调整缩进值
    ES6常用语法
  • 原文地址:https://www.cnblogs.com/moneyss/p/7003326.html
Copyright © 2011-2022 走看看