ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

视觉格式化模型

2022-06-19 12:00:53  阅读:143  来源: 互联网

标签:浮动 盒子 包含 auto 模型 元素 常规 视觉 格式化


视觉格式化模型

盒模型:规定单个盒子的规则
视觉格式化模型(布局规则):页面中的多个盒子的排列规则
视觉格式化模型,大体上将页面中盒子的排列分为三种方式:

  1. 常规流
  2. 浮动
  3. 定位

常规流布局

又称为 文档流、普通文档流、常规文档流
所有元素,默认情况下,都属于常规流布局
总体规则:块盒独占一行,行盒水平依次排列
包含块(containing block):每个盒子都有它的包含快,包含快决定了盒子的排列区域


绝大部分情况下:盒子的包含块,为其父元素的内容盒


块盒

  1. 每个块盒的总宽度,必须刚好等于包含快的宽度


    宽度的默认值是auto,会自动撑满包含块剩余的空间(去掉padding和border以后的空间)。


    margin的取值也可以是auto,默认值为0


    auto:将剩余的空间吸收掉


    width的吸收能力强于margin


    若宽度、边框、内边距、外边距计算后,仍有剩余空间,该剩余空间被marigin-right吸收


    在常规流中,块盒在其包含块中居中,可以通过定宽、然后左右margin值设置为auto来实现。

  2. 每个块盒垂直方向上的auto值


    height : auto , 适应内容的高度


    margin : auto , 表示0(垂直方向)

  3. 百分比取值


    padding、宽、margin可以取值为百分比


    以上的所有百分比相对于**包含块的 宽度 **(注意是宽度而且是包含块的宽度)


    高度的百分比:

  1. . 包含块的高度取决于子元素的高度时,设置百分比无效


    2). 包含块的高度不取决于子元素的高度时,百分比相对父元素高度


    4.上下外边距的合并


    两个常规流块盒,上下外边距相邻,会进行合并。


    两个外边距取最大值


    可以通过设置边框解决

浮动

应用场景:

  1. 文字环绕

  2. 横向排列

浮动的基本特点

修改float属性值为:

  • left:左浮动,元素靠上靠左

  • right:右浮动,元素靠上靠右


    默认值为none

  1. 当一个元素浮动后,元素必定为块盒(更改display为block)

  2. 浮动元素的包含块,和常规流一样,为父元素的内容盒

盒子尺寸

  1. 宽度为auto时,适应内容宽度

  2. 高度为auto时,与常规流一致,适应内容的高度

  3. margin为auto,为0

  4. 边框、内边距、百分比设置与常规流一样

盒子排列

  1. 左浮动的盒子靠上靠左排列

  2. 右浮动的盒子靠上靠右排列

  3. 浮动盒子在包含块中排列时,会避开常规流块盒

  4. 常规流块盒在排列时,会无视浮动盒子

  5. 行盒在排列时,会避开浮动盒子

  6. 外边距合并不会发生

如果文字没有在行盒中,浏览器会自动生成一个行盒包裹文字,该行盒叫做匿名行盒。

高度坍塌

高度坍塌的根源:常规流盒子的自动高度,在计算时,不会靠考虑浮动盒子

高度坍塌 解决方法

清除浮动,涉及css属性:clear

默认值:none

  • left:清除左浮动,该元素必须出现在前面所有浮动盒子的下方

  • right:清除右浮动,该元素必须出现在前面所有右浮动盒子的下方

  • both:清除左右浮动,该元素必须出现在前面所有浮动盒子的下方

标签:浮动,盒子,包含,auto,模型,元素,常规,视觉,格式化
来源: https://www.cnblogs.com/wsjzhk/p/16390231.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有