任务12 -浏览器的兼容性

2017-06-29  本文已影响0人  我七

1.什么是 CSS hack

不同厂商的浏览器,例如Internet explorer、Safari、Mozilla Firefox、Chrome等,或者同一厂商的浏览器的不同版本,如IE6和7,对css的解析和认识会完全不一样,因此会导致生成和预想相差很大的页面效果,此时我们需针对不同的浏览器写不同的css,让它在不同的浏览器中展现预想的效果
css hack大致有三种表现形式:

名称 别称 举例
属性前缀法 内部hack ie6能识别下划线和星号,ie7可以识别星号但不能识别下划线,ie6~ie10都识别“\9”,firefox前述三个都不识别
选择器前缀法 选择器hack
ie条件注释法 html条件注释hack 针对所有ie:<!--[if IE]>IE浏览器显示的内容<![endif]-->。针对ie6及以下的版本:<!--[if lt IE6>只在IE6-显示的内容<![endit]-->。这类hack不仅对 css生效,对写在判断语句里面的所有代码都会生效

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

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

<!--[if IE 6]> (在ie6里的被识别的标签)
    <p>You are using Internet Explorer 6.</p>
 <![endif]-->
<!--[if !IE]><!--> 
    <script>alert(1);</script> (在chrome里被识别的只有这一句)
<!--<![endif]-->
 <!--[if IE 8]>(在ie8里的被识别的标签)
     <link href="ie8only.css" rel="stylesheet"> 
<![endif]-->
.box{
  color: red;
  _color: blue; /*ie6*/
  *color: pink; /*ie67*/
  color: yellow\9;  /*ie/edge 6-8*/
}
.clearfix:after{
  content: '';
  display: block;
  clear: both;
}
.clearfix{
  *zoom: 1; /* 仅对ie67有效 */
}
.target{
  display: inline-block;
  *display: inline;/* 仅对ie67有效 */
  *zoom: 1;/* 仅对ie67有效 */
}
<!--[if lt IE 9]>/* 仅对ie9以下有效 */
    <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.一般在哪个网站查询属性兼容性?

canius.com查询css属性兼容
browserhacks查hack写法

上一篇 下一篇

猜你喜欢

热点阅读