CSS笔记

  • 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

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 问答题47 /72 常见浏览器兼容性问题与解决方案? 参考答案 (1)浏览器兼容问题一:不同浏览器的标签默认的外补...
    _Yfling阅读 14,706评论 1 92
  • 1. 前言 前端圈有个“梗”:在面试时,问个css的position属性能刷掉一半人,其中不乏工作四五年的同学。在...
    YjWorld阅读 10,199评论 5 15
  • 学会使用CSS选择器熟记CSS样式和外观属性熟练掌握CSS各种选择器熟练掌握CSS各种选择器熟练掌握CSS三种显示...
    七彩小鹿阅读 11,455评论 2 66
  • CSS 指层叠样式表(Cascading Style Sheets),是一种用来为结构化文档(如 HTML 文档或...
    神齐阅读 6,493评论 0 14
  • 像一朵睡莲那样苏醒 每一个细胞都活泼轻灵 鸟儿在窗外卖弄着多情的花腔 悦耳又动听 轻轻地打开我的门窗 微凉的风儿送...
    芳冰阅读 1,706评论 0 3

友情链接更多精彩内容