CSS3——盒模型、常规流

盒模型

box:盒子,每个元素在页面中都会生成一个矩形区域(盒子)
在这里插入图片描述

盒子类型:

  1. 行盒,display等于inline的元素
  2. 块盒,display等于block的元素

行盒在页面中不换行,块盒独占一行
(h1,p,div:display=block独占一行)
display默认属性为inline(不继承)

浏览器默认样式表设置的块盒:容器元素、h1-h6、p

常见的行盒:span、a、img、video、audio

盒子的组成部分

无论是行盒还是块盒,都由以下几个部分组成,从内到外分别是:

  1. 内容 content

width、height,设置的是盒子内容的宽高
内容部分通常叫做整个盒子的内容盒 content-box

  1. 填充 padding

盒子边框到盒子内容的距离
padding-left、padding-right、padding-top、padding-bottle

padding:简写属性

padding:上 右 下 左(从上面顺时针转一圈)(如果四个值一样可以只写一个)

填充区+内容区=填充盒子(padding-box)

  1. 边框 border

边框=边框样式+边框宽度+边框颜色
统一设置四个方向的:border :style width color
border-style 默认值是none 没有样式那么边框就没有办法显示(要设置了样式,其他两个才能够显示出来)
border-width 跟padding是一样的,可以一起设置,可以顺时针分别设置
border-color 默认值是字体颜色 跟padding一样 可以分别设置
边框盒(border-box)=边框+内容区+填充区

  1. 外边距 margin

边框到其他盒子的距离

margin-top、-left、–right、-bottle
统一设置和padding一样

常规流布局

所有元素默认情况下都属于常规流布局

总体规则:块盒独占一行,行盒水平依次排列

包含块(containing block):每个盒子都有它的包含块,包含块决定了盒子的活动区域。

绝大部分情况下,盒子的包含块,为其父元素的内容盒。(下面用图解释一下)在这里插入图片描述

没有设置parent的宽度,这样可以看出parent的包含块,为其父元素body的内容盒
在这里插入图片描述
在这里插入图片描述

块盒

  1. 每个块盒的总宽度(margin+border+padding+content),必须刚好等于包含块的宽度。
    宽度的默认值是auto;margin的默认值是0;padding默认值为0
    auto:将剩余空间吸收掉(用总宽度减去已经设置的宽度)

在这里插入图片描述
在这里插入图片描述

margin的值也可以设置为auto,但是当width和margin值都为auto的时候,width的吸收能力较强。在这里插入图片描述

若宽度、边框、内边距计算后任然有剩余空间,该剩余空间被margin-right全部吸收。
在这里插入图片描述
在常规流中,块盒在其包含块中居中,可以定宽,然后左右margin设置为auto。
在这里插入图片描述

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

height:auto 适应内容的高度
在这里插入图片描述

margin:auto 表示0

  1. 百分比取值

padding、宽、margin可以取值为百分比。
以上所有百分比相对于包含块的宽度(跟高度没有关系!!)
在这里插入图片描述
在这里插入图片描述

高度的百分比:
1)包含块的高度是否取决于子元素的高度,设置百分比无效(比如子元素设置百分比50%,但是父元素没有设置高度,如图)
在这里插入图片描述
此时就发生了矛盾,父元素高度取决于子元素高度,子元素高度又是父元素的50%,就会觉得很奇怪???所以这种情况设置百分比无效

2)包含块的高度不取决与子元素的高度,百分比相对于父元素高度。(比如父元素定高,子元素是父元素的50% ,这种情况就是合理的)

  1. 上下外边距的合并

两个常规流块盒,上下外边距相邻,会进行合并。
在这里插入图片描述

在这里插入图片描述

按理说上下相邻的div应该相距100,但是看到的两个div上下相邻是50,就是因为进行了合并。
合并的时候两个外边距取最大值。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
CSS(层叠样式表)是一种用于描述网页上元素样式的语言。在CSS中,盒模型是一个重要的概念,它定义了HTML元素在页面中的布局和样式。 盒模型由四个主要部分组成:内容区域、内边距、边框和外边距。下面对每个部分进行详细说明: 1. 内容区域(content):内容区域是盒模型中实际显示内容的部分,例如文本、图像等。它的大小由内容的宽度和高度决定。 2. 内边距(padding):内边距是位于内容区域和边框之间的空白区域。可以使用padding属性来设置内边距的大小。内边距可以为正值或负值,它会影响元素的尺寸和位置。 3. 边框(border):边框是包围内容区域和内边距的线条或样式。可以使用border属性来设置边框的样式、宽度和颜色。 4. 外边距(margin):外边距是位于元素边框外部的空白区域。可以使用margin属性来设置外边距的大小。外边距也可以为正值或负值,它会影响元素与其他元素之间的间距。 在CSS中,可以使用box-sizing属性来控制盒模型的计算方式。默认情况下,box-sizing属性的值为content-box,即宽度和高度只包括内容区域。如果将box-sizing属性的值设置为border-box,那么宽度和高度将包括内容区域、内边距和边框。 了解盒模型的概念对于理解和掌握CSS布局和样式非常重要。可以通过设置元素的宽度、高度、内边距、边框和外边距来实现不同的布局效果。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

天金小麻花

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值