CSS3 box-sizing属性的应用
在一个文档中,每个元素都被表示为一个矩形的盒子。盒子模型具有4个属性['外边距(margin)','边框(border)','内边距(padding)','内容(content)']。
我们要设置某个元素的大小定位,肯定会和这四个元素打交道。只是元素的宽高计算有些默认值。
box-sizing属性用于更改用于计算元素宽度和高度的默认的 CSS 盒子模型。可以使用此属性来模拟不正确支持CSS盒子模型规范的浏览器的行为。
目前支持box-sizing的浏览器:

就目前来看,大部分人是建议在初始化样式的时候,就设置为border-box,这样更方便设置元素的宽高
* {
  -webkit-box-sizing: border-box;
     -moz-box-sizing: border-box;
          box-sizing: border-box;
}
语法
box-sizing: content-box | border-box | inherit;
值
content-box
默认值,标准盒模型。width 和 height 只包括内容(content)的宽和高。在宽度和高度之外绘制元素的内边距和边框。
尺寸计算公式:
width = 内容的宽度。
height = 内容的高度。
border-box
IE的怪异模型 width和height属性包括内容(content)、内边距(padding)、边框(border),但是不包括外边距(margin)。在宽度和高度之内绘制元素的内容、内边距和边框。
尺寸计算公式: 
width = 内容的宽度 + 内边距的宽度 + 边框的宽度。
height = 内容的高度 + 内边距的高度 + 边框的高度。
inherit
规定应该从父元素继承 box-sizing 属性的值
例子
See the Pen box-sizing的使用 by LiuwqGit (@weiqinl) on CodePen.
<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>box-sizing的使用</title>
  <style type="text/css">
  .box {
    width: 460px;
    height: 400px;
    border: 1px solid red;
    margin: 10px;
    background-color: gray;
  }
  .content {
    box-sizing: content-box;
    border: 10px solid blue;
    width: 300px;
    padding: 20px;
    margin: 30px;
    background-color: green;
  }
  .border {
    box-sizing: border-box;
    border: 10px solid blue;
    width: 300px;
    padding: 20px;
    margin: 30px;
    background-color: yellow;
  }
  .inherit {
    box-sizing: inherit;
    border: 10px solid red;
    width: 300px;
    padding: 20px;
    margin: 30px;
    background-color: red;
  }
  </style>
</head>
<body>
  <div class="box">
    <div class="content">
      我是content-box值(默认)
      <br/>box-sizing: content-box;
      <br/>border: 10px solid blue;
      <br/>width: 300px;
      <br/>padding: 20px;
      <br/> margin: 30px;
      <div class="inherit">我是inherit值</div>
    </div>
  </div>
  <div class="box">
    <div class="border">
      我是border-box值
      <br/>box-sizing: border-box;
      <br/>border: 10px solid blue;
      <br/>width: 300px;
      <br/>padding: 20px;
      <br/>margin: 30px;
      <div class="inherit">我是inherit值</div>
    </div>
  </div>
</body>
</html>
chrome截图:

CSS3 box-sizing属性的应用的更多相关文章
- CSS盒子模型之CSS3可伸缩框属性(Flexible Box)
		CSS盒子模型(下) 一.CSS3可伸缩框(Flexible Box) 可伸缩框属性(Flexible Box)是css3新添加的盒子模型属性,有人称之为弹性盒模型,它的出现打破了我们经常使用的浮动布 ... 
- 半深入理解CSS3 object-position/object-fit属性
		半深入理解CSS3 object-position/object-fit属性 转载:https://www.zhangxinxu.com/wordpress/2015/03/css3-object-p ... 
