目前我正在开发一个网页,只需要为 IE 设置一个样式。我正在使用有条件的评论:
<!--[if IE]>
<link rel="Stylesheet" href="../../IEstyles.css" rel="Stylesheet" />
<![endif]-->
这是执行此操作的最佳方法还是使用 javascript 是最佳实践?
目前我正在开发一个网页,只需要为 IE 设置一个样式。我正在使用有条件的评论:
<!--[if IE]>
<link rel="Stylesheet" href="../../IEstyles.css" rel="Stylesheet" />
<![endif]-->
这是执行此操作的最佳方法还是使用 javascript 是最佳实践?
Html5Boilerplate是最佳实践的网站,他们的建议如下:
<!-- paulirish.com/2008/conditional-stylesheets-vs-css-hacks-answer-neither/ -->
<!--[if lt IE 7 ]> <html class="no-js ie6" lang="en"> <![endif]-->
<!--[if IE 7 ]> <html class="no-js ie7" lang="en"> <![endif]-->
<!--[if IE 8 ]> <html class="no-js ie8" lang="en"> <![endif]-->
<!--[if (gte IE 9)|!(IE)]><!--> <html class="no-js" lang="en"> <!--<![endif]-->
这使您可以保留一个样式表,只需将上述任何类添加到针对特定条件黑客的前面。
这几乎是最佳实践。您可能应该改为检查[if lt IE 9]
,因为 IE 9 很好地支持 CSS,但绝对不要使用浏览器嗅探 JavaScript。这几乎总是解决问题的最坏方法。
不是每个人都启用了 JavaScript - 我所知道的每个主流浏览器都支持 HTML 注释。
由于这只是一个样式表,因此是一个 UI 问题,我会避免使用 javascript,而只使用条件注释来定位 IE。如果您尝试进行某种浏览器嗅探,这也解决了禁用 javascript 的人的问题。
使用条件注释。它们可以防止其他浏览器必须下载/运行任何脚本,但具有始终为 IE 用户工作的好处。
使用条件将是最好的主意,因为您无法保证访问者不会禁用 javascript 或禁用脚本。由于这仅适用于 IE 浏览器,其他浏览器将忽略它,而所有浏览器都将处理 Javascript,无论是否用于 IE。
Javascript 可以被禁用,所以我会说条件注释是提供特定于 IE 的 CSS 的最佳方式。