我们可以在实践中使用CSS 2.1选择器吗?

我们可以在实践中使用CSS 2.1选择器吗?,css,cross-browser,css-selectors,Css,Cross Browser,Css Selectors,这个问题背后的罪魁祸首当然是IE6,(几乎)每个人都同意网站应该支持IE6,因为超过15%的访问者使用它() IE6不支持CSS 2.1,所以我们可以在样式表中使用CSS 2.1选择器吗?让我举一个例子: <body> <div class="header"> </div> <div class="content"> <h1>Title</h1> <p>Fi

这个问题背后的罪魁祸首当然是IE6,(几乎)每个人都同意网站应该支持IE6,因为超过15%的访问者使用它()

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>
但是IE6不理解这一点,所以无论如何,为了与浏览器兼容,我应该这样写:

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 */
.header, .content, .footer  { width:760px; }

也许我必须给第一段起一些类名,并在css中这样定义它。我可以制定一个具体的定义这些规则,但这似乎是双重的(在第一段需要类名的情况下仍然没有帮助)…

如果你真的想100%支持IE6,那么你应该避免使用无法使用的CSS。使用这些花哨的选择器的原因之一是为了让你的生活更轻松,但如果你不得不为IE6重写它们,它不会让你的生活更轻松。最后,像这样花哨的选择器是,所以可能只是避免它们一起使用。

如果你真的想100%支持IE6,那么你应该避免使用CSS,因为CSS不适用于IE6。使用这些花哨的选择器的原因之一是为了让你的生活更轻松,但如果你不得不为IE6重写它们,它不会让你的生活更轻松。最后,像这样的花式选择器是,所以可能只是避免它们一起使用。

  • Javascript与JQuery类似
  • CSS黑客。但我不建议这样做。因为它不是W3C标准
  • CSS类名。使用CSS类名替换CSS选择器
      • Javascript与JQuery类似
      • CSS黑客。但我不建议这样做。因为它不是W3C标准
      • CSS类名。使用CSS类名替换CSS选择器

      您的浏览器用户将决定您所支持的内容,正如您已经说过的,即使是像w3schools这样的“科技”网站也报告说IE6在3月份的市场份额为17%

      也就是说,如果你要支持它,显然你需要其他选择

      昨天我读了另一篇有趣的文章,内容是关于只针对IE8,我怀疑如果你能针对它们,支持每种浏览器会更容易。我在.net环境中,使用的方法是有人在该线程的一半发布的方法,这样我的CSS选择器就可以很容易地变成:

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

      显然,你会找到自己针对浏览器的方法,但CSS将等同于类似的东西。

      你的浏览器用户将决定你支持什么,正如你已经说过的,即使是像w3schools这样的“技术”网站,也报告说IE6在三月份的市场份额为17%

      也就是说,如果你要支持它,显然你需要其他选择

      昨天我读了另一篇有趣的文章,内容是关于只针对IE8,我怀疑如果你能针对它们,支持每种浏览器会更容易。我在.net环境中,使用的方法是有人在该线程的一半发布的方法,这样我的CSS选择器就可以很容易地变成:

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

      显然,你会找到自己针对浏览器的方法,但是CSS将等同于类似的东西。

      如果你从一个角度来看待你的网站设计,那么你应该会很好,因为更现代的浏览器只会比那些使用ie6的浏览器获得更好的体验。如果你只是想省钱或节省开发时间,那么你必须选择ie6用户对你的网站是否重要。

      如果你从一个角度来看待你的网站设计,那么你应该很好,因为更现代的浏览器只会比使用ie6的浏览器获得更好的体验。如果你只是想省钱或节省开发时间,那么你必须选择ie6用户对你的网站是否重要。

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


      如果您或所有者决定不牺牲IE6人员,那么使用这些花式选择器就毫无意义。有很大的负面影响,到目前为止还没有正面影响。

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


      如果您或所有者决定不牺牲IE6人员,那么使用这些花式选择器就毫无意义。有很大的负面影响,但到目前为止还没有正面影响。

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

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

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

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

      因此,为了回答您的问题,我们可以使用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仍然会得到段落内容,它们之间仍然会有所有重要的空白,它们只是wo