CSS

如何使用有效的CSS定位IE7和IE8?

发布于 2021-02-02 16:48:25

我想使用兼容W3C的CSS定位IE7和IE8。有时为一个版本修复CSS不能为另一版本修复。我该如何实现?

关注者
0
被浏览
74
1 个回答
  • 面试哥
    面试哥 2021-02-02
    为面试而生,有面试问题,就找面试哥。

    明确目标IE版本,无需使用HTML和CSS进行破解

    如果您不希望CSS受到黑客攻击,请使用此方法。在<html>元素中添加一个浏览器唯一的类,以便以后可以基于浏览器进行选择。

    <!doctype html>
    <!--[if IE]><![endif]-->
    <!--[if lt IE 7 ]> <html lang="en" class="ie6">    <![endif]-->
    <!--[if IE 7 ]>    <html lang="en" class="ie7">    <![endif]-->
    <!--[if IE 8 ]>    <html lang="en" class="ie8">    <![endif]-->
    <!--[if IE 9 ]>    <html lang="en" class="ie9">    <![endif]-->
    <!--[if (gt IE 9)|!(IE)]><!--><html lang="en"><!--<![endif]-->
        <head></head>
        <body></body>
    </html>
    

    然后,在CSS中,您可以非常严格地访问目标浏览器。

    .ie6 body { 
        border:1px solid red;
    }
    .ie7 body { 
        border:1px solid blue;
    }
    

    带有CSS“ Hacks”的目标IE版本

    更重要的是,这里有一些使您可以定位IE版本的黑客。

    使用“ \ 9”定位IE8及更低版本。
    使用“ *”定位IE7及更低版本。
    使用“ _”定位IE6。

    例:

    body { 
    border:1px solid red; /* standard */
    border:1px solid blue\9; /* IE8 and below */
    *border:1px solid orange; /* IE7 and below */
    _border:1px solid blue; /* IE6 */
    }
    

    更新:目标IE10

    IE10无法识别条件语句,因此您可以使用它来将“ ie10”类应用于<html>元素

    <!doctype html>
        <html lang="en">
        <!--[if !IE]><!--><script>if (/*@cc_on!@*/false) {document.documentElement.className+=' ie10';}</script><!--<![endif]-->
            <head></head>
            <body></body>
    </html>
    


知识点
面圈网VIP题库

面圈网VIP题库全新上线,海量真题题库资源。 90大类考试,超10万份考试真题开放下载啦

去下载看看