1、Box Model(盒模型)

  CSS中的Box Model分为两种:第一种是W3C的标准模型,另一种是IE的传统模型。它们的相同之处是对元素的width、height、padding、border、margin以及元素实际尺寸的计算关系,而它们的不同之处则是两者的计算方法不一致。

  1)、W3C的标准Box Model:

/*外盒尺寸计算(元素空间尺寸)*/
Element空间高度 = content height + padding + border + margin
Element空间宽度 = content weight + padding + border + margin
/*内盒尺寸计算(元素大小)*/
Element Height = content height + padding + border
Element Weight = content weight + padding + border

  2)、IE传统下的Box Model(IE6以下,不含IE6版本)

    

/*外盒尺寸计算(元素空间尺寸)*/
Element空间高度 = Content Height + margin(Height包含了元素内容高度、边框高度、内边距高度)
Element空间宽度 = Content Weight + margin(Height包含了元素内容宽度、边框宽度、内边距宽度)
/*内盒尺寸计算(元素大小)*/
Element Height = content Height(Height包含了元素内容高度、边框高度、内边框高度)
Element Weight = content Weight(Weight包含了元素内容宽度、边框宽度、内边框宽度)

  目前浏览器大部分元素都是基于W3C标准的Box Model,但对于form中的部分元素还是基于传统的Box Model上,比如:input中的submit、reset、button和select等元素,这样,如果我们给其设置border和padding,它也只会向内延伸。

2、Box-sizing : content-box | border-box | inherit

  1)、content-box:此值为其默认值,其让元素维持W3C标准的Box Model展示,也就是说元素的宽度(weight)和高度(height)等于元素边框(border)加上 元素的内边距(padding) 加上 元素内容的宽度(content width)或高度(content height)

  2)、border-box:此值让元素维持IE传统的Box Model(IE6以下版本)展示,也就是说元素的宽度(weight)和高度(height)等于元素内容的宽度(content weight)和高度(content height)。这里的content width和content height包含了元素的border、padding、content width和content height

  box-sizing现在的浏览器都支持,但IE家庭里只有IE8以上版本才支持,虽然现代的浏览器都支持,但有些浏览器还是需要加上自己的前缀,Mozilla需要加上 -moz-,Webkit内核需要加上-webkit-,Presto内核需要加上-0-,IE8需要加上-ms-,所以box-sizing兼容浏览器时需要加上各自的前缀。

/*Content box*/
Element {
-moz-box-sizing:content-box;
-webkit-box-sizing:content-box;
-o-box-sizing:content-box;
-ms-box-sizing:content-box;
box-sizing:content-box;
}
/*Border box*/
Element {
-moz-box-sizing:border-box;
-webkit-box-sizing:border-box;
-o-box-sizing:border-box;
-ms-box-sizing:border-box;
box-sizing:border-box;
}

