css盒子模型及盒子模型的类型

html-css05

css盒子模型及盒子模型的类型,第1张

转自 菜鸟教程

所有HTML元素可以看作盒子,在CSS中,"box model"这一术语是用来设计和布局时使用。

CSS盒模型本质上是一个盒子,封装周围的HTML元素,它包括: 边距(外边距) 边框 填充(内边距) ,和 实际内容

盒模型允许我们在其它元素和周围元素边框之间的空间放置元素。

下面的图片说明了盒子模型(Box Model):

转自 链接

盒子模型有两种,分别是W3C盒子模型(标准盒模型)和IE盒子模型(怪异盒模型)

1.标准盒模型中width指的是内容区域content的宽度;height指的是内容区域content的高度。

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

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

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

建议不要给元素添加具有指定宽度的内边距,而是尝试将内边距或外边距添加到元素的父元素和子元素。

即box-sizing属性可以指定盒子模型种类,content-box指定盒子模型为W3C(标准盒模型),border-box为IE盒子模型(怪异盒模型)。

目前盒子模型分为两种。(1)w3c标准盒子模型 (2)ie盒模型

盒子模型分为 内容content + 内边距padding + 边框border + 外边距margin 四部分。

w3c标准盒子模型 与 ie盒模型 的区别:

标准盒子模型的 宽度width 和 高度 height 只包含 content内容部分,不包含padding内边距 和 边框border。

ie盒子模型 宽度width 和 高度 height 包含 内容+内边距+边框三部分。

CSS盒子模型由四个部分组成,包括:外边距(margin)、内边距(padding)、边框(border)、内容区(width和height)

标准的CSS盒子模型和低端IE CSS盒子模型(也叫怪异盒模型)不同,区别在于:

标准的css盒子模型宽高=内容区宽高

低端IE css盒子模型宽高=内容区宽高+内边距﹢边框

即:width/height = content + padding + border

所以标准盒模型下,盒子的总宽高计算公式是:content宽或高 + border + padding + margin

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

W3C 的规范,元素内容占据的空间是由 width 属性设置的,而内容周围的 padding 和 border 值是另外计算的。而IE5.X 和 6 在怪异模式中使用自己的非标准模型。这些浏览器的 width 属性不是内容的宽度,而是内容、内边距和边框的宽度的总和。

解决IE8及更早版本不兼容问题,可以在HTML页面声明 <!DOCTYPE html>。

如果是定义了完整的doctype的标准文档类型,无论是哪种模型情况,最终都会触发标准模式,

如果doctype协议缺失,会由浏览器自己界定,在IE浏览器中IE9以下(IE6.IE7.IE8)的版本触发怪异模式,其他浏览器中会默认为W3c标准模式。

另外,我们还可以通过属性box-sizing来设置盒子模型的解析模式

当设置为box-sizing:content-box时,将采用标准模式解析计算(默认模式);

当设置为box-sizing:border-box时,将采用怪异模式解析计算;

参考教程:

2020权威HTML+CSS零基础入学-渡一教育

CSS 盒子模型-W3C手册

标准的CSS盒子模型?与低版本IE的盒子模型有什么不同的?

W3C盒模型和IE盒模型的区别

什么是CSS盒模型 IE盒模型和W3C盒模型