css 盒模型

概念

css盒模型 又称框模型 (Box Model) ,由里向外包含了元素内容(content)、内边距(padding)、边框(border)、外边距(margin)几个要素。

  1. 标准模型


    biaozhun.png
  2. IE模型


    ie.png

对比可以看出:
IE模型下面: width = content + padding + border
标准模型下: width = content

如何设置

使用css3中的box-sizing属性
box-sizing: border-box; IE模型
box-sizing: content-box; 标准模型

边距重叠(问题)

bfc.png

如上图, 下面的父元素并没有设置margin-top, 子元素设置了,但是父元素也同时margin-top了; 在日常开发中也经常遇到

BFC(块级格式化上下文)

BFC(Block formatting context)直译为"块级格式化上下文"。它是一个独立的渲染区域,只有Block-level box参与, 它规定了内部的Block-level Box如何布局,并且与这个区域外部毫不相干。

BFC的原理

  1. 内部的box会在垂直方向,一个接一个的放置
  2. 每个元素的margin box的左边,与包含块border box的左边相接触(对于从做往右的格式化,否则相反)
  3. box垂直方向的距离由margin决定,属于同一个bfc的两个相邻box的margin会发生重叠
  4. bfc的区域不会与浮动区域的box重叠
  5. bfc是一个页面上的独立的容器,外面的元素不会影响bfc里的元素,反过来,里面的也不会影响外面的
  6. 计算bfc高度的时候,浮动元素也会参与计算

创建BFC

  1. float属性不为none(脱离文档流)
  2. position为absolute或fixed
  3. display为inline-block,table-cell,table-caption,flex,inine-flex
  4. overflow不为visible
  5. 根元素

应用场景

  1. 自适应两栏布局
  2. 清除浮动 (在父元素上面设置bfc)
  3. 防止垂直margin重叠
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 问答题47 /72 常见浏览器兼容性问题与解决方案? 参考答案 (1)浏览器兼容问题一:不同浏览器的标签默认的外补...
    _Yfling阅读 14,680评论 1 92
  • 基本慨念 内容区域(content)是包含元素真实内容的区域。它通常包含背景、颜色或者图片等,位于内容边界的内部,...
    晴天的晴q阅读 6,666评论 0 0
  • 题目:谈谈你对css盒模型的认识? 答: 基本概念:padding,margin,border,content 标...
    noyanse阅读 2,361评论 0 0
  • 时间:2019年1月3日下午3:00-4:30 地点:开源大剧院 参加人员:史峥、赵喆、杜兆国、杨聪 记录人:杨聪...
    漯河城管总工室阅读 3,392评论 0 0
  • 2019-2-4 星期一 天气晴 降温有风 黑龙江·亚布力 今年回老家和爸妈一起过年,今天是大年三十了,我们也计...
    Wendy058阅读 2,985评论 0 0