盒模型

  • 标准盒模型,以在 Chrome 中为例。
      一个元素的真实宽度 = 2(margin + padding + border) + width


      所以,CSS 中的 width 只表示内容的宽度。以上被称为
    标准盒模型

  • CSS3 中有一个 box-sizing 属性。
      box-sizing: border-box; 可以规定元素以 border 作为盒模型;即真实宽度 = 2margin + width,其中 width = 2(padding + border) + 内容宽度

  • 外边距合并
      在 BFC 中也涉及一部分外边距合并,在此处只讨论普通文档流中的外边距合并。
      首先,外边距合并,1.只在普通文档流中的块级元素身上会发生;2.只在上下外边距之间才会发生,左右外边距不会合并。满足这两点才会发生外边距合并。
      所以一个行内块元素 (display: inline-block) 和一个块级元素 (display: block) 元素之间不会发生外边距合并。
    如下是具体情况分析:

  • 1.两个块级元素上下分布


  • 2.一个元素包围另一个元素。(此时,父元素不能有 border 或者 padding;即两者的margin是直接接触的)


  • 3.一个空元素,有 margin 属性,但是没有 border 和 padding 属性,那么它自身会发生上下边距合并。


      并且,再次遇到其他元素的外边距时,仍然会发生外边距合并。

    注:所有的边距合并,都取绝对值较大的那个值(如-10px和-20px,取-20px)。

IE6,7,8有怪异模式
  IE6/7/8中在声明时,不加上 DOCTYPE 会导致浏览器按照IE盒模型进行渲染,即真实宽度 = width + 2margin ;其中 width = 2(padding + border)+ 内容宽度。

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

推荐阅读更多精彩内容

  • 问答题47 /72 常见浏览器兼容性问题与解决方案? 参考答案 (1)浏览器兼容问题一:不同浏览器的标签默认的外补...
    _Yfling阅读 13,796评论 1 92
  • 一、盒模型包括哪些属性? CSS盒模型~即定义了Web页面中的元素是如何看做盒子来解析CSS盒模型属性有: con...
    dengpan阅读 437评论 0 0
  • 一.盒模型包括哪些属性? 盒模型包括的属性有: margin:外边距。它包括margin-top、margin-r...
    婷楼沐熙阅读 2,108评论 0 2
  • 盒模型 边框属性 什么边框? 边框就是环绕在标签宽度和高度周围的线条 边框属性的格式 连写(同时设置四条边) bo...
    极客江南阅读 10,020评论 12 74
  • 今天一天在家哪儿也没有去,晚上出来走了几圈。这会儿在小区池塘边静坐。 感叹人生短暂,还有些愿望没有达成,譬如给父母...
    吴佟阅读 286评论 0 0