[英]Target parent LIs only with CSS
我试图只针对“主要”UL 的直接子代的 LI。 我已经看到使用 JS 或通过稍后操纵子 LI 来逆转父 UL 效果的解决方案,但这不是我们要寻找的。 (例如,将文本放大到 1.2em 需要我们将文本缩小 0.8em 或任何数学运算,这就是为什么我们需要孩子不受影响的原因)
<ul class="siteMapMain">
<li>Operations
<ul class="siteMapSecond">
<li>Sales Development</li>
</ul>
</li>
<li>Call Center</li>
<li>Training
<ul class="siteMapSecond">
<li>Work Instruction</li>
</ul>
</li>
</ul>
因此,在此列表中,我们要将“Operations”、“Call Center”和“Training”更改为红色,但保留其他 LI。 纯 CSS,没有 JavaScript 或类似内容。
我们尝试了多种 > + ~ 运算符的组合,并没有得到想要的结果。 我们能够只针对儿童 UL 的 LI,但我们正在努力避免这种“变通”。
我们尝试了类似问题中的所有解决方案,但它们只是“相似”,没有给出预期的结果。 您应该看到的预期结果是顶级 LI 为红色,其他(“视频”、“链接”等)应为黑色。
如果需要 JsFiddle: http : //jsfiddle.net/billynair/r4h7z84g/
问题是一些属性,比如color
,是从父母继承给孩子的。
因此,如果您在li
上使用color: red
,其内部ul
子项也将继承该样式。
您可以使用initial
关键字恢复初始值。
ul.siteMapMain > li {
color: red;
}
ul.siteMapMain > li > * {
color: initial;
}
ul.siteMapMain > li{ color: red; } ul.siteMapMain > li > * { color: initial; }
<ul class="siteMapMain"> <li>Operations <ul class="siteMapSecond"> <li>Sales Development</li> </ul> </li> <li>Call Center</li> <li>Training <ul class="siteMapSecond"> <li>Videos</li> <li>Links</li> <li>Printable</li> <li>Work Instruction</li> </ul> </li> <li>Policy and Procedure</li> <li>Documents & Templates</li> <li>Links</li> <li>Reporting</li> <li>Media <ul class="siteMapSecond"> <li>Audio</li> <li>Video</li> <li>Photo</li> </ul> </li> </ul>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.