盒模型对比

W3C的标准盒模型:
外盒尺寸计算(元素空间尺寸):
element 空间高度 = 内容高度 + 内边距 + 边框 + 外边距
element 空间宽度 = 内容宽度 + 内边距 + 边框 + 外边距

内盒尺寸计算(元素大小):
element 高度 = 内容高度 + 内边距 + 边框
element 宽度 = 内容宽度 + 内边距 + 边框

IE传统盒模型(IE6以下,不包括IE6):
外盒尺寸计算(元素空间尺寸):
element 空间高度 = 内容高度(包括了height+padding+border) + 外边距
element 空间宽度 = 内容宽度(包括了width+padding+border) + 内边距 + 边框 + 外边距

内盒尺寸计算(元素大小):
element 高度 = 内容高度(包括了height+padding+border)
element 宽度 = 内容宽度(包括了height+padding+border)

IE6以下版本其内容真正的宽度是width,padding,border。

box-sizing:
前面讲到在IE传统盒模型下,边框和内边距都包含在宽度和高度内。而在标准的浏览器中,宽度和高度仅仅包含了内容宽度,除去了边框和内边距,这样就为web设计处理增添了很多麻烦。比如我们需要一个100px的元素,元素有10px的内边距,1px的边框,在W3C标准盒模型下就必须要做一番加减了,最后得出内容宽度为100-20-2=78px,而在IE传统盒模型下却只需要声明盒子内容等于100px,内边距与边框自动算在里面。为了解决这个问题,css3增添了一个盒模型属性box-sizing,能够事先定义盒模型的尺寸解析方式。

box-sizing:content-box | border-box | inherit
content-box:默认值,让元素维持W3C的标准盒模型。
border-box:此值会让元素维持IE传统盒模型。
inherit:此值使元素继承父元素的盒模型模式。

<!DOCTYPE html>
<html lang="en" xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta charset="utf-8" />
<title></title>
<style>
div{
width:100px;
height:100px;
background:hsla(360,50%,30%,0.5);
padding:10px;
border:10px solid red;
box-sizing:content-box;
}
</style>
</head>
<body>
<div>sldfkdslml</div>
</body>
</html>
结果:总宽度为100+20+20=140px

如改为:
div{
width:100px;
height:100px;
background:hsla(360,50%,30%,0.5);
padding:10px;
border:10px solid red;
box-sizing:border-box;
}
结果:总宽度为100px(内边距和边框包含在内部)

在IE传统盒模型(border-box)下,盒子大小不变。
  IE6以下版本对盒模型的解析模式虽然不符合W3C的标准规范,但这种方式并不是一无是处,它也有好的一面:不管如果修改元素的边框或者内边距大小,都不会影响元素盒子的总尺寸,也就不会打乱页面的整体布局。而在标准浏览器下,按照W3C规范对盒模型的解析,一旦修改了元素的边框或者内边距,就会影响元素的盒子尺寸,也就不得不重新计算元素的盒子尺寸,从而影响到整个页面的布局。

时间: 2024-07-29 14:59:34

盒模型对比的相关文章

CSS3盒模型温故

CSS有一种基础设计模式叫盒模型,定义了Web页面中的元素是如何看做盒子来解析的.每一个盒子有不同的展示界面,下面就来介绍盒模型,主要有一下几种盒模型:inline.inline-block.block.table.absolute position.float.浏览器把每个元素看做一个盒模型,每个盒模型是由以下几个属性组合所决定的:display.position.float.width.height.margin.paddinghe border等,不同类型的盒模型会产生不同的布局 什么是盒

KHL 002 11-计算机-本职-前台 盒模型

CSS 盒模型 CSS中的盒模型 inline inline-block block table absolute position float 盒子3D模型 可以看出: 其中 padding .content .background-image .background-color 四者构成Z轴:border与margin.padding三者之间应该是平面上的并级关系,并不能构成Z国的层叠关系. 重置盒模型解析模型 W3C的标准盒模型 外盒尺寸计算(元素空间尺寸) element 空间高度 =

Webkit Flex伸缩盒模型属性备忘

一个元素被定义display:-webkit-flex;则此元素即为伸缩盒模型中的伸缩容器,其包含的子元素是伸缩项目. flex是一个复合属性.Flexbox伸缩布局盒模型中的伸缩容器及伸缩特性定义. 由多个伸缩项目组成其具体的布局方式. 是为了呈现复杂的应用与页面而设计出来的. display:-webkit-flex; -webkit-flex: none | [flex-grow flex-shrink || flex-basis] | initial | auto none 在任何情况都

盒模型中padding、border、margin的区别

在CSS中,规定了一种基本设计模型--盒模型(也叫框模型),如图所示: 其中包含了四部分内容:element/元素(即图中文字).padding/内边框(图中两个红色边框之间白色部分).border/边框(蓝色区域).margin/外边框(图中两绿色边框中间白色部分). 区别: element占据的就是字体本身的字号大小: padding和margin 类似,指的是一段距离,只能设置上.下.左.右方向的一段长度,不能设置区域颜色: 而border指的是一块区域,可以设置上下左右方向的长度,而且可

关于盒模型的一点总结

标准w3c盒模型图示 关于怪异盒模型和标准盒模型的对比 关于怪异盒模型盒标准盒模型之间的转换 原文地址:https://www.cnblogs.com/paradise-zzz/p/8458087.html

盒模型详解

(1)未加任何修饰的盒模型 1 <template> 2 <div> 3 <div class="top">上列</div> 4 <div class="bottom">下列</div> 5 </div> 6 </template> 7 8 <script> 9 export default { 10 name: 'Home' 11 } 12 </scr

盒模型的属性/display显示(重要)/浮动(重要)

一.关于上篇博客的总结 1.高级选择器: (1).后代选择器***** 选择的是儿子,孙子,重孙子 div p{} (2).子代选择器 选择的是亲儿子 div>p (3).组合选择器 div,p,a,span{} (4).交集选择器 div.active{} (5).属性选择器 input[type="text"]{} (6),伪类选择器 爱恨准则 a:link{} a:visited{} a:hover{} a:active{} 对a来设置字体颜色,一定要选中a (7).伪元素

flex弹性盒模型理解

首先,flex布局的迷之属性们,如果一知半解,机械记忆的话,那不到半个月基本忘光光.先感受一下这12个flex布局属性,是不是很“迷”人. 容器属性 flex-flow flex-direction flex-wrap justify-content align-items align-content 元素属性 order flex-grow flex-shrink flex-basis flex align-self 就连老外也都在twitter吐槽不好理解,可见还是有一定的学习成本. 而目前

什么是盒模型

高楼林立的城市必然离不开忙碌的人们,人类用双手变化出城市,给予它生命与规则. 阡陌纵横的康庄大道纵然四通八达,但路基中深埋的无数砂砾才是这一切的源头.总有一些人,一些事会随着时间长河默默抹去记忆,后世者不追究,不询问.但不代表他们不存在. HTML可以让一个网页从无到有,视为神奇.Css让HTML更加美观绚丽堪比惊艳.可这些传奇惊艳的背后总是有不为人知的事物,例如它盒模型. 盒模型是我们css布局的基石,是规定了网页元素如何显示以及元素间相互关系,是css里规矩的始发者,但同是它也是维护者.cs