我对盒子模型的理解

CSS Box Model


盒子模型:margin(外边距),border(边框),padding(内边距),content(内容)。

类别


由于历史的原因,盒子模型有两个标准:

  • IE盒子模型
  • 标准盒子模型

这两个标准产生于浏览器厂商之间的竞争。

IE 盒子模型


IE 盒子模型认为:content = border + padding = width

盒子总宽度 = content + margin;

#container {
  box-sizing: border-box; /* 将模型调整为 IE 盒子模型 */
  
  width: 300px;
  padding: 20px;
  margin: 10px;
  
  border: 10px solid green;
  background: blue;
} 

我们可以使用谷歌浏览器查看一下,整个盒子的总长度为 320px

width +margin-left + margin-right = 300 + 10 + 10 = 320px。

borderBox.png

我们将width调整为300px,只有外边距可以影响盒子的宽度。

标准盒子模型


标准盒子模型认为 width = margin + border + padding + content

#container {
  box-sizing: content-box; /* 将模型调整为标准盒子模型 */
  -moz-box-sizing: content-box;
    
  width: 300px;
  padding: 20px;
  margin: 10px;
  
  border: 10px solid green;
  background: blue;
} 

当我们设置宽度时,content会自动调整,我们设置margin/border/padding都不会影响盒子的宽度。

contentBox.png

当我们设置width 的时候:盒子的长度就等于内容的长度,其余部分很容易计算。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 问答题47 /72 常见浏览器兼容性问题与解决方案? 参考答案 (1)浏览器兼容问题一:不同浏览器的标签默认的外补...
    _Yfling阅读 14,681评论 1 92
  • 第一部分 HTML&CSS整理答案 1. 什么是HTML5? 答:HTML5是最新的HTML标准。 注意:讲述HT...
    kismetajun阅读 28,016评论 1 45
  • 1. 前言 前端圈有个“梗”:在面试时,问个css的position属性能刷掉一半人,其中不乏工作四五年的同学。在...
    YjWorld阅读 10,106评论 5 15
  • 选择qi:是表达式 标签选择器 类选择器 属性选择器 继承属性: color,font,text-align,li...
    love2013阅读 6,835评论 0 11
  • 年终民主测评,某局告诉员工微投票评议结果只有发起人能看到。 大家以为这次微测评是很公正的,企业为了获得公平的答案。...
    海深深阅读 929评论 1 1