css3 Box model 与 Box-sizing的更多相关文章

  1. CSS Box Model All In One

    CSS Box Model All In One CSS 盒子模型 All In One CSS Box Model CSS Box Model Module Level 3 W3C Working ...

  2. HTML和CSS的盒子模型(Box model)

    本文作为属性篇的最后一篇文章, 将讲述HTML和CSS的关键—盒子模型(Box model). 理解Box model的关键便是margin和padding属性, 而正确理解这两个属性也是学习用css ...

  3. CSS3与页面布局学习总结(二)——Box Model、边距折叠、内联与块标签、CSSReset

    一.盒子模型(Box Model) 盒子模型也有人称为框模型,HTML中的多数元素都会在浏览器中生成一个矩形的区域,每个区域包含四个组成部分,从外向内依次是:外边距(Margin).边框(Border ...

  4. CSS3与页面布局学习笔记(二)——盒子模型(Box Model)、边距折叠、内联与块标签、CSSReset

    一.盒子模型(Box Model) 盒子模型也有人称为框模型,HTML中的多数元素都会在浏览器中生成一个矩形的区域,每个区域包含四个组成部分,从外向内依次是:外边距(Margin).边框(Border ...

  5. CSS3与页面布局学习总结——Box Model、边距折叠、内联与块标签、CSSReset

    目录 一.盒子模型(Box Model) 1.1.宽度测试 1.2.溢出测试 1.3.box-sizing属性 1.4.利用CSS画图 二.边距折叠 2.1.概要 2.2.垂直方向外边距合并计算 三. ...

  6. Box Model,边距折叠,内联和块标签,CSSReset

    一.盒子模型(Box Model) 1.1.宽度测试 1.2.溢出测试 1.3.box-sizing属性 1.4.利用CSS画图 二.边距折叠 2.1.概要 2.2.垂直方向外边距合并计算 三.内联与 ...

  7. CSS魔法堂:重新认识Box Model、IFC、BFC和Collapsing margins

    前言   盒子模型作为CSS基础中的基础,曾一度以为掌握了IE和W3C标准下的块级盒子模型即可,但近日在学习行级盒子模型时发现原来当初是如此幼稚可笑.本文尝试全面叙述块级.行级盒子模型的特性.作为近日 ...

  8. 重新认识Box Model、IFC、BFC和Collapsing margins

    尊重原创,转载自: http://www.cnblogs.com/fsjohnhuang/p/5259121.html 肥子John^_^ 前言   盒子模型作为CSS基础中的基础,曾一度以为掌握了I ...

  9. 盒子模型(Box Model)

    盒子模型(Box Model) ■ 盒子模型——概念 在网页设计中常用的属性名:内容(content),填充(padding),边框(border),边界(margin),CSS 盒子模式都具备这些属 ...

随机推荐

  1. Ubuntu 16.04虚拟机调整窗口大小自适应Windows 7

    Windows 7上Ubuntu 16.04虚拟机安装成功后,默认的虚拟机窗口比较小,需要适当调整,才能把虚拟机的屏幕放大, 适合使用,以下介绍调整方法. 安装VMware Tools  启动虚拟机, ...

  2. 2018/7/26号碰到了个奇怪的问题(http有问题,但是ftp没毛病)

    过程大概是这样的 本来测试服务器中发ajax没问题,突然暴毙了,服务器又通过ajax发了另外一个请求(与之前不一样). nginx  reload 没毛病  ,ftp 也使用正常. 出了什么问题呢?  ...

  3. House of Spirit学习调试验证与实践

    作家:Bug制造机 原文来自:House of Spirit学习调试验证与实践 House of Spirit和其他的堆的利用手段有所不同.它是将存在的指针改写指向我们伪造的块(这个块可以位于堆.栈. ...

  4. 夜谈Java类的定义

    女孩:谈Java了,好耶? 男孩:夜谈一下,Java的类的定义~ 女孩:那谈Java的类的什么呢? 男孩:类的定义,对象的定义,类中的方法,构造方法,this关键字,方法的重载,Java中的类的访问权 ...

  5. debian安装tftp服务

    步骤1:安装 apt-get install tftp-hpa tftpd-hpa tftp-hpa是client,tftpd-hpaserver 步骤2:建立tftp目录 mkdir /tftpbo ...

  6. Windows Azure开发之Linux虚拟机

     Windows Azure是微软的云服务集合,用来提供云在线服务所需要的操作系统与基础存储与管理的平台,是微软的云计算的核心组成组件之一.其中windows azure提供的最重要的一项服务就是 ...

  7. SSE图像算法优化系列二:高斯模糊算法的全面优化过程分享(一)。

    这里的高斯模糊采用的是论文<Recursive implementation of the Gaussian filter>里描述的递归算法. 仔细观察和理解上述公式,在forward过程 ...

  8. Eureka安全认证

    Eureka 服务加入安全认证只需要在之前的服务中增加三处步骤即可: 1.在Eureka Server中加入spring-boot-starter-security依赖 <dependencie ...

  9. 经济学人使用Golang构建微服务历程回顾

    关键点 经济学人内容分发系统需要更大的灵活性,将内容传递给日益多样化的数字渠道.为了实现这一灵活性目标并保持高水平的性能和可靠性,平台从一个单体结构过渡到微服务体系结构. 用Go编写的服务是新系统的一 ...

  10. Angular2入门:TypeScript的函数 - 剩余参数和箭头函数