CSS笔记

作者: 七代目火影Na | 来源:发表于2018-09-16 21:18 被阅读0次
    • margin叠加

    1. 盒子模型的相邻元素、父子元素的垂直方向上的margin会产生margin塌陷,具体的margin值为一大一小取大,一正一负取和。
    2. 相邻的盒子模型中,如果有一个是浮动的,则不会产生margin重叠,水平方向的margin永远不会发生重叠。
    3. BFC不会发生margin重叠,而且和它的子元素也不会发生重叠,但相邻子元素之间会发生重叠。
    4. 两栏布局的两个BFC,float的BFC垂直方向的margin会和固定的BFC发生叠加,float的BFC和固定的BFC顶部对齐。
    5. 当其父元素设置了border属性的时候,与子元素垂直方向上的margin不会发生塌陷。
    6. 在一个BFC中的兄弟元素,只要不脱离文档流,无论如何都会发生margin塌陷的问题。
    • tips:margin叠加解决方法

    1. 在父元素或者兄弟元素之间设置合适的margin。
    2. 使用BFC可以消除父子之间的margin塌陷。
    3. 可以通过嵌套BFC的方法去消除相邻元素的margin叠加。
    • BFC

    1. BFC(Block formatting context)直译为"块级格式化上下文"。它是一个独立的渲染区域,只有Block-level box参与, 它规定了内部的Block-level Box如何布局,并且与这个区域外部毫不相干。
    2. 形成BFC的条件:
      • 根元素
      • float属性不为none
      • position为absolute或fixed
      • display为inline-block, table-cell, table-caption, flex, inline-flex
      • overflow不为visible
    3. BFC规则:
      • 内部的Box会在垂直方向,一个接一个地放置。
      • Box垂直方向的距离由margin决定。属于同一个BFC的两个相邻Box的margin会发生重叠。
      • 每个元素的margin box的左边, 与包含块border box的左边相接触(对于从左往右的格式化,否 则相反)。即使存在浮动也是如此。
      • BFC的区域不会与float box重叠。
      • BFC就是页面上的一个隔离的独立容器,容器里面的子元素不会影响到外面的元素。反之也如此。
      • 计算BFC的高度时,浮动元素也参与计算。
    • IFC

    1. 布局规则:
      • 在一个行内格式化上下文中,盒是一个接一个水平放置的,从包含块的顶部开始
      • 这些盒之间的水平margin,border和padding都有效
      • 盒可能以不同的方式竖直对齐:以它们的底部或者顶部对齐,或者以它们里面的文本的基线对齐
    2. 行盒:
      • 包含来自同一行的盒的矩形区域叫做行盒(line box)

      • line box的宽度由包含块和float情况决定,一般来说,line box的宽度等于包含块两边之间的宽度,然而float可以插入到包含块和行盒边之间,如果有float,那么line box的宽度会比没有float时小

      • line box的高度由line-height决定,而line box之间的高度各不相同(比如只含文本的line box高度与包含图片的line box高度之间)

      • line box的高度能够容纳它包含的所有盒,当盒的高度小于行盒的高度(例如,如果盒是baseline对齐)时,盒的竖直对齐方式由vertical-align属性决定

      • 当一行的行内级盒的总宽度小于它们所在的line box的宽度时,它们在行盒里的水平分布由text-align属性决定。如果该属性值为justify,用户代理可能会拉伸行内盒(不包括inline-table和inline-block盒)里的空白和字(间距)

    • GFC

    • FFC

    • CSS响应式格栅系统

      • 之前用的float,现在用的flex
    • flex布局

    • 布局方法

    1. 负边距原理:
      给一个不定宽的块级框设置正边距会让他的宽度减小,设置负边距会让他的宽度增加。

    2. float:
      浮动框的上边缘会去贴当前行盒的上边缘或是之前浮动框的下边缘,左浮动框的左边缘会去贴包含框的左边缘,或者他之前的左浮动框的右边缘。如果当前行剩余的空间容不下一个浮动框,他就会换行。(左浮动)。

    3. 绝对定位:
      绝对定位的框完全脱离普通流。

    4. 常用的布局:

      • 弹性布局(flex布局)
      • 流式布局(设置百分比)
      • 瀑布流布局(多栏布局,响应加载)
      • 响应式布局(通过媒介查询加载不同样式)
      • 响应式格栅系统(bootstrap)
    5. viewport

      • layout viewport:浏览器默认区域
      • visual viewport:可视区域大小
      • ideal viewport:完美适配移动设备的viewport
    • csshack

    相关文章

      网友评论

          本文标题:CSS笔记

          本文链接:https://www.haomeiwen.com/subject/cjofnftx.html