W3c盒子模型+IE盒子模型+box-sizing属性

1.盒子模型有两种,标准盒模型和IE盒模型,其中W3C标准的盒模型就是在网页的顶部加上 DOCTYPE 声明。

(1)W3C标准的盒模型

W3C盒子模型包括4部分:margin,border,padding,content,其中,content不包括其他部分,下面内容(content)部分为蓝色的部分,不包含其他。

w3c中的盒子模型的宽:包括margin+border+padding+width;(width为content的宽度)

width:margin*2+border*2+padding*2+width;

对应上面的公式,下图中为盒子模型的总宽度为0+1*2+10*2+98

高度同宽度的计算方式:

height:margin*2+border*2+padding*2+height;

对应上面的公式,下图中为盒子模型的总高度为0+1*2+5*2+18

(2)IE盒模型

在IE盒模型中,计算总宽度和高度的方法是一样的,但是IE盒模型中,content部分的宽度width和高度height是不一样的。content的内容包括padding和border和content

IE和模型中content的宽度:content+padding*2+border*2

标准盒子模型中,width和height是content的长与宽 
而IE盒子模型中,width和height是content+padding+border区域的长与宽

2.box-sizing 属性

box-sizing属性值可以为这三个值中的一个:content-box(default),border-box,padding-box。

content-box,border和padding不计算入width之内,也就是说,整个界面的宽度要是content+padding+border,对应标准盒子模型 。

padding-box,padding计算入width内也就是说,整个界面的宽度要是content+padding。

border-box,border和padding计算入width之内,其实就是怪异模式了~也就是说,整个界面的宽度要是content的width,对应IE盒子模型。

默认的box-sizing属性是content-box,宽高属性不计入内边距及边框的数值。变为border-box之后,元素先减去边框和内边距才计算内容。

使用场景:

  在CSS中,你设置一个元素的 width与 height只会应用到这个元素的内容区。如果这个元素有任何的 border或 padding,绘制到屏幕上时的盒子宽度和高度会加上设置的边框和内边距值。这意味着当你调整一个元素的宽度和高度时需要时刻注意到这个元素的边框和内边距。当我们实现响应式布局时,这个特点尤其烦人。

box-sizing 属性可以被用来调整这些表现:

  • content-box  是默认值。如果你设置一个元素的宽为100px,那么这个元素的内容区会有100px宽,并且任何边框和内边距的宽度都会被增加到最后绘制出来的元素宽度中。
  • border-box 告诉浏览器去理解你设置的边框和内边距的值是包含在width内的。也就是说,如果你将一个元素的width设为100px,那么这100px会包含其它的border和padding,内容区的实际宽度会是width减去border + padding的计算值。大多数情况下这使得我们更容易的去设定一个元素的宽高

盗某个大神的一张图,能很清楚知道box-sizing属性的作用

原文地址:https://www.cnblogs.com/wgl0126/p/9262418.html

时间: 2024-10-12 06:10:24

W3c盒子模型+IE盒子模型+box-sizing属性的相关文章

DIV+CSS两种盒子模型(W3C盒子与IE盒子)

在辨析两种盒子模型之前,先简单说明一下什么叫盒子模型. 原理: 先说说我们在网页设计中常听的属性名:内容(content).填充(padding).边框(border).边界(margin), CSS盒子模式都具备这些属性. 这些属性我们可以把它转移到我们日常生活中的盒子(箱子)上来理解,日常生活中所见的盒子也就是能装东西的一种箱子,也具有这些属性,所以叫它盒子模式. 特点: 每个盒子都有:边界.边框.填充.内容四个属性: 每个属性都包括四个部分:上.右.下.左:这四部分可同时设置,也可分别设置

关于盒模型的 盒子模型 、 浮动 、 定位以及高级选择器的使用

