2009-04-28 50 views
0

这个问题背后的罪魁祸首当然是IE6,几乎所有人都同意网站应该支持IE6,因为超过15%的访问者使用它(for Yahoo it is still an A-Graded browser)。我们可以在实践中使用CSS 2.1选择器吗?

IE6不支持CSS 2.1,所以我们可以在样式表中使用CSS 2.1选择器吗?让我举一个例子:

<body> 
    <div class="header"> 
    </div> 
    <div class="content"> 
     <h1>Title</h1> 
     <p>First paragraph</p> 
     <p>Second paragraph</p> 
    </div> 
    <div class="footer"> 
    </div> 
</body> 

我的CSS看起来是这样的:

body > div {width: 760px;} /* header content and footer = 760px wide */ 
h1 + p { margin-top: 5px;} /* the first paragraph after the h1 tag should have a smaller margin */ 

但IE6不明白这一点,所以无论如何要浏览器兼容的我应该写这样的:

.header, .content, .footer { width:760px; } 

可能我必须给第一段一些类的名称,并在我的CSS中定义它。我可以做一个IE6 stylesheet特定的定义这些规则,但似乎是这样的双倍(并仍然没有帮助,在第一段的情况下需要类名)...

+0

不是每个人都同意下,一个网站应该支持IE6。例如,我没有。 – 2009-04-28 06:59:49

+0

每个不是开发人员的人都同意你应该支持IE6 ....保存开发人员! – womp 2009-04-28 06:59:51

+0

Web开发人员可能会鄙视IE6(和IE一般,就此而言)。但是不管我们多么讨厌IE6,仍然有很大一部分人仍在使用它...... – hbw 2009-04-28 07:02:47

回答

2

如果你认真对待支持IE6 100%,那么你应该避免使用不会使用它的CSS。使用这些奇特选择器的原因之一是让你的生活更轻松,但如果你不得不为IE6重写它们,它不会让你的生活更轻松。最后,像这样的花式选择器是slow in Firefox,所以也许只是一起避免它们。

0
  • Javascript like jQuery。
  • CSS Hack。但我不建议。因为它不是W3C标准。
  • CSS Classname。通过使用CSS Classname替换CSS选择器。
0

即使像w3schools这样的'技术'网站仍然报告IE6的市场份额为17%,你的浏览器受众将决定你支持你的支持。

这就是说,如果你要支持它,显然你需要替代品。

我读了另一个关于只针对IE8昨天在stackoverflow有趣的线索,并且我怀疑支持每个浏览器会更容易,如果你可以瞄准他们。我在.NET环境和使用的方法,有人张贴了关于一半时该线程,这样我的CSS选择器可以很容易地变为:

body > div {width: 760px;} 
.IE6 div.header, .IE6 div.content, .IE6 div.footer { width: 760px; } 

很明显,你会发现自己的靶向浏览器的方式,但CSS将等同于类似的东西。

1

如果你从progressive enhancement的角度来看你的网站设计,那么你应该没问题,因为更现代的浏览器会比使用ie6更好的体验。如果你只是想削减角落或节省开发时间,那么你必须做出选择,如果ie6用户对你的网站很重要。

0

这不是开发者,而是网站所有者决定是否忽略IE6。您应该向网站所有者提供该特定网站的统计信息,然后做出决定。

如果你或者所有者决定不牺牲IE6人,那么使用那些奇特的选择器是毫无意义的。目前还有很大的缺点,并且没有上行空间。

0

对于我的网站上的每个IE6用户,我都有一个很大的红色警报,他们的浏览器很古老,他们应该下载一个真正的浏览器,比如Firefox;]这就是解决方案。如果网站管理员不会对用户说,谁会呢?

1

我认为“支持”IE6的概念是错误的想法,如果我们说不,我们只是不会允许IE6用户访问我们的网站和内容?当然不是。所以问题的关键是,你想花多少时间让IE6的浏览器像其他浏览器一样使用网站的体验。

我自己的观点是,我“支持”IE6,因为IE6的用户将能够访问网站的所有内容及其所有功能,但他们可能无法获得与Firefox 3相同的视觉或交互体验用户。

所以要回答你的问题,是的,我们可以使用CSS 2.1和3.0选择器来实现某些效果,只要内容仍然存在于IE6中并具有可接受的视觉外观即可。什么是可以接受的将取决于项目(可能是客户!)。

你的例子是一个很好的展示:

p { margin-top: 10px; } 
h1 + p { margin-top: 5px;} /* the first paragraph after the h1 tag should have a smaller margin 

这里IE6仍然会得到该段的内容,仍然会有他们之间的所有重要的空白,他们只是将不会减少第一个间距。这对于减少HTML中的混乱是一个公平的妥协方案。

另一个很好的例子是圆角。您可以使用-moz-border-radius-webkit-border-radius来获得Firefox和Safari中的圆角,从而增强您网站的视觉体验,但IE用户仍然可以获得内容,尽管只有普通的旧方角(然后有很多JavaScript解决方案可以实现这一点对于启用了JavaScript的人员)。

这一切都会在标题Progressive Enhancement

相关问题