美文网首页
关于BFC,外边距合并,浏览器兼容

关于BFC,外边距合并,浏览器兼容

作者: jrg_tzc | 来源:发表于2018-03-17 22:17 被阅读0次

BFC

BFC是什么

MDN链接:
https://developer.mozilla.org/en-US/docs/Web/Guide/CSS/Block_formatting_context

我的理解(不重要)

我理解block formatting context为一个属性,会将它的所有子孙元素(除了子孙元素同样为BFC的子孙元素)包裹自身块的边框以内。

生成BFC

许多属性都将会生成BFC,比如说float元素,display为inline-block,position为fixed或absolute。这些属性在生成BFC同时附带其他属性,所以并不推荐单纯为了生成BFC而使用这些属性。最新有display: flow-root是单纯生成BFC,但浏览器兼容性不太好,只兼容Firefox,Chrome,Opera。

用处

  • 要将块内的内容包裹起来。 demo
  • 将普通水平与浮动元素水平区分开。demo

外边距合并

发生情况

  • 相邻元素之间边距
  • 空的块级元素自身的上下外边距
  • 父元素与第一个子元素上边距合并,与最后一个资源下边距合并。

计算

  • 合并时如果两外边距值皆为正,则取最大值为边距。
  • 如果两外边距值皆为负,则取绝对值较大值为边距。
  • 如果两外边距值一正一负,则取两值之和为边。

浏览器兼容

缘由

由于浏览器版本不同,支持的功能也不同,导致页面的兼容性问题。

解决方法与工具

  • IE可通过条件注释识别语句(IE10以后不支持)范例:
<!DOCTYPE html>
<!--[if IEMobile 7 ]> <html dir="ltr" lang="en-US"class="no-js iem7"> <![endif]-->
<!--[if lt IE 7 ]> <html dir="ltr" lang="en-US" class="no-js ie6 oldie"> <![endif]-->
<!--[if IE 7 ]>    <html dir="ltr" lang="en-US" class="no-js ie7 oldie"> <![endif]-->
<!--[if IE 8 ]>    <html dir="ltr" lang="en-US" class="no-js ie8 oldie"> <![endif]-->
<!--[if (gte IE 9)|(gt IEMobile 7)|!(IEMobile)|!(IE)]><!--><html dir="ltr" lang="en-US" class="no-js"><!--<![endif]-->
  • html5shiv: 用来让IE9版本以下浏览器识别支持HTML5样式的变通方案。
  • respond.js 用来让IE6-8以及其他低版本浏览器支持CSS3 Media Query的变通方案。
  • normailize.css 是一些增加CSS的兼容性CSS的声明。
  • Modernizr 可对浏览器进行特性检测,方便开发时对各种特性进行声明,以解决兼容性问题。
  • postCSS 一款对CSS进行处理的工具,依赖插件进行操作。出现兼容性问题可使用其插件进行回退。

相关文章

  • 关于BFC,外边距合并,浏览器兼容

    BFC BFC是什么 MDN链接:https://developer.mozilla.org/en-US/docs...

  • 外边距合并/BFC

    1.在什么场景下会出现外边距合并?如何合并?如何不让相邻元素外边距合并?给个父子外边距合并的范例 以下是 三种发生...

  • margin(垂直外边距合并、margin负值)

    垂直外边距合并的问题 外边距合并出现的三个场景 同一个BFC,且同处于普通流中的垂直相邻元素外边距合并 父子元素的...

  • BFC&浏览器兼容&外边距合并

    1. BFC 是什么?如何生成 BFC?BFC 有什么作用?举例说明。 i. BFC 即 Box Formatti...

  • BFC与外边距合并、浏览器兼容问题

    BFC(Block Formatting Contex)即块级格式化上下文。当涉及到可视化布局的时候,BFC提供了...

  • 外边距合并与BFC

    外边距合并## 块级元素的 上外边距(margin-top) 与 下外边距(margin-bottom) 有时会合...

  • inline-block、BFC、边距合并

    外边距合并及破解方法 同一个BFC中常规文档流的两个在垂直方向“相邻”的块级盒子会出现外边距合并。 两个外边距都是...

  • BFC &边距合并& 浏览器兼容

    BFC 是什么?如何生成 BFC?BFC 有什么作用?举例说明。 BFC 全称 Block Formatting ...

  • 任务11

    1、在什么场景下会出现外边距合并?如何合并?如何不让相邻元素外边距合并?给个父子外边距合并的范例 外边距合并外边距...

  • 浮动定位、BFC、外边距合并

    1. 浮动元素有什么特征?对父容器、其他浮动元素、普通元素、文字分别有什么影响? 浮动元素脱离了普通文档流。如果父...

网友评论

      本文标题:关于BFC,外边距合并,浏览器兼容

      本文链接:https://www.haomeiwen.com/subject/yszjqftx.html