盒模型

(1)块级盒子(Block box)和内联盒子(Inline box)
一个被定义成块级的盒子会表现出一下行为:

  • 盒子在内联的方向上扩展并占据父容器在该方向上的所有可用空间,在绝大多数情况下意味着盒子会和父容器一样宽
  • 每个盒子都会换行
  • width和height可以发挥作用
  • 内边距,外边距和边框会将其它元素从当前盒子周围“推开”
    除非特殊指定,诸如标题(h1等)和段落(p)默认情况下都是块级的盒子。

如果一个盒子对外显示为inline,那么它有如下行为:

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

(2)CSS盒模型
完整的css盒模型应用于块级盒子,内联盒子只使用盒模型中定义的部分内容。模型定义了盒的每个部分(margin、border、padding和content),合在一起就可以创建我们页面上看到的内容。
1.盒模型的各个部分

  • Content box:这个区域用来显示内容,大小可以通过width和height设置
  • Padding box:包围在内容区域外部的空白区域;通过padding设置。
  • Border box:边框盒包括内容和内边距。大小通过border相关属性设置。
  • Margin box:最外面的区域,是盒子和其他元素之间的空白区域。大小通过margin相关属性设置。

2.标准盒模型
在标准模型中,如果你给盒子设置weight和height,实际设置的是content box。padding和border再加上设置的宽高一起决定整个盒子的大小。
height = contentHeight + padding + border; width = contentWidth + padding + border;

3.替代(IE)盒模型
IE盒模型中,所有宽度都是可见宽度,所以内容宽度是该宽度嫁娶边框和填充部分。
height = contentHeight; width = contentWidth;

(3)外边距、内边距和边框
1.外边距
外边距是盒子周围一圈看不到的空间,它会把其他元素从盒子旁边推开。外边距属性值可以为正也可以为负。设置负值会导致和其他内容重叠
外边距为正时推开周围元素,为负时收缩空间。

注意:

  • padding不能设置为负值,margin设置为负值会压缩当前盒子。
### CSS 模型概念 CSS 模型是网页布局的基础之一,用于描述页面上每个元素作为一个矩形区域的行为。这个矩形由四个部分组成:内容区(content)、内边距(padding)、边框(border)以及外边距(margin)。不同浏览器默认采用不同的模型计算方式。 #### 怪异模型与标准模型区别 在怪异模型中,`width` 和 `height` 属性不仅定义了内容区的尺寸,还包括了内边距和边框宽度,但不包含外边距[^1];而在标准模型下,这些属性仅指定了内容本身的大小,额外的空间则通过独立设定 `padding` 及 `border` 来增加整体占据空间[^2]。 为了兼容这两种模式,在现代Web开发实践中推荐显式声明 `box-sizing` 属性: - 当设置为 `content-box` 时遵循W3C标准模型; - 设置成 `border-box` 则模仿IE的传统行为,即把 padding 和 border 计入到指定的宽高之内。 ```css * { box-sizing: border-box; } ``` 上述代码片段展示了如何全局应用 `border-box` 模型给所有HTML标签,从而简化样式表编写并提高跨浏览器一致性。 ### 使用方法实例 假设有一个容器需要固定宽度为300px,并希望其内部填充物加上边界不超过此限值,则可以如下操作: ```html <div class="container"> <!-- 子元素 --> </div> ``` ```css .container { width: 300px; /* 设定总宽度 */ padding: 20px; /* 添加内边距 */ border: 5px solid black; /* 定义边框 */ box-sizing: border-box; /* 应用 IE/Edge 的模型 */ } ``` 这样即使设置了较大的内外间距,`.container` 实际占用的空间仍然保持为300像素不变。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值