css中有一个盒子模型的概念. 主要是用来告诉浏览器如何来计算页面元素的宽度和高度, 比如该元素的宽度/高度 是否包括内边距,边框,外边距.  盒子模型有一个属性box-sizing属性来说明是否包括以及具体包括啥内容

我们先来看一个图

Content Edge => 是元素所在的内容区域,它有一个宽度和高度

Padding Edge => 内边距

Border Edge => 边框

Margin Edge => 外边距

所以,在css中,我们设置一个元素的width 和 height时(比如 width =300px, height =200px),如果你不说清楚,浏览器并不知道你说的这个宽度和高度是否包括内边距,边框等,还是说只是Content Edge中的内容宽度,内容高度.

我们上面说了,css中有一个盒子模型,通过设置box-sizing属性来告诉浏览器到底是上面的哪一种情况.这个属性有2个值 : content-box,  border-box

Content-box : 这个是默认值. 如果你设置一个元素的宽度为50px, 那么这个元素的内容区域,内容的宽度就是50px. 你把元素的宽度改为100px, 那么它的内容宽度就会变为100px

* {

   box-sizing: content-box;
}

Border-box: 如果你的box model设置为border-box, 那么就是告诉浏览器,你设置的元素的width,包括内容的宽度,内边距以及边框. 这三样的宽度都包括在你所设置的元素的width里面. 比如你设置一个元素的宽度为50px, 那么这个50px是包括该元素的padding和border的,这个元素的内容的实际宽度应该是50px减去border+padding的计算值. 普遍建议是web开发者应该将所有元素的box-sizing属性都设置为border-box, 这种情况下我们会更容易地去设定和更改一个元素的宽高.

 

* {

   box-sizing: border-box;
}

我们来看看下面的例子

div {
box-sizing: content-box;
width: 100px;
padding: 20px;
border: 1px solid #DDD;
}

上面这个例子中,盒子模型的box-sizing属性设置为content-box. 所以这个div元素里面的内容宽度为100px, 而div元素的宽度呢, 显然是 100px  + 20 px (padding-left) + 20px (padding-right) +1px (border-left) + 1px (border-right) = 142px;

如果我们通过javascript,把这个div的width属性值改为200px, 那么这个div的元素宽度将变为 200px  + 20 px (padding-left) + 20px (padding-right) +1px (border-left) + 1px (border-right) = 242px;

div {
box-sizing: border-box;
width: 100px;
padding: 20px;
border: 1px solid #DDD;
}

上面,我们把盒子模型的box-sizing属性改为border-box. 这个时候div属性的width还是100px,但是这个100px就不再是div元素的内容的宽度了,而是包括了padding(内边距) 和border(边框), 那么元素宽度是多少呢:

100px  - 20 px (padding-left) - 20px (padding-right) -1px (border-left) - 1px (border-right) = 58px;  此时,如果我们通过javascript,把这个div的width属性值改为200px, 那么这个div的元素宽度将变为 200px,而它里面的

内容宽度将变为200px  - 20 px (padding-left) - 20px (padding-right) -1px (border-left) - 1px (border-right) = 158px

CSS学习系列1 - CSS中的盒子模型 box model的更多相关文章

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

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

  2. 教你吃透CSS的盒子模型(Box Model)

    CSS 盒子模型(Box Model) 所有HTML元素可以看作盒子,在CSS中,"box model"这一术语是用来设计和布局时使用. CSS盒模型本质上是一个盒子,封装周围的H ...

  3. 盒子模型(Box Model)

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

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

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

  5. CSS学习系列2 -- CSS中的清除浮动

    CSS中有一个很常见的问题,就是元素的浮动. 那么,到底什么是元素的浮动呢,我们来看一个例子 举个例子,在一个div里面内部有浮动元素的话,这个浮动元素会让这个div的高度塌陷. .myDiv{ ba ...

  6. CSS学习系列4 -- 再说CSS中的浮动运用及clear:left/right实际用法

    在 CSS学习系列2 -- CSS中的清除浮动 中,我们详细说了CSS中清除浮动的方法及使用 后来我自己在项目开发一个需要使用浮动的网页时,进行了实际运用,加上后来看到一篇好文章.所以就在这里再次写篇 ...

  7. css中的盒子模型是什么?

    什么是CSS 盒子模型(Box Model) 所有HTML元素可以看作盒子,在CSS中,"box model"这一术语是用来设计和布局时使用. CSS盒模型本质上是一个盒子,封装周 ...

  8. css盒模型(Box Model)

    所有HTML元素可以看作盒子,在CSS中,"box model"这一术语是用来设计和布局时使用. CSS盒模型本质上是一个盒子,封装周围的HTML元素,它包括:边距,边框,填充,和 ...

  9. css中的盒子模型

    css中的盒子模型 css中的盒子模型,有两种,一种是“标准 W3C 盒子模型”,另外一种是IE盒子模型.   1.w3c盒子模型 从图中可以看出:w3c盒子模型的范围包括了:margin,borde ...

随机推荐

  1. Excel 2007中自定义数字格式前要了解的准则

    要在Excel 2007中创建自定义数字格式,首先应了解自定义数字格式的准则,并从选择某一内置数字格式开始.然后,可以更改该格式的任意代码部分,从而创建自己的自定义数字格式. 数字格式最多可包含四个代 ...

  2. C语言的操作符号

    #include <iostream> int main(void) { int a = 100, b = 40; //理解++在前还后的区别: a = b++; //a = b ; b= ...

  3. poj 3278 Catch That Cow-搜索进阶-暑假集训

    Catch That Cow Time Limit:2000MS     Memory Limit:65536KB     64bit IO Format:%I64d & %I64u Subm ...

  4. Unity3D之Mesh(一)绘制三角形

    前言: Unity自带几种简单的模型,如cube等:一般情况下,其余模型有3D建模软件生成,以合适的文件格式导入unity中:而mesh(以我目前很粗浅的了解)的一般用途就是:对现有的模型进行变形,以 ...

  5. JavaScript中,让一个div在固定的父div中任意拖动

    1.css代码 #big { border: 1px solid #FF3300; width: 300px; height: 300px; position: relative; } #small ...

  6. BEC listen and translation exercise 34

    In a busy classroom filled with nearly 20 children, Sabriye Tenberken lectures her pupils to always ...

  7. Mule ESB学习【转-结合了网络上的一些资源】

    1.SOA标准之一:SCA架构思想 SOA在Java领域有两套标准:一个是SUN推出的JBI(没有得到BEA和IBM的承认),另外一个是:IBM和BEA等公司推出的SCA和SDO标准. JBI之关注J ...

  8. Xposed模块开发学习记录

    Xposed模块相关API可以参考在线文档: https://api.xposed.info/reference/packages.html     入门教程可以参考: https://github. ...

  9. Agc010_D Decrementing

    今天本人因调了上篇博客的题而脑壳不适,不想颓题,因此有了这篇博客. 但是博客毕竟得讲点什么,想想有没有什么代码短的. 哦,好像有,就Agc010_D Decrementing好了. Alice和Bob ...

  10. 省选/NOI刷题Day2

    bzoj2616 放一个车的时候相当于剪掉棋盘的一行,于是就可以转移了,中间状态转移dp套dp,推一下即可 bzoj2878 环套树期望dp 手推一下递推式即可 bzoj3295 树状数组套权值线段树 ...