CSS的浏览器检测:使用单独的CSS文件或内联CSS或......?

Dar*_*ein 2 css browser-detection

我想知道哪个最适合速度:

选项1:为每个浏览器加载单独的CSS(通过a包含单独的JS文件<script/>):

// for internet explorer 6 & 7
if ($.browser.msie) {
    document.write('<link rel="stylesheet" type="text/css" href="/css/styles-ie.css" />');
}

// for opera
if ($.browser.opera) {
    document.write('<link rel="stylesheet" type="text/css" href="/css/styles-opera.css" />');
}
Run Code Online (Sandbox Code Playgroud)

选项2:内联CSS(通过a包含单独的JS文件<script/>):

// for internet explorer 6 & 7
if ($.browser.msie) {
    document.write('[some CSS styles]');
}

// for opera
if ($.browser.opera) {
    document.write('[some CSS styles]');
}
Run Code Online (Sandbox Code Playgroud)

选项3:还是有另一种更好的方法吗?

小智 6

我最喜欢条件评论,虽然我没有真正测试它,但我认为它也是最快的选择,因为不涉及DOM操作.还有一篇关于支持IE与这种技术交流的好文章,但阅读一篇关于一些陷阱的文章可能会有所帮助.

根据我的经验,没有必要为IE以外的其他浏览器做任何例外,但由于你的例子也列出了Opera,我建议你使用一些CSS黑客进行Opera所需的(可能很小的)更改.如果您对Opera Specific CSS进行网络搜索,您可能会找到您喜欢的内容;)