• 爱情文章
  • 亲情文章
  • 友情文章
  • 生活随笔
  • 校园文章
  • 经典文章
  • 人生哲理
  • 励志文章
  • 搞笑文章
  • 心情日记
  • 英语文章
  • 范文大全
  • 作文大全
  • 新闻阅读
  • 当前位置: 山茶花美文网 > 亲情文章 > 正文

    【如何用!important解决浏览器兼容性问题】 web前端浏览器兼容问题

    时间:2018-08-11来源:山茶花美文网 本文已影响 山茶花美文网手机站

    "!important"是什么?
    第一个,是设置样式的优先级,设了!important的样式的属性优先于id选择器和class选择器。,比如id为"Main"的div在它的Class设背景色为红色,,id选择器下又设了背景色为蓝色,照css的"就近原则",它的背景色应该是红色了,因为id选择器的优先级高于class选择器,但是,一旦class里设了"!important",哈哈,id,一边去吧。。我背景颜色要优先显示class设置的啦,因为它有!important做后台呀。

    第二个,可以利用它让页面效果在ff等浏览器上和ie6效果更相同。因为不同的浏览器有自己默认的样式,所以你设一个样式在不同的浏览器里会有不同的效果,而有了!important,你就可以。。。话说,这里先略过,偶也没怎么用!important解决浏览器兼容性问题。

    就是说,它是解决浏览器兼容性问题的有效方法之一。
    先把代码贴出来:


    代码如下:
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>无标题文档</title>
    <style type="text/css">
    #test {
    color:red !important;/*IE7、FF、OP等显示红色文字*/
    color:green;/*IE6显示绿色文字*/
    }
    span {color:gray !important;}
    span {
    color:gray !important;/*IE6将不会将文本显示为灰色(gray)*/
    color:red;
    }
    </style>
    </head>
    <body>
    <div id="test">计算机基础知识 www.3lian.com</div>
    </body>
    </html>

    在查看其他人这方面的文章的时候,发现很多误区,有人干脆就认为"ie都是不支持!important"这个属性的,而有的人则又认为"ie6是不支持这个属性的",呵呵,其实"ie6不是不支持,只是有个小bug",欢迎讨论,指教,在不同的意见中提高技术。

    某些懂一些css的朋友大概会说,是ie6不支持"!important",呵呵,这话说得有些对,但是不全对,为什么呢?
    关键原因就是如果把样式改一下:


    代码如下:
    <style type="text/css">
    #test {
    color:red !important;/*IE7、FF、OP等显示红色文字*/
    }
    #test {
    color:green;/*IE6显示绿色文字*/
    }
    </style>

    你会发现在ie下字体的颜色变得和在FF中一样了,而如果ie6真的不支持"!important"这个属性的话,ie下字体的颜色就应该是绿色,而不是红色,因为按照css的"就近原则"来说,字体的颜色一直都应该是绿色,而不是红色的。

    但是 为什么我们把样式改了之后,字体颜色在FF和ie6下就不一样了呢,这应该是ie6下的一个bug,如果一个样式内重复设了属性,如"color:*",它就会忽略掉"!important"了。
    呵呵,这样样式CSS1就有了,但一直没有很好的发挥它的作用,但是其实,我们可以利用它来解决一些浏览器兼容性问题造成的异常,做到让页面尽量在不同浏览器之间看起来一样。
    IE6对!important的支持是这样的,单个的类是支持的,比如:


    代码如下:
    .className{color:#ffff00!important}
    .className{color:green;}

    这样是支持的,但是:


    代码如下:
    .className{color:#ffff00; color:green}

    这样是不支持的。

    • 【如何用!important解决浏览器兼容性问题】 web前端浏览器兼容问题 相关文章:
    • 爱情文章
    • 亲情文章
    • 友情文章
    • 随笔
    • 哲理
    • 励志
    • 范文大全