CSS 兼容

对于前端工程师来说,不想面对又不得不面对的一个问题就是兼容性。几年前,处理兼容性,一般地就是处理 IE 低版本浏览器的兼容性。而近几年,随着移动端的发展,工程师也需要注意手机兼容性了。


[1] 盒模型属性

  • 宽高 width/height
  • 内边距 padding
  • 边框 border
  • 外边距 margin
  • 轮廓 outline
  • box-sizing                                             // 只有 firefox 支持 padding-box 属性值

[2] 布局类属性

  • display                                           // IE7- 浏览器不支持 table 类属性值
  • 浮动
  • 定位                                            // IE6-不支持固定定位 position:fixed
  • 溢出相关
  • flex
  • 多列布局
  • grid

[3] 文本类属性

  • 字体font
  • 首行缩进 text-indent
  • 对齐                                             // IE7- 浏览器中 vertical-align 的百分比值不支持小数行高
  • 间隔
  • 大小写 text-transform
  • 划线 text-decoration
  • 空白符 white-space                                         // IE7- 浏览器不支持 pre-line 和 pre-wrap 这两个属性值
  • 换行

[注意1] W3C 建议使用 overflow-wrap 替换 word-wrap

[注意2] 移动端目前基本都不支持 word-break 的属性值 keep-all

  • 文本方向
  • 文本溢出 text-overflow
  • 文本阴影 text-shadow

[4] 修饰类属性

  • 背景 background
  • 前景和透明度
  • 颜色模式

[注意] IE7- 不支持 color:transparent,但支持 background-color: transparent 和 border-color: transparent

  • 光标 cursor                                           // IE7- 不支持拓展样式
  • 过渡 transition
  • 变形 transform
  • 渐变 gradient

  • 动画 animation
  • 混合模式
  • 滤镜 filter
  • 倒影 box-reflect

只有 chrome 和 safar i浏览器支持,且需要添加 -webkit- 前缀

  • will-change

[5] 其他类属性

  • 表格
  • 分页
  • 选择器
  • 伪类
  • 伪元素
  • 关键字
  • calc

[注意] android4.4-4.4.4 只支持加法和减法。IE9 不支持用于 backround-position

  • 单位