css样式不兼容怎么办?

1、使用浏览器私有属性

我们经常会在某个CSS的属性前添加一些前缀,比如-webkit- ,-moz- ,-ms-,这些就是浏览器的私有属性。

为什么会出现私有属性呢?这是因为制定HTML和CSS标准的组织W3C动作是很慢的。

通常,有W3C组织成员提出一个新属性,比如说圆角border-radius,大家都觉得好,但W3C制定标准,要走很复杂的程序,审查等。而浏览器商市场推广时间紧,如果一个属性已经够成熟了,就会在浏览器中加入支持。

但是为避免日后W3C公布标准时有所变更,会加入一个私有前缀,比如-webkit-border-radius,通过这种方式来提前支持新属性。等到日后W3C公布了标准,border-radius的标准写法确立之后,再让新版的浏览器支持border-radius这种写法。常用的前缀有:

  • -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);

每个CSS属性写这么一堆兼容性代码,无疑是对生命最大的浪费,后面我们会讲一下通过自动化插件来处理这块。

2、使用CSS hack

css hack指各版本及各品牌浏览器之间对CSS解释后出现网页内容的误差(比如我们常说错位)的处理。

CSS Hack的目的,就是使你的CSS代码兼容不同的浏览器。当然,我们也可以反过来利用CSS Hack为不同版本的浏览器定制编写不同的CSS效果。

原理:

由于不同的浏览器对CSS的支持和解析结果不一样,还由于CSS中的优先级关系,我们就可以根据这个来针对不同的浏览器来写不同的CSS。

CSS Hack常见的有三种形式:

CSS属性Hack、CSS选择符Hack以及IE条件注释Hack, Hack主要针对IE浏览器。

1、属性级Hack:比如IE6能识别下划线“_”和星号“*”,IE7能识别星号“*”,但不能识别下划线”_ ”,而firefox两个都不能认识。

2、选择符级Hack:比如IE6能识别*html .class{},IE7能识别*+html .class{}或者*:first-child+html .class{}。

3、IE条件注释Hack:IE条件注释是微软IE5开始就提供的一种非标准逻辑语句。比如针对所有IE:<!-[if IE]><!-您的代码-><![endif]>,针对IE6及以下版本:<!-[if it IE 7]><!-您的代码-><![endif]->,这类Hack不仅对CSS生效,对写在判断语句里面的所有代码都会生效。

PS:条件注释只有在IE浏览器下才能执行,这个代码在非IE浏览下被当做注释视而不见。可以通过IE条件注释载入不同的CSS、JS、HTML和服务器代码等。

Image placeholder
前端答疑
未设置
  65人点赞

没有讨论,发表一下自己的看法吧

推荐文章
jquery不兼容低版本ie浏览器怎么办?

jquery不兼容低版本ie浏览器怎么办?1、可以使用原生JS或者低版本的Jquery1.x版本。因为Jquery从2.x版本开始已经不再进行IE低版本(IE6、IE7、IE8)的兼容性处理。如果需要

ie不兼容jquery怎么办?

解决方法:1、可以使用原生JS或者低版本的Jquery1.x版本。因为Jquery从2.x版本开始已经不再进行IE低版本(IE6、IE7、IE8)的兼容性处理。如果需要兼容低版本的IE版本,建议使用原

css行内样式不起作用怎么解决

css行内样式不起作用css行内样式不起作用的原因有两个:●语法错误●样式被覆盖1、语法错误的解决方法行内样式的正确书写格式如下测试文字css写在标签的style属性上,每条样式使用分号隔开。2、样式

怎么在html中加入css样式

