1

RewriteRule在 .htaccess 中使用为不支持 CSS3 的浏览器提供不同的 CSS 和 Javascript会是一个坏主意吗?如果是,为什么?

例如,我想为不完全支持 CSS3 的浏览器提供特殊的 CSS 和 Javascript。

我知道您可以<!--[if xx]>在 HTML 中使用,但我认为在服务器级别执行此操作会更干净。

请指导我。

我打算如何做的例子:

RewriteEngine On
RewriteCond %{HTTP_USER_AGENT} "MSIE 9" [or]
RewriteCond %{HTTP_USER_AGENT} "MSIE 8" [or]
RewriteCond %{HTTP_USER_AGENT} "MSIE 7" [or]
RewriteCond %{HTTP_USER_AGENT} "MSIE 6"
RewriteRule the-file-for-all-other-browsers.css /css/style-for-ie-browsers-below-10.css [NC,L]
4

4 回答 4

2

你打算怎么做这个.htaccess?嗅探用户代理字符串可能会导致误报,通常不建议这样做您应该使用Modernizr之类的东西,然后您可以为不支持您正在寻找的某些功能的各种浏览器准备优雅的降级/插件。

另外值得一提的是,使用<!--[if IE]-->标签的开销最小,因为其他浏览器会忽略它们而不加载内容,它们也不会在使用类似用户代理字符串(指向 Opera)的浏览器上触发。

于 2012-06-01T14:33:05.343 回答
1

I'd say it's a bad idea. That .htaccess rewrite will get processed on EVERY request. That means for images, every file, everything. That is a lot of overhead and can lead to slowing down the site.

于 2012-06-01T14:33:26.270 回答
0

考虑使用CSS3PIE,它为 IE 9,8 和 7 提供了 polyfills 以赋予它们 CSS3 特性。

于 2012-06-01T14:29:28.927 回答
0

我认为这很糟糕,因为您无法确定 htacess 中的功能支持。

您不应该使用浏览器嗅探来提供优雅的降级,而应该在向它们展示高级功能之前确定浏览器是否支持所需的功能(渐进式增强)

于 2012-06-01T14:32:59.477 回答