盒模型的基本组成包括:外边距(margin)内边距(padding) 边框(border)元素(element,content) 当上下相邻的两个块元素相遇时,如果上面的元素有下外边距margin-bottom,下面的元素有上外边距margin-top,则他们之间的垂直间距不是margin-bottom与margin-top之和,而是两者中的较大者.这种现象被称为相邻块元素垂直外边距的合并( 对于两个嵌套关系的块元素,如果父元素没有上内边距及边框,则父元素的上外边距会与子元素的上外边距发生合并,

盒子模型及层模型【定位】

首先需要说明,盒子模型是针对HTML元素的每一个标签的!因为HTML中每一个标签都符合盒子模型的特点! CSS 框模型 (Box Model) 规定了元素框处理元素内容.内边距.边框 和 外边距 的方式.如下所示: 需要注意: 盒子是由三部分组成的,即:盒子壁[border]+内边距[padding]+内容区[content=width+height] 而盒模型是由四部分组成的,即:外边距[margin]+盒子壁[border]+内边距[padding]+内容区[content=width+he

盒子模型与flex模型

一.盒子模型 二.CSS3弹性盒模型(Flex模型)        伸缩容器默认存在两条轴: 水平的主轴(main axis) 和垂直的侧轴(cross axis)     [注意]主轴方向不一定是水平的,它主要取决于justify-content属性 主轴起点叫main start,主轴终点叫main end:侧轴起点叫cross start,侧轴终点叫cross end 伸缩项目默认沿主轴排列.单个伸缩项目占据的主轴空间叫main size ,占据的侧轴空间叫cross size     [

  Css中的盒模型及盒模型宽度计算

CSS假定所有的HTML文档元素都生成了一个描述该元素在HTML文档布局中所占空间的矩形元素(element box),可以形象地将其看作是一个盒子.CSS围绕这些盒子产生了一种"盒子模型"概念. 盒模型,实际上就是把某些标签元素看成为一个箱子.箱子与其他箱子之间的距离,是箱子的最外围,它不是一条边线而是添加在边框外面的空间.这个外边距使元素盒子之间不必紧凑地连接在一起,是CSS布局的一个重要手段.用margin(外边距)属性来表示,margin-top,margin-right,ma

CSS框模型(框模型概述、内边距、边框、外边距、外边距合并)

CSS 框模型概述 CSS 框模型 (Box Model) 规定了元素框处理元素内容.内边距.边框 和 外边距 的方式. 元素框的最内部分是实际的内容,直接包围内容的是内边距.内边距呈现了元素的背景.内边距的边缘是边框.边框以外是外边距,外边距默认是透明的,因此不会遮挡其后的任何元素. 内边距.边框和外边距都是可选的,默认值是零.但是,许多元素将由用户代理样式表设置外边距和内边距.可以通过将元素的 margin 和 padding 设置为零来覆盖这些浏览器样式.这可以分别进行,也可以使用通用选择

css模型之层模型

css层模型说的是position这个属性,它有四个常用值,分别是static.relative.absolute.fixed. 1.static:这个是元素的默认值,特点是页面会依照自左向右.自上向下的方向布局,并且设置top.right.bottom.left值是没有用的,并且设置z-index也是没有用的,不能进行特殊定位: 2.relative:相对定位,什么是相对?相对于谁?相对是 相对于自身 原本不设置此属性值时 应该在的位置,即默认的文档流应该在的位置.特点是,设置此属性值后该元素

学习总结:CSS(一)块级与行级元素特性、盒模型、层模型、BUG与BFC、浮动模型

.displayTal { width: 100%; font-size: 13px } .displayTal1 { width: 30%; height: 30px; font-size: 13px; color: #009933 } .displayTal2 { width: 40%; height: 30px; font-size: 13px; color: #009933 } .displayTal3 { width: 30%; height: 30px; font-size: 13p

布局模型 之 层模型(position的relative、absolute与fixed区别?)

css的布局模型分为流动模型(Flow).浮动模型(Float).层模型(Layer). 浮动模型(Float)和层模型(Layer)有什么显著区别?     浮动模型(Float):浮动是让某元素脱离文档流的限制,在浮动框之前和之后的非定位元素会当它不存在一样,可能沿着它的另一侧垂直流动:浮动的元素仍然会占据文档流的物理空间.关于浮动模型的详细说明请看另一篇文章的介绍.http://ycgit.blog.51cto.com/8590215/1958452 层模型(Layer):设置为层模型的元

机器学习之判别式模型和生成式模型

判别式模型(Discriminative Model)是直接对条件概率p(y|x;θ)建模.常见的判别式模型有 线性回归模型.线性判别分析.支持向量机SVM.神经网络等. 生成式模型(Generative Model)则会对x和y的联合分布p(x,y)建模,然后通过贝叶斯公式来求得p(yi|x),然后选取使得p(yi|x)最大的yi,即: 常见的生成式模型有 隐马尔可夫模型HMM.朴素贝叶斯模型.高斯混合模型GMM.LDA.高斯.混合多项式.专家的混合物.马尔可夫的随机场 更多更详细的内容参见