关于盒模型你想知道的一切

什么是盒模型

在 CSS 中,所有的元素都被一个个的“盒子(box)”包围着,理解这些“盒子”的基本原理,是我们使用CSS实现准确布局、处理元素排列的关键。

盒模型的组成

CSS中组成一个块级盒子需要:

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

在标准模型中,如果你给盒设置 width 和 height,实际设置的是 content box。 padding 和 border 再加上设置的宽高一起决定整个盒子的大小
在这里插入图片描述

盒模型的面积如何计算

盒模型的面积如何计算

总元素高度=内容区宽度+左填充+右填充+左边框+右边框

总元素高度=内容区高度+上填充+下填充+上边框+下边框

由于边框会增加盒模型的面积

那么整个盒模型的面积就等于(pl+bl+ml+width+pr+br+mr) *(pb+bb+mb+height+pt+bt+mt)

padding 内边距

CSS 拥有用于为元素的每一侧指定内边距的属性:

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

所有内边距属性都可以设置以下值:

length - 以 px、pt、cm 等单位指定内边距
% - 指定以包含元素宽度的百分比计的内边距

赋值方式

顺时针赋值 从上开始

border 边框

dotted: 定义一个点线边框

dashed: 定义一个虚线边框

solid: 定义实线边框

double: 定义两个边框。 两个边框的宽度和 border-width 的值相同

1.边框宽度

2.边框颜色
border-radius

border-top-left-radius:为元素左上角设置圆角效果;
border-top-right-radius:为元素右上角设置圆角效果;
border-bottom-right-radius:为元素右下角设置圆角效果;
border-bottom-left-radius:为元素左下角设置圆角效果;
border-radius:上面四个属性的简写形式,可以同时为元素的四个角设置圆角效果

margin 外边距

  1. 叠压现象

在垂直方向如果有两个元素的外边距有相遇,在浏览器中加载的真正的外边距不是两个间距的加和,而是两个边距中值比较大的,边距小的塌陷到了边距值大的值内部。


<style type="text/css">
.box-1 {
  /*底部margin 10px被box-2合并了*/
  margin-bottom: 10px;
  background-color: green;
}

.box-2 {
  margin-top: 20px;
  background-color: gray;
}
</style>


<div class="box box-1">box-1</div>
<div class="box box-2">box-2</div>

[点击并拖拽以移动]

  1. 塌陷现象

外边距塌陷(margin collapsing)也称为外边距合并,是指两个在正常流中相邻(兄弟或父子关系)的块级元素的外边距,组合在一起变成单个外边距不。
出现的原因是在常态下,父元素的第一个子集元素为块标签,并且使用了margin 或 margin-top

解决方案有

    1.在父元素使用border

    2.在父元素不使用margin-top在父级使用padding-top

    3.在父级使用overflow:hidden

怪异盒模型

怪异盒模型学习: link
标准盒模型中width指的是内容区域content的宽度;height指的是内容区域content的高度。

标准盒模型下盒子的大小 = content + border + padding + margin

怪异盒模型中的width指的是内容、边框、内边距总的宽度(content + border + padding);height指的是内容、边框、内边距总的高度

怪异盒模型下盒子的大小=width(content + border + padding) + margin

正常盒模型向外扩展,怪异盒模型向内压缩

怪异盒模型: 在这里插入图片描述

box-sizing

box-sizingbox-sizing属性的三个值 :

content-box: 默认值,border和padding不算到width范围内,采用标准模式解析计算,是W3c的标准模型(default)

border-box:border和padding划归到width范围内,采用怪异模式解析计算,是IE的怪异盒模型

padding-box:将padding算入width范围
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值