2011-07-26 29 views
1

更新:[!见第三种技术在关于保罗爱尔兰的技术这个问题的底部]瞄准IE中使用条件注释并且只需一个样式表

我想知道什么网页开发者那里想想这两个方法?哪个最好?两者的考虑?

方法1:所有款式

单CSS文件,并在包装​​div的条件注释特定ID适用于HTML。

CSS

/*** For IE 7 and up ***/ 

#ie7andup #anyelement { 
    border-color : blue; 
} 

HTML

<!--[if gte IE 7]> 
<div id="ie7andup"> 
<![endif]--> 

    <!--[if IE 6]> 
    <div id="ie6only"> 
    <![endif]--> 

     <!--[if IE 5.5000]> 
     <div id="ie5-5only"> 
     <![endif]--> 

      <!--[if lt IE 5.5000]> 
      <div id="ie5-01only"> 
      <![endif]--> 

<div id="anyelement">a box with some content</div> 

[... more page content ...] 


    <!--[if IE]> 
    </div> 
    <![endif]--> 

(经由http://www.positioniseverything.net/articles/cc-plus.html

方法2:

独立IE样式表,与条件注释包括CSS文件。 (通过http://reference.sitepoint.com/css/conditionalcomments

<link href="main.css" rel="stylesheet" type="text/css"> 
<!--[if IE 7]> 
<link href="ie7.css" rel="stylesheet" type="text/css"> 
<![endif]--> 
<!--[if IE 6]> 
<link href="ie6.css" rel="stylesheet" type="text/css"> 
<![endif]--> 
<!--[if IE 5]> 
<link href="ie5.css" rel="stylesheet" type="text/css"> 
<![endif]--> 

是面向所有IE的和固定他们的问题

。第一种方法不会在你的CSS中更干净,并简化它?或者是否有意义为IE分开的CSS文件?

我很想看到一些链接到其他的引用/文章卫冕比其他方法之一。我看到大多数人使用后者。


更新 - 保罗爱尔兰看看这个技术!:

这可能是更好的。这样呢?与近代化这样你可以有你的一个样式表内有它的IE特定的部分 - 对

http://paulirish.com/2008/conditional-stylesheets-vs-css-hacks-answer-neither/

的思考?

+0

为什么要支持IE 5.0?或5.5或甚至6.0?在中国以外,IE 6的市场份额通常低于2%。 5.5和5.0甚至没有注册。这是很多额外的工作来支持少数人。他们甚至是你的目标人群吗? – gilly3

+0

@ gilly3在我的组织(3000+)中,我们必须支持内部客户/同事,这意味着90%是IE8,这是我组织的当前桌面支持标准。远程工作人员也经常使用IE。啊。这很糟糕,我知道,但就我而言,在这里,这是我必须考虑的事情。虽然我们有公共网站,但即使这些统计数据告诉我们IE是占主导地位的(目前用于我们的公共公司网站)。见细目 - http://cl.ly/1p3F3Y093J3u3L0z1a0h – program247365

回答

2

方法二也减少了不必要的流量。互联网浏览器不共享他们的缓存,所以IE7下载IE6他的styleinfo将是无用的。 关于你提到的有关“干净的CSS”评论,大型的应用程序往往容易在样式表按“主题”分裂样UI,对话框,IE等,也能保持,下载多个中等大小的文件比,因为大尺寸文件快在所有现代浏览器中都存在流水线。

+0

尽管我不知道大多数开发人员经常会遇到大型网站需要扩展的用例,但我确实喜欢您提到这些因素并对其进行解释的事实,因此我将您的答案标记为'唯一的那个'。 :) 谢谢! – program247365

2

我宁愿方法2.身体中的任何类型信息在我看来,少维护,因为你必须寻找它,只要你愿意做出改变,也必须由页的基础页面上的改变。

+0

我第二。在一张纸上保存更改更容易。+ 1 – Semyazas

+0

确实是一个很好的观点。 – program247365