前端基础类学习前端

浏览器兼容

2017-03-21  本文已影响51人  饥人谷_米弥轮

1.什么是 CSS hack

常见的兼容写法:

inline-block: >=ie8
min-width/min-height: >=ie8
:before,:after: >=ie8
div:hover: >=ie7
inline-block: >=ie8
background-size: >=ie9
圆角: >= ie9
阴影: >= ie9
动画/渐变: >= ie10

2.谈一谈浏览器兼容的思路

  1. 产品的接受人群,按照接受人群和使用各种浏览器的比例情况来确定是从效果优先还是基本功能优先
  2. 成本考虑,比如一些只有一般浏览器能接受的CSS效果,却非要放到IE67去做,确实是可以通过别的方式去模拟,但是这样就是将整个工程复杂化,这种情况也有可能会导致更多的BUG出现,工程时间延长,得不偿失
  3. 产品需要兼容什么浏览器,到什么版本,需要些什么效果
  4. 按照商讨规划,进行渐进增强和优雅降级的选择
  5. 根据兼容需求选择技术框架,如:
  1. 根据兼容需求选择一些兼容工具html5shiv.jsrespond.jscss resetnormalize.cssModernizrpostCSS
  2. 条件注释、CSS Hack、js 能力检测做一些修补。

3.列举5种以上浏览器兼容的写法

<!--[if IE 6]>
<p>You are using Internet Explorer 6.</p>
<![endif]-->
<!--[if !IE]><!-->
<script>alert(1);</script>
<!--<![endif]-->
<!--[if IE 8]>
<link href="ie8only.css" rel="stylesheet">
<![endif]-->
  
 项目     范例               说明
  !     [if !IE]              非IE
  lt      [if lt IE 5.5]       小于IE 5.5
  lte    [if lte IE 6]      小于等于IE6
  gt      [if gt IE 5]       大于   IE5
  gte    [if gte IE 7]      大于等于IE7
   |      [if (IE 6)|(IE 7)]    IE6或者IE7
  .box{
    color: red;
    _color: blue; /*ie6*/
    *color: pink; /*ie67*/
    color: yellow\9;  /*ie/edge 6-8*/
    }
  <!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]-->

4.以下工具/名词是做什么的

5.一般在哪个网站查询属性兼容性?

查CSS属性兼容caniuse.com

常用网站:

Modernizr参考文章
浏览器市场份额
查CSS属性兼容caniuse.com
查 Hack 的写法browserhacks

上一篇下一篇

猜你喜欢

热点阅读