怎么解决浏览器的兼容性问题?css hack是什么?

Posted 前端简书

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了怎么解决浏览器的兼容性问题?css hack是什么?相关的知识,希望对你有一定的参考价值。

浏览器的兼容性问题包括两个方面:

第一种:不同浏览器之间的问题。

第二种:ie浏览器不同版本之间的兼容性问题。


具体做法:

1.首先引入初始化的css(css reset),保证消除不同浏览器之间一些默认样式的细微差别。

2.针对不同的浏览器的做法:

目前市场上的浏览器的内核主要分为四种,分别是:

Trident内核:主要代表为IE浏览器
Gecko内核:主要代表为Firefox
Presto内核:主要代表为Opera
Webkit内核:主要代表为Chrome和Safari


针对这些不同的内核,css3的一些属性需要加上对应的前缀。

Trident内核:前缀为-ms

Gecko内核:前缀为-moz

Presto内核:前缀为-o

Webkit内核:前缀为-webkit

例如:

.box{

-webkit-transform:rotateY(0deg);

-moz-transform:rotateY(0deg);

-ms-transform:rotateY(0deg);

-o-transform:rotateY(0deg);

transform:rotateY(0deg);

}


3.针对ie浏览器的不同版本,用css hack来解决;


下边主要说一下什么是css hack;


css hack原理:使用css样式属性的优先级来解决兼容性问题。


分类:

a). css类内部hack;

通过 属性前缀或值后缀 的方式来解决兼容性

 

+ : IE6IE7识别

- : IE6 识别

+-如果同时出现的话,+只针对IE7-只针对IE6

 

注意:

IE7的兼容代码 要在上

IE6的兼容代码 要在下

b).css选择器hack;

    

在选择器前加上某些浏览器能识别的前缀

div{

 

}

 

*前缀:IE6识别

*+前缀:IE7识别

 

*div{}

*+div{}

c).css头部引用hack;


1、原理

通过IE条件注释 解决兼容性问题

IE浏览器会根据一个if条件判断,判断指定的内容是要被解析还是被注释

 

2、语法

<!--[if 条件 IE 版本]>

内容

<![endif]-->

 

版本:6 ~ 10 数字

条件:

1gt

大于指定版本的浏览器

2gte

大于等于指定版本的浏览器

3lt

小于指定版本的浏览器

4lte

小于等于指定版本的浏览器

5!

除条件版本以外的其他版本浏览器

ex:

<!--[if gt IE 6]>

该段内容只能在 IE6以上版本的浏览器中显示

<![endif]-->

 

<!--[if IE 8]>

该段内容只能在IE8中显示

<![endif]-->


以上是关于怎么解决浏览器的兼容性问题?css hack是什么?的主要内容,如果未能解决你的问题,请参考以下文章

CSS Hack技术介绍及常用的Hack技巧集锦

浏览器hack总结 详细的浏览器兼容性解决方法

CSS Hack技术介绍及常用的Hack技巧集锦

CSS Hack技术介绍及常用的Hack技巧集锦

像js,css.在chrome,FireFox,IE浏览器不兼容问题一般怎么解决

使用@media实现IE hack的方法,css 兼容ie,解决火狐谷歌兼容问题