浏览器兼容问题

2017-11-04  本文已影响0人  IsGirl

1 什么是 CSS hack

由于各浏览器的内核不同,各版本浏览器之间对CSS解析后的网页存在一些差异。导致和预期的效果不同。CSS hack的目的就是使你的CSS代码兼容不同的浏览器。当然,我们也可以反过来利用CSS hack为不同版本的浏览器定制编写不同的CSS效果。

2 浏览器兼容的思路

1 产品角度
根据你的产品的用户,用户使用的浏览器版本。
2 成本角度
有没有做的必要性
3 如何做
根据兼容需求选择技术库和框架比如
bootstrap(>=ie8)
jquery 1.~(>=ie6),jquery 2.~(>=ie9)
vue(>=ie9)
根据兼容需求选择兼容工具包括:比如html5shiv.js、respond.js、等
4 方式思路
渐进增强:针对低版本浏览器构建最基本功能页面,然后针对别的版本浏览器进行改动。
优雅降级:先构建完整功能页面,然后根据不同版本进行兼容。

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

1.条件注释

<!--[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]-->

2.属性选择器
例如: IE6能识别下划线""和星号" * ",IE7能识别星号" * ",但不能识别下划线"",IE6~IE10都认识"\9",但firefox前述三个都不能认识
3.选择器前缀法(即hack)

.css-hack { 
background-color: red; /* 其他浏览器上显示为红色 */
_background-color: blue; /* 只有IE 6浏览器上显示为蓝色 */
}
.css-hack { 
background-color: red; /* 其他浏览器上显示为红色 */
background-color: blue \9; /* 所有IE浏览器上显示为蓝色 */
}
.clearfix{
zoom: 1; / 仅对ie67有效 */
}

4.条件注释结合类选择器整体优化.
选择器前缀法是针对一些页面表现不一致或者需要特殊对待的浏览器,在CSS选择器前加上一些只有某些特定浏览器才能识别的前缀进行hack。

.box{
  color: green;
}
_.box{  /* IE6生效 */
  color: red;
}
*.box{  /* IE67生效 */
  color: pink;
}
.box\9{ /* IE/edge 6-8 */
  color: yellow;
}

5.利用兼容工具 + 条件注释

<!--[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]-->

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

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

http://caniuse.com/

上一篇 下一篇

猜你喜欢

热点阅读