我试图仅针对“主要”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>
因此,在此列表中,我们希望将“操作”,“呼叫中心”和“培训”更改为红色,但将其他LI保留为原样。纯CSS,没有JavaScript或类似。
我们尝试了许多&gt;的组合。 +〜运算符并没有得到预期的结果。我们只能针对儿童UL的LIs,但我们正试图避免这种“解决方法”。
我们尝试了类似问题中的所有解决方案,但它们只是“相似”,没有给出预期的结果。您应该看到的所需结果是红色的顶级LI和其他(“视频”,“链接”等)应为黑色。
如果需要,JsFiddle: http://jsfiddle.net/billynair/r4h7z84g/
答案 0 :(得分:1)
问题是某些属性,如color
,从父母到孩子都是inherited。
因此,如果您在color: red
上使用li
,则其内部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>
答案 1 :(得分:0)