最新公告
  • 欢迎您光临起源地模板网,本站秉承服务宗旨 履行“站长”责任,销售只是起点 服务永无止境!立即加入钻石VIP
  • CSS(四):盒模型(The Box Model)

    正文概述 掘金(小皮丘)   2021-07-31   725

    在 CSS 布局中,所有元素都被盒子包围。

    块级盒子和内联盒子

    CSS 中有两种盒子:块级盒子(Block box) 和 内联盒子(Inline box)。它们在页面流(page flow)和元素之间的关系表现不同的行为。

    块级盒子

    1. 盒子会在内联的方向上扩展并占据父容器在该方向上的所有可用空间,在绝大数情况下意味着盒子会和父容器一样宽
    2. 每个盒子都会换行
    3. width 和 height 属性可以发挥作用
    4. 内边距(padding), 外边距(margin) 和 边框(border) 会将其他元素从当前盒子周围“推开”

    除非特殊指定,诸如标题(<h1>等)和段落(<p>)默认情况下都是块级的盒子。

    内联盒子

    1. 盒子不会产生换行。
    2. width 和 height 属性将不起作用。
    3. 垂直方向的内边距、外边距以及边框会被应用但是不会把其他处于 inline 状态的盒子推开。
    4. 水平方向的内边距、外边距以及边框会被应用且会把其他处于 inline 状态的盒子推开。

    用做链接的 <a> 元素、 <span>、 <em> 以及 <strong> 都是默认处于 inline 状态的。

    我们通过对盒子 display 属性的设置,比如 inline 或者 block ,来控制盒子的外部显示类型。

    内部和外部显示类型

    外部显示类型

    CSS 的盒子模型有一个外部显示类型,来决定盒子是块级还是内联。

    内部显示类型

    盒子包模型还有内部显示类型,来决定盒子内部元素如何布局。默认按照正常文档流布局,也就是上面说的那样。

    但是,也可以使用 flex 的 display 属性来更改内部显示类型。比如设置一个外部显示类型为 block 的元素 display:flex,那么它的内部显示类型就是 flex,该盒子内的所有直接子元素成为 flex 元素,按照弹性盒子规则布局。

    CSS 盒模型

    完整的盒模型应用于块级盒子,内联盒子只能使用部分内容。

    盒模型定义了四个属性:margin、border、padding、content。

    • margin:盒子和其他元素的空白区域。通过 margin 相关属性设置。
    • border:盒边框。通过 border 相关属性设置。
    • padding:在盒子内但在内容区域外的空白区域。通过 padding 相关属性设置。
    • content:内容区域。通过 width、height 设置。

    标准盒模型

    在标准盒模型中,设置的 width 和 height 作用于 content。再加上 padding、border 一起决定整个盒子的大小。

    替代(IE)盒模型

    浏览器默认使用标准盒模型。

    如果需要使用替代盒模型,需设置 box-sizing: border-box。

    替代盒模型的长宽等于 content+padding+border,所以 content=width/height - padding - border。

    如果想要全部使用替代盒模型,可以设置:

    html {
      box-sizing: border-box;
    }
    

    margin

    外边距会把其他元素从盒子身边推开。外边距也可以设置为负值,这会导致和其他内容重叠。无论是标准还是替代盒模型,外边距总是在计算可见部分后添加。 margin 属性有:

    • margin
    • margin-top
    • margin-bottom
    • margin-right
    • margin-left

    外边距折叠

    两个外边距相接的元素,更大的设置会被保留,小的则消失。并不是两个外边距的总和。

    边框

    如果使用标准盒模型,添加边框将增加整个宽高。

    如果使用替代盒模型,添加边框将减少 content。

    border 的属性有:

    • border

    设置宽度、颜色、样式

    • border-top
    • border-bottom
    • border-right
    • border-left

    设置所有边的宽度、颜色、样式

    • border-width
    • border-style
    • border-color

    设置某条边的宽度、颜色、样式可以用特定的

    • border-top-witdh
    • border-top-style
    • border-top-color
    • border-right-witdh
    • border-right-style
    • border-right-color
    • border-bottom-witdh
    • border-bottom-style
    • border-bottom-color
    • border-left-witdh
    • border-left-style
    • border-left-color

    内边距

    内外距不能为负,必须是0或正值。

    padding属性有:

    • padding
    • padding-top
    • padding-bottom
    • padding-right
    • padding-left

    display:inline-block

    元素可以不换到新行,但又可以设定宽度和高度。

    参考

    MDN:developer.mozilla.org/zh-CN/docs/…


    起源地下载网 » CSS(四):盒模型(The Box Model)

    常见问题FAQ

    免费下载或者VIP会员专享资源能否直接商用?
    本站所有资源版权均属于原作者所有,这里所提供资源均只能用于参考学习用,请勿直接商用。若由于商用引起版权纠纷,一切责任均由使用者承担。更多说明请参考 VIP介绍。
    提示下载完但解压或打开不了?
    最常见的情况是下载不完整: 可对比下载完压缩包的与网盘上的容量,若小于网盘提示的容量则是这个原因。这是浏览器下载的bug,建议用百度网盘软件或迅雷下载。若排除这种情况,可在对应资源底部留言,或 联络我们.。
    找不到素材资源介绍文章里的示例图片?
    对于PPT,KEY,Mockups,APP,网页模版等类型的素材,文章内用于介绍的图片通常并不包含在对应可供下载素材包内。这些相关商业图片需另外购买,且本站不负责(也没有办法)找到出处。 同样地一些字体文件也是这种情况,但部分素材会在素材包内有一份字体下载链接清单。
    模板不会安装或需要功能定制以及二次开发?
    请QQ联系我们

    发表评论

    还没有评论,快来抢沙发吧!

    如需帝国cms功能定制以及二次开发请联系我们

    联系作者

    请选择支付方式

    ×
    迅虎支付宝
    迅虎微信
    支付宝当面付
    余额支付
    ×
    微信扫码支付 0 元