以下问题适用于以下示例HTML / CSS代码:
ul {
display: inline-block;
list-style: none;
}
li {
color: #000;
}

<ul>
<li>Home</li>
<li>Portfolio</li>
</ul>
&#13;
答案 0 :(得分:0)
首先,有些事情你只是做不到选择ul
(我的意思是纯CSS解决方案,省略预处理器):
li { color: blue; }
li:first-child, li:last-child { color: red }
以及:pseudo-classes等等。
选择整个容器和定位嵌套元素的要点只是少得多写作。比较:
<ul>
<li class="my-superior-class-name"
<li class="my-superior-class-name">A</li>
<li class="my-superior-class-name">A</li>
<li class="my-superior-class-name">A</li>
<li class="my-superior-class-name">A</li>
<li class="my-superior-class-name">A</li>
<li class="my-superior-class-name">A</li>
<li class="my-superior-class-name">A</li>
</ul>
使用:
<ul class="my-superior-class-name">
<li>A</li>
<li>A</li>
<li>A</li>
<li>A</li>
<li>A</li>
<li>A</li>
<li>A</li>
</ul>
使用CSS样式定位ul
和li
的主要区别在于定位更深层次的嵌套元素具有更高的优先级。
无序列表的默认样式为:
ul {
list-style-type: disc;
list-style-position: inside;
}
所以这是仅在ul
lvl 上工作的一种属性。但是考虑一下情况,当您在padding
上设置ul
时:每个ul
个孩子都会获得相同的填充吗?来inheritance。
总的来说,有一条建议:不要过度复杂化并使用您认为最简单易懂的内容并为您回复。
答案 1 :(得分:0)
并非每个属性都是隐式继承的,事实上在OP的代码中有证明。属性display:inline-block
已应用于<ul>
,但<li>
不会继承display:inline-block
<ul>
,除非它通过display:inherit
明确使用<li>
display: inline-block
(也可能在<li>
上使用<ul>
,因为两个选项都需要同样的努力来编写。)
在某些情况下,我们应该将<li>
定位在font-size
之上,例如隐式继承的属性:color
,visibility
,{{ 1}}等。
ul {
display: inline-block;
list-style: none;
}
li {
color: #000;
}
ul:last-of-type {
display: block;
}
ul:last-of-type li {
display: inline-block;
}
<h5><mark><code>ul { display:inline-block; }</code></mark></h5>
<ul>
<li>Home</li>
<li>Portfolio</li>
</ul>
<h5><mark><code>li { display:inline-block; }</code></mark></h5>
<ul>
<li>Home</li>
<li>Portfolio</li>
</ul>