Html IE浏览器的不同css
我需要运行一些css只为IE,而不是为其他浏览器。 我使用的是有条件的评论:Html IE浏览器的不同css,html,css,internet-explorer,conditional-comments,Html,Css,Internet Explorer,Conditional Comments,我需要运行一些css只为IE,而不是为其他浏览器。 我使用的是有条件的评论: <!--[if lt IE 7 ]><html class="ie6 ie"> <![endif]--> <!--[if IE 7 ]><html class="ie7 ie"> <![endif]--> <!--[if IE 8 ]><html class="ie8 ie"> <![endif]--> <
<!--[if lt IE 7 ]><html class="ie6 ie"> <![endif]-->
<!--[if IE 7 ]><html class="ie7 ie"> <![endif]-->
<!--[if IE 8 ]><html class="ie8 ie"> <![endif]-->
<!--[if gte IE 9]><html class="ie"> <![endif]-->
<!--[!(IE)]><!--><html class="no-ie"> <!--<![endif]-->
但这段代码不适用于IE11,阅读本文后我发现早期的ie版本不再有条件注释
然后我试着用这个来改变第四行
<!--[if gte IE 9]><!--><html class="ie"> <!--<![endif]-->
但我也可以在非ie浏览器中看到ie类
有没有一种聪明的方法来区分IE和其他浏览器
谢谢 您不需要区分IE的新版本和其他浏览器。IE现在是一个改进了很多的产品,它和Chrome或Firefox一样符合网络标准 条件注释仅用于IE 9及以下版本 如果有什么特别的东西需要检测,那么特征检测就是一种方法。这可以用于所有浏览器
看看你不需要区分IE和其他浏览器的新版本。IE现在是一个改进了很多的产品,它和Chrome或Firefox一样符合网络标准 条件注释仅用于IE 9及以下版本 如果有什么特别的东西需要检测,那么特征检测就是一种方法。这可以用于所有浏览器
查看一下一般来说,您不应该试图检测用户是否在IE11上。IE的最新版本通常与其他浏览器(HTML、CSS和JS支持)在大多数用例上是相同的。
然而,即使是微软也承认,在极少数情况下,您可能需要对其进行唯一标识。为此,他们建议查询用户代理字符串。请参阅和。通常,您不应该尝试检测用户是否在IE11上。IE的最新版本通常与其他浏览器(HTML、CSS和JS支持)在大多数用例上是相同的。 然而,即使是微软也承认,在极少数情况下,您可能需要对其进行唯一标识。为此,他们建议查询用户代理字符串。请参阅和。回答 您可以使用Javascript读取属性并从结果字符串中获取
userAgent
,如下所示:
var agent = window.navigator.userAgent;
if ( agent.indexOf('Trident') > -1 )
document.querySelector('body').classList.add('ie-css');
如果您需要版本
您可以使用获得一个包含所有细节的漂亮对象。这是一种比上述方法“更安全”的方法,但您还必须包括库:
var parser = new UAParser(),
browser = parser.getBrowser();
console.log( browser.name, browser.major ); // -> "IE 10.0"
小心
您可能知道这一点,但使用浏览器嗅探是一种古老而糟糕的技术。它会很快导致遗留和不可管理的代码尝试并避免检测IE版本
用它代替。回答
您可以使用Javascript读取属性并从结果字符串中获取userAgent
,如下所示:
var agent = window.navigator.userAgent;
if ( agent.indexOf('Trident') > -1 )
document.querySelector('body').classList.add('ie-css');
如果您需要版本
您可以使用获得一个包含所有细节的漂亮对象。这是一种比上述方法“更安全”的方法,但您还必须包括库:
var parser = new UAParser(),
browser = parser.getBrowser();
console.log( browser.name, browser.major ); // -> "IE 10.0"
小心
您可能知道这一点,但使用浏览器嗅探是一种古老而糟糕的技术。它会很快导致遗留和不可管理的代码尝试并避免检测IE版本
改用。好的,你提出了你的建议。。。如果有一个真正问题的解决方案,那就太好了……好吧,你提出了你的建议。。。如果它附带了一个真正问题的解决方案,那就太好了……请注意,IE11在UA字符串中没有
MSIE
,因此这个答案的第一部分在那里不起作用。见@OllyHodgson谢谢你的提醒。更改为Trident。请注意,IE11在UA字符串中没有MSIE
,因此此答案的第一部分在那里不起作用。见@OllyHodgson谢谢你的提醒。换成三叉戟。