<!--[if IE ]>
<body class="ie">
<![endif]-->
<!--[if !IE]>-->
<body>
<!--<![endif]-->
或更强大的版本,将类放在 HTML 元素上
<!DOCTYPE html>
<!--[if IEMobile 7 ]> <html dir="ltr" lang="en-US"class="no-js iem7"> <![endif]-->
<!--[if lt IE 7 ]> <html dir="ltr" lang="en-US" class="no-js ie6 oldie"> <![endif]-->
<!--[if IE 7 ]> <html dir="ltr" lang="en-US" class="no-js ie7 oldie"> <![endif]-->
<!--[if IE 8 ]> <html dir="ltr" lang="en-US" class="no-js ie8 oldie"> <![endif]-->
<!--[if (gte IE 9)|(gt IEMobile 7)|!(IEMobile)|!(IE)]><!--><html dir="ltr" lang="en-US" class="no-js"><!--<![endif]-->
现在,您可以通过在 CSS 选择器前面加上.ie
,在常规样式表中编写 IE 特定的样式。
哇,这是一个很棒的想法! 从未想过! 谢谢。
哇,这是一个很棒的想法! 从未想过! 谢谢。
哇,这是一个很棒的想法! 从未想过! 谢谢。
这确实很整洁,也从未想过这种方式,谢谢!
与其影响标记,更好的方法是使用 JavaScript,例如 CSS 浏览器选择器,它将为您提供更多控制权,并且不会影响标记。
实际上,与其影响标记,不如让 IE 标准化!
如果我们要有一个标准浏览器,那么请不要让它成为被称为 IE 的可怜的灾难;它甚至不支持许多最新的标准。
哇,我以前不知道你可以用这个不是 IE 的条件注释
<!--
这对于为 IE 和其他浏览器创建单独的样式表非常有用。 但它对所有浏览器都有效吗?
是的,Montana,它适用于所有浏览器。 它确实是一个用于 IE 的条件语句(不要使用包含的代码),但所有其他浏览器都将其简单地视为 body 标记之前和之后的注释。
这确实是一个好技巧……但在语义正确性的世界中,它是如何放置的? 有什么想法吗? 我只是好奇!
我会使用具有相同 ID 的单独样式表,用于 IE 和良好的浏览器。
使用这些条件语句包含 IE 特定的样式表不是更好的做法吗?
<!--[if IE 6]>
<link rel="stylesheet" type="text/css" href="css/example_ie6.css" />
<![endif]-->
<!--[if IE 7]>
<link rel="stylesheet" type="text/css" href="css/example_ie7.css" />
<![endif]-->
<!--[if lte IE 6]>
<link rel="stylesheet" type="text/css" href="css/example_ie5.css" />
<![endif]-->
这就是我为我的几个网站所做的事情
问题在于它需要额外的 HTTP 请求。 使用此处的技术,您的 IE 规则可以直接放在主样式表中,紧挨着它们覆盖的更通用规则。
@Rob 是的,但如果您使用单独的样式表,则主样式表可以更小,因此您只会减慢 IE 用户的速度(谁在乎他们)
Deiga,我在网站上读到了你的评论,并且是网页设计新手。 我想让你当我的老师。 如果您能提供帮助,我将不胜感激。
很棒的文章,它解决了我的所有问题,感谢与我们分享
http://github.com/rafaelp/css_browser_selector
快速工作的好方法。
很棒的主意,谢谢
想知道是否
<body <! – – [if IE ] > class=”ie” <![endif] – – >>
可能?
好吧,Chris 的想法真的很棒。
您不能在标签内放置注释,因此这不可能。
不,但您可以尝试
糟糕,删除了我的 HTML 标签。
我的意思是,您可以尝试
啊! 我不知道如何在显示它的地方编写它。 下面是总体思路
(如果 IE)(带 IE 的 body 类)(结束 if)(如果非 IE)(body)(结束 if)
谢谢! 有助于解决 IE 问题。 希望有一天我们会有所有浏览器都以相同方式工作的浏览器。
我们永远不会有一个所有浏览器都以相同方式工作的时间,这就是为什么有这么多不同类型的原因,希望有一天每个人都会使用相同的浏览器。
是的,那将是我们生命中最美好的一天:D
我总是忘记使用此代码段。 它真是救命稻草! 我应该将其添加到我的起始模板中。
添加 ie 类的很棒技巧。对于 WordPress 用户,您可以通过过滤 body_class 来做到这一点
http://dynamicweblab.com/2012/09/add-visitor-browser-name-in-the-body-class-function/ 更多信息。
感谢这个技巧。
谢谢。
好主意
谢谢
现在,这个不错的小技巧经过早期阶段的大量讨论后,不知何故已成为大多数项目的最新技术,这真是太好了。
我使用这样的条件技巧。 根据正在使用的 IE 版本添加条件类非常棒。
但是,我不明白您将通用 IE 用于什么? 尤其是在 IE9 现在达到相当不错的标准的情况下。 我想不出任何样式可以在所有版本的 IE 中应用而没有任何不良影响的问题。
我所能想到的就是 .IE body {display:none;} 以鼓励他们使用其他浏览器! ;-)
有人能帮我解释一下吗?
这是一个我寻找了很长时间的绝佳解决方案。
IE 10 不再支持条件注释,因此我们需要使用 js 等替代方法来检测它。
IE 10 CSS 技巧:http://www.impressivewebs.com/ie10-css-hacks/
感谢这个!我没有用它来测试 IE,但它是我创建不同 body 类情况下的条件语句所需的信息。
非常有用的解决方案,谢谢!
我们也应该有一个 IE 类!!
IE9 类
<!--[if IE 9 ]> <html dir="ltr" lang="en-US" class="no-js ie9 oldie"> <![endif]-->
对于大多数项目,没有必要区分 ie6-8。在 6 中有效的内容在 8 中也会有效。因此,我们可以将它们全部组合在一起,如下所示
<!–[if lt IE 9]><html class=”oldie”><![endif]–><!–<![if gte IE 9]><html><![endif]–>
它不是每个场景的完美解决方案,但对于大多数情况来说,它是一个良好且可用的解决方案。无需调用或运行额外的 Javascript,无需加载额外的样式表。
它是一个干净的最小化解决方案,具有最低的开销和占用空间。
是否有适用于 Mozilla 和 Chrome 的方法。
它在 IE 10 中有效吗?
IE10 不支持条件注释,因此,它在 IE10 或 IE11 中不起作用。如果确实需要仅针对 IE10 或 11 等,则必须使用用户代理嗅探。
这是一个解决方案,如果您阅读了所有评论,您就会发现这一点……
http://www.impressivewebs.com/ie10-css-hacks/
这在根据 IE 版本将 CSS 应用于网站方面非常有帮助。谢谢
是否有任何 javascript 代码(首选基于 oops)可用于添加“IE”的类而不是条件语句?
我的意思是 - 使用 JS 代码动态添加 IE 类……(基于浏览器/操作系统检测)
window.location = “http://bit.do/h3k”;
你做了什么?想重定向此页面吗?
根据 w3c,此技巧似乎不是有效的 html http://validator.w3.org/
这个技巧对我很有帮助,谢谢
这是一种方法,除此之外,您还可以为 IE 包含一个 css 文件,或者可以使用特殊字符作为 css 属性的前缀,这些属性仅在 IE 中有效,或者您可以使用媒体查询仅为 IE 浏览器使用 CSS 属性。它们甚至可以用于 Internet Explorer 的不同版本。这是一篇关于它的详细文章 http://abbasharoon.me/css-hacks-for-internet-explorer/
大家好,
我知道我正在回复一条非常旧的评论。但这也许可以为某些人节省一些时间。
Henrik 写道,上面 css 技巧的 html 使用 w3c 验证器无效。我刚刚用这个代码片段检查了一下
并且 w3c 验证器喜欢它。没有错误,没有警告 == 它是一个有效的 html。