如何通过CSS选择某些兄弟姐妹?
问题:如何仅使用CSS隐藏除第一个之外的所有My Cars元素 昨天我问了一个稍微相似的问题,答案很好,但情况发生了变化,导致了进一步的问题。我只能控制CSS,所以请不要建议使用JavaScript或修改HTML 正是这些该死的因素导致了昨天的解决方案彻底失败 对于浏览器兼容性,如果解决方案不使用CSS3,我将不胜感激 有什么想法吗如何通过CSS选择某些兄弟姐妹?,css,css-selectors,Css,Css Selectors,问题:如何仅使用CSS隐藏除第一个之外的所有My Cars元素 昨天我问了一个稍微相似的问题,答案很好,但情况发生了变化,导致了进一步的问题。我只能控制CSS,所以请不要建议使用JavaScript或修改HTML 正是这些该死的因素导致了昨天的解决方案彻底失败 对于浏览器兼容性,如果解决方案不使用CSS3,我将不胜感激 有什么想法吗 <div class="wrapper"> <script></script> <script></
<div class="wrapper">
<script></script>
<script></script>
<ul class="cars">
<li class="headline">My Cars</li>
<li>Ferrari</li>
<li>Hummer</li>
</ul>
<noscript></noscript>
<script></script>
<script></script>
<ul class="cars">
<li class="headline">My Cars</li>
<li>Volvo</li>
<li>Caddilac</li>
</ul>
<noscript></noscript>
<script></script>
<script></script>
<ul> etc....
</div>
它在所有标准浏览器中都兼容请参见此处的兼容性:
它在所有标准浏览器中都是兼容的。请参见此处的兼容性:使用CSS2可能是不可行的,除非您能够以某种方式修改HTML,例如在第一个ul中包含第一个类。如果不能触摸HTML,我就无法想出CSS2选择器 但如果这两个问题的答案都是肯定的: 你所有的li.headline都是ul元素吗 您的div.wrapper是否只包含script、noscript或ul元素作为子元素 然后使用CSS3选择器就很容易了:
li.headline {
display: none;
}
使用CSS2可能是不可行的,除非您能够以某种方式修改HTML,例如在第一个ul中包含第一个类。如果不能触摸HTML,我就无法想出CSS2选择器 但如果这两个问题的答案都是肯定的: 你所有的li.headline都是ul元素吗 您的div.wrapper是否只包含script、noscript或ul元素作为子元素 然后使用CSS3选择器就很容易了:
li.headline {
display: none;
}
如果您的确切HTML结构没有高于第一组元素的值,那么这将起作用:
.wrapper > ul:first-of-type ~ ul li.headline {
display: none;
}
不过我非常不喜欢它,因为它太易碎了。我宁愿使用JavaScript,也不愿使用那个讨厌的东西
见:
这将适用于IE7+和现代浏览器。如果您的确切HTML结构没有高于第一组元素的元素,则这将起作用:
.wrapper > ul:first-of-type ~ ul li.headline {
display: none;
}
不过我非常不喜欢它,因为它太易碎了。我宁愿使用JavaScript,也不愿使用那个讨厌的东西
见:
这将在IE7+和现代浏览器中起作用。如果只显示第一个,难道不是相反吗?@BoltClock-显然没有做到这一点。是的,除非你有权访问html来更改周围的类,否则单靠CSS是做不到的。@blankabout是的,我隐藏除第一个之外的所有内容还是只显示第一个并不重要。如果只显示第一个,这不是另一种方式吗?@BoltClock-显然没有做到这一点。是的,除非你有权访问html来更改周围的类,否则单靠CSS是做不到的。@blankabout是的,我是隐藏除第一个之外的所有内容还是只显示第一个并不重要。为什么所有这些标记都在那里?我知道,我知道,你说不要建议修改HTML,但拥有所有这些s代表了糟糕的设计。是的,我知道。并同意。脚本标签与插入的广告有关。。。。可悲的是,我对此无能为力。第一组元素肯定没有元素吗?是的,肯定是这样。为什么所有的标签都在那里?我知道,我知道,你说不要建议修改HTML,但拥有所有这些s代表了糟糕的设计。是的,我知道。并同意。脚本标签与插入的广告有关。。。。遗憾的是,我对此无能为力。第一组元素肯定没有元素吗?是的,肯定是这样。我把CSS3解决方案放在那里作为最后的努力。至少它适用于支持它的浏览器。你的两个问题的答案都是肯定的。这个解决方案很好,因为我使用的是FF4。不过,你知道有一个更新良好的网站,上面有哪些浏览器支持~selector/operator?@Foad Farkhondeh:大多数通用浏览器都支持它,包括IE7+。@Foad Farkhondeh:这是你必须担心的第一种类型。这只是IE9+而已。我把CSS3解决方案作为最后的努力放在那里。至少它适用于支持它的浏览器。你的两个问题的答案都是肯定的。这个解决方案很好,因为我使用的是FF4。不过,你知道有一个更新良好的网站,上面有哪些浏览器支持~selector/operator?@Foad Farkhondeh:大多数通用浏览器都支持它,包括IE7+。@Foad Farkhondeh:这是你必须担心的第一种类型。这只是IE9+而已。