我想知道哪种方式最适合速度:
选项1:为每个浏览器加载单独的CSS(通过<script/>
包含单独的JS文件):
// 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" />');
}
选项2:内联CSS(通过<script/>
包含的单独JS文件):
// for internet explorer 6 & 7
if ($.browser.msie) {
document.write('[some CSS styles]');
}
// for opera
if ($.browser.opera) {
document.write('[some CSS styles]');
}
选项3:还是有另一种更好的方法吗?
答案 0 :(得分:6)
我最喜欢conditional comments,虽然我没有真正测试它,但我认为它也是最快的选择,因为不涉及DOM操作。还有一个great article关于支持IE与此技术的讨论,但阅读一些pitfalls上的文章可能会有所帮助。
根据我的经验,没有必要为IE以外的其他浏览器做任何例外,但是因为你的例子也列出了Opera,我建议你使用一些CSS hacks来进行Opera所需的(可能很小的)更改。如果您对Opera Specific CSS进行网络搜索,您可能会找到您喜欢的内容;)
答案 1 :(得分:0)
我使用CSS Reset来平衡比赛场地。这通常会使所有浏览器的行为与我应用的样式相当可预测。当然,我遇到过一些情况,其中IE呈现的方式与更符合标准的浏览器不同。使用conditional comments我可以使用IE特定的样式表修复这些差异。
答案 2 :(得分:0)