关于浏览器兼容的一些问题

2017-04-06  本文已影响0人  ninc
  1. 什么是 CSS hack
    CSS hack就是我们为了使代码能兼容不同版本的浏览器而编写的关于浏览器兼容的语句。CSS hack具有三种具体的表现形式:选择器前缀法、CSS属性前缀法、IE条件注释法。前缀法就是使用一些特定浏览器才能识别的具有前缀的语句去编写代码处理兼容性的问题。如IE6能识别选择器和属性前带有前缀_(下划线),IE6、7能识别选择器和属性前带有前缀*。IE条件注释法就是在html文件开头加上注释样式的条件判断语句,这些语句能被IE浏览器识别,从而选出适应的代码。
  2. 谈一谈浏览器兼容的思路
    首先需要分析的是到底要不要处理浏览器兼容的问题,这需要从产品的角度和成本的角度去分析。产品的角度需要分析产品的受众群,受众群使用的浏览器以及对于受众群重视的是功能还是外观;成本的角度需要分析实现某种兼容功能需要付出的人力和时间,如果成本太大可放弃兼容性。
    其次需要分析的是哪些效果需要兼容,要兼容到浏览器的哪个版本,主要考虑的就是IE浏览器,如一些功能需要兼容到IE的第几个版本。
    确认了需要兼容到IE几之后就是根据这个兼容需求去选择兼容的库、框架和兼容工具,最后再使用一些条件注释和CSShack做修补。
  3. 列举5种以上浏览器兼容的写法
.clearfix:after{
  content: '';
  display: block;
  clear: both;
}
.clearfix{
  *zoom: 1; /* 仅对ie67有效 */
}
.target{
  display: inline-block;
  *display: inline;
  *zoom: 1;
}
<!--[if lt IE 9]>
    <script src="https://oss.maxcdn.com/html5shiv/3.7.3/html5shiv.min.js"></script>
    <script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script>
  <![endif]-->
<!–-[if IE 7]>
<link rel="stylesheet" href="ie7.css" type="text/css" />
<![endif]–->
<!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]-->
  1. 以下工具/名词是做什么的
  1. 一般在哪个网站查询属性兼容性?
    caniuse.com 这个网站可以查询到属性在各个浏览器版本的兼容性。
上一篇 下一篇

猜你喜欢

热点阅读