- 浅谈CSS3中display属性的Flex布局
		浅谈CSS3中display属性的Flex布局 最近在学习微信小程序,在设计首页布局的时候,新认识了一种布局方式display:flex 1 .container { 2 display: fle ... 
- CSS3外轮廓属性
		外轮廓outline在页面中呈现的效果和边框border呈现的效果极其相似,但和元素边框border完全不同,外轮廓线不占用网页布局空间,不一定是矩形,外轮廓是属于一种动态样式,只有元素获取到焦点或者 ... 
- 学习笔记:CSS3的filter属性
		CSS3的filter属性 (版权归原作者所有) http://www.jianshu.com/p/ca7a2bdcc1e7/comments/4956985 filter: blur(5px); f ... 
- CSS3利用text-shadow属性实现多种效果的文字样式展现
		一.效过图展示: 已经是比较久之前学习的文字效果了.但是还是很实用很有趣的.利用CSS3提供的text-shadow属性可以给页面上的文字添加阴影效果,因此可以替换掉之前使用过的一些繁琐的图片.到目前 ... 
- css3.0新属性效果在ie下的解决方案(兼容性)
		css3.0增加的新属性,如投影.渐变.旋转.圆角等等!这些新标准属性在ie6.ie7.ie8浏览器版本里得不到很好的支持,相信ie以后的新版本也会支持这些新属性的.目前ie6.ie7.ie8浏览器不 ... 
- CSS3展现精彩的动画效果 css3的动画属性
		热火朝天的css3无疑吸引了很多前端开发者的眼球,然而在css3中的动画属性则是新功能中的主打招牌,说到css3的动画属性不得不让人想起这三个属性:Transform﹑Transition﹑Anima ... 
- CSS3中动画属性transform、transition 和 animation
		CSS3中和动画有关的属性有三个 transform.transition 和 animation.下面来一一说明: transform 从字面来看transform的释义为改变,使 ... 
- css3 的box-sizing属性理解
		* { -moz-box-sizing: border-box; -webkit-box-sizing: border-box; box-sizing: border-box; } 有时候在某些项目中 ... 
随机推荐
- openstack配置
			参考林海峰老师的配置教程 http://blog.51cto.com/9161406/1839667 
- HTML DOM (文档对象模型)
			当网页被加载时,浏览器会创建页面的文档对象模型(Document Object Model). HTML DOM 模型被构造为对象的树. HTML DOM 树 通过可编程的对象模型,JavaScrip ... 
- Python学习笔记之运算符之一
			算数运算符 +加法运算符 -减法运算符 *乘法运算符 /除法运算符 //整除运算符 **乘积运算符(幂运算符) %取模运算符(取余) #!/usr/bin/python # -*- coding: U ... 
- QQ无法通过ISA2006&TMG2010代理收发图片问题解决
			近期公司有业务需求通过TMG访问QQ,但配置多次均无法通过QQ收发图片,文字输入正常. 目前已解决,供参考: 这个问题是SSL端口默认使用了443,但QQ的离线文件不使用这个端口.所以ISA会把QQ的 ... 
- Python 的经典入门书籍有哪些?
			是不是很多人跟你说,学Python开发就该老老实实地找书来看,再配合死命敲代码?电脑有了,软件也有了,心也收回来了?万事俱备,唯独只欠书籍?没找到到合适的书籍?可以看看这些. 1.Python基础教程 ... 
- java 泛型简单使用
- 推荐一款接口文档在线管理系统-MinDoc
			项目简介 MinDoc 是一款针对IT团队开发的简单好用的文档管理系统. MinDoc 的前身是 SmartWiki 文档系统.SmartWiki 是基于 PHP 框架 laravel 开发的一款文档 ... 
- Hash表分析
			http://baike.baidu.com/link?url=Ua74895uGf1NuPxB4pawmuAXedi427jJvM6aSLh_V1-23ptlMc7XIrr_cylIBn5d 
- C#大量数据导出到Excel(转)
			工作过程中经常会用到将数据导出到Excel中,一般情况下需要导出的数据都是几百几千条或者上万条,这都没有什么问题,但有时候会遇到特殊的需求,客户要求把几十万条甚至上百万条的数据导出到Excel中,这就 ... 
- 必应词典英语学习APP案例分析
			一.调研,评测 1.在此次作业之前并没有听过这个学英语app,必应听起来就像英语单词bing,第一次听到觉得这个app很奇怪,但没有将它和英语挂上钩.但是使用一阵子之后我觉得这个名字很好上口,其次这个 ... 
