当前位置: 首页 > 面试题库 >

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

濮阳和泰
2023-03-14
问题内容

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


问题答案:

明确目标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>


 类似资料:
  • 问题内容: 4年前关闭。 我想定位Edge并使flexbox的行为类似于Firefox 33 / Chrome。 可以在CSS中定位Edge吗? 问题答案: 为了定位Edge,我们可以检查是否支持,Edge是唯一支持此属性的Microsoft浏览器: 或这种一线式(一种适用于Edge,也适用于所有IE):

  • 问题内容: 我知道我可以定位CSS中具有 特定 属性的元素,例如: 但是,是否可以将具有任何值属性的元素作为目标(除了什么都没有,即当尚未将属性添加到元素时)? 大致类似: 哪个应定位此HTML中的第一个和第三个标记: 我认为这是可能的,因为默认情况下,似乎将其应用于具有其属性值的任何标签。 问题答案: 以下内容将匹配定义了属性的所有锚标记: 更新: 要解决上述@vsync场景,在注释部分(区分为

  • 问题内容: 使用条件注释,可以使用特定于浏览器的CSS规则轻松定位Internet Explorer: 有时,行为不当的是Gecko引擎(Firefox)。 什么是将CSS规则仅定位到Firefox而不是其他浏览器的最佳方式? 也就是说,Internet Explorer不仅应该忽略仅Firefox的规则,而且WebKit和Opera也应该忽略它们。 注意: 我正在寻找一种“干净”的解决方案。在我

  • 我不能正确使用“float:right”在它上有没有一个解决方案,将它定位在div的右侧部分,而不使用(左右边距-左边距-右)? null null

  • 问题内容: 我使用绑定框架已有一段时间了,我想知道您如何处理这种情况。 您的报纸有一些属性,例如 (字符串)标题 (布尔值)已发布 (日期)发布日期 在您看来,您拥有一份报纸列表,可以同时对其进行全部编辑。这意味着您可以在单个请求中更改所有newspape的标题或“已发布”的所有状态。 问题在于,当我们使用绑定框架时,​​您将有点像编辑数据库中的数据一样编辑报纸的数据…将每个值彼此独立地绑定到字段

  • 问题内容: 因此,当我的应用程序在Firefox中运行良好时,我就很喜欢它,但是随后我在IE中打开它,然后…不,请重试。 我遇到的问题是我将CSS显示属性设置为或JavaScript。 我最初使用,但是Firefox在没有该属性的情况下使它变得怪异。 我很乐意在不添加JavaScript来测试IE的情况下做到这一点。有什么建议么? 谢谢。 问题答案: 解决此问题的一种好方法是将该值设置为: 空值会