美文网首页
BFC&边距合并&浏览器兼容(10)

BFC&边距合并&浏览器兼容(10)

作者: 饥人谷1904_陈俊锋 | 来源:发表于2019-04-26 23:25 被阅读0次

饥人谷学习第10天

BFC

  • Block Formatting Context
  • 每个渲染区域用formatting context表示,它决定了其子元素将如何定位,以及和其他元素的关系和相互作用
  • 在正常流中的盒子要么属于块级格式化上下文,要么属于内联格式化上下文

BFC产生

1.根元素;
2.float属性不为none;
3.position为absolute或fixed;
4.display为inline-block,flex或者inline-flex;
5.overflow不为visible。

特性:

  • 内部的Box会在垂直方向,一个接一个地放置;
  • Box垂直方向的距离由margin决定。属于同一个BFC的两个相邻Box的margin会发生重叠,每个元素的margin box的左边,与包含块border box的左边相接触(对于从左往右的格式化,否则相反)。即使存在浮动也是如此。
  • BFC的区域不会与float box重叠。
  • BFC就是页面上的一个隔离的独立容器,容器里面的子元素不会影响外面的元素。反之也如此。
  • 计算BFC的高度时,浮动元素也参加计算。

作用:

1.margin合并
2.contain float 把浮动给包裹住

内联格式化上下文IFC

IFC也是一种布局规则
块容器盒里面只有行级元素的时候,自动生成IFC
一般用不到

边距合并

  • 合并场景
    1.相邻元素合并
    2.父子合并
    3.自己合并(一般体现为自己没有内容设置了margin之后上下margin合并)

  • 取消合并
    1.加边框、padding
    2.生成BFC
    相当于生成了一条边界,如果以边框作为边界,父子之间冲破不了边界所以不会合并;但对相邻元素,margin不属于边界同样会产生合并。
    对于相邻元素,如果为浮动元素,则边距不合并,不是浮动元素最好不要管边界问题,直接写想要的margin(边距合并是取两个margin最大值的)。

浏览器兼容问题

什么是浏览器兼容问题

同一份代码,有的浏览器效果正常,有的不正常

  • 不正常的原因?》不支持 or Bug?
  • 如何让浏览器展示正常?》条件注释 or 单独Hack?

为什么会有浏览器兼容问题

  • 同一产品,版本越老 bug 越多
  • 同一产品,版本越新,功能越多
  • 不同产品,不同标准,不同实现方式

渐进增强盒优雅降级

  • 渐进增强:针对低版本的浏览器进行构建页面,保证最基本的功能,然后再针对高级浏览器进行效果、交互等改进和追加功能达到更好的用户体验;
  • 优雅降级:一开始就构建完整的功能,然后再针对低版本浏览器进行兼容

处理兼容问题的手段

  • 合理的框架
    1.Bootstrap(>=ie8)
    2.jQuery 1.~(>=ie6) 2.~(>=ie9)
    3.Vue(>=ie9)
    4.···
  • 条件注释(全称:ie条件注释)
    于HTML源码中被IE有条件解释的语句。条件注释可被用来向IE提供及隐藏代码。
<!--[if IE 6]>
<p>You are using Internet Explorer 6.</p>
<!--[endif]-->

使用了条件注释的页面Windows Internet Explorer 9中可正常工作,但在Internet Explorer 10中无法正常工作。IE10不再支持条件注释。

  • CSS hack

相关文章

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

    饥人谷学习第10天 BFC Block Formatting Context 每个渲染区域用formatting ...

  • 2018-04-7 任务10 BFC&边距合并&浏览器兼容

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

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

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

  • CSS盒模型——外边距合并

    外边距合并:指的是 block 元素的上边距或下边距,优势会合并成一个边距,且合并后的边距大小与合并前最大的边距大...

  • 边距合并

    合并外边距的场景: 相邻的两个元素之间的上下边距 父元素与其第一个或最后一个子元素之间 空块元素自身的上下边距 相...

  • 边距合并

    在什么场景下会出现外边距合并?如何合并?如何不让相邻元素外边距合并?给个父子外边距合并的范例。 同一文档流中的两个...

  • 边距合并

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

  • 边距合并

    边距合并只发生在处于同一BFC的块级元素之间,且只在垂直方向上。具体有三种情况:1.同级兄弟之间上下边距合并 2....

  • 浏览器兼容问题

    整理了一些浏览器兼容的问题,希望对大家有所帮助 一、浏览器兼容性问题总结 1、双倍浮动边距:原因:多个并列浮...

  • 10 浮动、bfc、边距合并

    浮动元素有什么特征?对父容器、其他浮动元素、普通元素、文字分别有什么影响? float脱离了文档流,根据float...

网友评论

      本文标题:BFC&边距合并&浏览器兼容(10)

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