html添加css样式有三种方法,分别为行内式(使用style属性,在特定的HTML标签内使用)、内嵌式(style标签把css代码放在特定页面的head部分中)、外联式(使用link标签,将外部cs

怎么载入css样式?

1.行内式行内式也称内联样式,是通过标记的Istyle属性来设置标记的样式,其基本语法格式如下:

dw怎么链接css样式

dw怎么链接css样式?(以下以DWCS6版本为例,其他版本大同小异):在DW里可通过直接引入、CSS样式面板和属性面板的方式来链接、使用CSS。1、如果是外联样式表,在DW界面中可通过直接拖动CSS

thinkphp加载不了css样式怎么解决

thinkphp加载不了css样式怎么解决解决方法:1、项目入口文件index.php

jquey怎么引用css样式

jquey怎么引用css样式jquery引用css只需要一行代码即可,通过传入一个标签,来创建link标签,传入type、href、以及rel给link标签添加属性,最后再调用appendTo方法,将

ie怎么加载不了css样式?

CSS能够对网页中元素位置的排版进行像素级精确控制,支持几乎所有的字体字号样式,拥有对网页对象和模型样式编辑的能力。ie怎么加载不了css样式?IE一直是特殊的一个浏览器,有时,会出现无法加载css样

jsp怎么引入css样式?

JSP页面引入CSS样式有三种方法,且其优先级不同。具体如下:外部样式,内嵌样式,行内样式。优先级依次增高!下面给大家具体介绍一下:1、外部样式jsp可以在link标签中使用href属性引入css文件

.vue文件怎么写css样式

.vue文件怎么写css样式.vue文件由结构——行为——样式三部分构成,分别对应template、script、style标签,css样式就写在style标签中。一、直接在Test.vue中写css

javascript怎么清除CSS样式?

javascript怎么清除CSS样式?一、使用setAttribute方法清除样式dom结构helloworldjavascriptp.setAttribute('style','');二、使用re

dw怎么用css样式?

dw怎么用css样式?首先介绍一下CSS样式的属性:CSS样式属性被分为八大类:类型,背景,区块,方框,边框,列表,定位,扩展。类型主要定义文本的字体,大小,颜色,行高和修饰等。如图所示:方法一:内联

怎么用css样式为网页做竖杠?

怎么用css样式为网页做竖杠?两种方法1、带竖线的字,在每个导航标记后面加入'|'这个就是竖线(shift+回车上方的按键) Document ul{ display:flex; justif

css样式是什么意思?

CSS(CascadingStyleSheets,层叠样式表)是一种用来表现HTML(标准通用标记语言的一个应用)或XML(标准通用标记语言的一个子集)等文件样式的计算机语言。CSS就是一种叫做样式表

如何用别人的css样式

如何用别人的css样式使用别人的css样式首先需要引入,引入到自己的HTML文档中,主要有两种方式。1、下载别人的css样式,通过link标签引入。打开网站,按下f12打开开发者工具面板,选中Sour

css样式表是什么意思?

CSS主要用来设计网页的样式,美化网页;它不仅可以静态地修饰网页,还可以配合各种脚本语言动态地对网页各元素进行格式化。CSS能够对网页中元素位置的排版进行像素级精确控制,支持几乎所有的字体字号样式,拥

如何动态修改css样式

如何动态修改css样式一、使用obj.className来修改样式表的类名functionchangeStyle1(){ varobj=document.getElementById("btnB");

如何保存css样式

如何保存css样式1、首先要确定,你要的css样式是内联在html里面的,还是单独一个css文件的,如果是内联的话,直接在网页点击右键,查看源码,然后再复制下来存入一个文档里就可以了。(相关课程推荐:

如何在react加css样式?

react加css的3种方法:1.行内样式直接给对应的DOM元素添加style属性,遵循react的规则,写在{}当中。ThisisPage1!2.声明样式render(){   letmystyle

如何调用不同css样式?

1、根据不同分辨率来调用不同css样式可以使用@media查询来根据不同分辨率调用不同css样式。使用@media查询,你可以针对不同的媒体类型定义不同的样式。@media可以针对不同的屏幕尺寸设置不

css样式有哪几种?

CSS即层叠样式表(CascadingStyleSheets),是一种用来表现HTML或XML等文件样式的计算机语言。CSS主要用来设计网页的样式,美化网页;它不仅可以静态地修饰网页,还可以配合各种脚

服务器不加载css样式表

服务器不加载css样式表的原因:●HTML文件中,引用css样式表的路径填写错误导致的。●nginx做代理后的虚拟路径和静态资源的请求路径不一致导致的。●样式文件编码和网页编码不一致,导致不能解析cs

css样式表分类及区别

css样式表分类及区别一、样式表分类(1)内联样式(2)内部样式表(3)外部样式表(相关课程推荐:css视频教程)二、不同样式表的区别●内联样式【优先级最高】【不常用】【代码重复使用性最差】(当特殊的

dw里怎样设置图片的css样式

dw里怎样设置图片的css样式1、首先在文件内插入一张图片,点击插入\图像,选择一张图片即可。2、选中图像,点击css样式窗口的+号,新建一个CSS(相关课程推荐:css视频教程)样式,打开对话框。选