CSS 浏览器兼容问题整理大全
浏览器市场表现
浏览器 | 2018年10月市场份额 | 2018年11月至2019年1月市场份额 |
Chrome | 66.43% | 46.28% |
IE | 大比重 | 大比重 |
解决思路和方案
1. 浏览器CSS样式初始化
由于每个浏览器的默认样式不尽相同,因此最简单有效的方法是进行初始化。
{ margin: 0; padding: 0; }
推荐使用Normalize.css库进行样式初始化。
2. 浏览器私有属性
不同厂商甚至同一厂商不同版本对同一段CSS的解析效果不一致,可以通过添加私有前缀来支持新属性,常用的前缀包括:
-moz
(Firefox)
-ms
(IE)
-webkit
(Chrome、Safari)
-o
(Opera)
示例:
-webkit-transform: rotate(-3deg); /* Chrome/Safari */ -moz-transform: rotate(-3deg); /* Firefox */ -ms-transform: rotate(-3deg); /* IE */ -o-transform: rotate(-3deg); /* Opera */ transform: rotate(-3deg);
3. CSS hack语法
针对特定浏览器或版本写特定的CSS样式,称为CSS hack,主要包括以下几种类型:
1、条件hack:主要针对IE浏览器的特殊设置。
```html
<!--[if IE]>
<p>你在非IE中将看不到我的身影</p>
<![endif]-->
```
2、属性级hack:在CSS样式属性名前加上特定前缀。
```css
selector {
_property: value; /* IE 6 */
}
```
3、选择符级hack:通过特定的选择符来区分浏览器。
```css
/* All except IE 6 */
* html * {
property: value;
}
```
4. 自动化插件
使用第三方插件如Bootstrap、Compasser等,这些插件基本都处理了这种不兼容的问题。
相关问题与解答
1、问题一:为什么需要使用CSS hack?
答案:CSS hack用于针对不同的浏览器或不同版本写特定的CSS样式,以解决因浏览器厂商众多且各厂商对同一段CSS的解析效果不一致导致的页面显示效果不统一的问题。
2、问题二:如何选择合适的解决方案来解决CSS浏览器兼容性问题?
答案:首先考虑使用Normalize.css或类似的库进行CSS样式初始化,然后根据需要支持的新属性添加私有前缀,最后针对特定浏览器使用CSS hack,如果可能,可以使用第三方插件来自动化处理兼容性问题。
以上就是关于“CSS 浏览器兼容问题整理大全(比较全)”的问题,朋友们可以点击主页了解更多内容,希望可以够帮助大家!