说这是我的设置:
<ul id="filters">
<li><a href="#">Any distance</a></li>
<li><a href="#">10 km</a></li>
<li><a href="#">30 km</a></li>
<li><a href="#">50 km</a></li>
</ul>
在我的CSS中,我如何根据其所在的UL来设置列表的样式?我试过这个:
#filters ul li {
padding: 10px;
}
但我没有任何运气,对此有几种不同的变化。我知道这是一个基本问题,但我还在学习。
答案 0 :(得分:4)
您的选择器不符合您要实现的目标:
#filters ul li {
padding: 10px;
}
#filters ul li
将选择li
元素,这些元素是ul
的后代,后者是id="filters"
元素的后代。
你想:
#filters li {
padding: 10px;
}
答案 1 :(得分:1)
你只想:
#filters li {
padding: 10px;
}
目前不起作用的原因是因为它说ul
INSIDE是一个ID为#filters
的元素。 (例如<div id="filters"><ul>...
)
为列表设置样式的另一种正确方法是ul#filters li
。这表示您需要一个ID为“过滤器”的ul
元素。但这是不必要的,因为你只能有一个ID为“filters”的元素。
答案 2 :(得分:1)
你的选择器错了。
下面是一些可以正常工作的替代选择器:
ul#filters li {
padding: 10px;
}
上述选择器将应用于具有ID“filter”的任何UL元素的LI元素。该选择器具有最高的特异性(在给定的上下文中)。这是关于特异性http://coding.smashingmagazine.com/2007/07/27/css-specificity-things-you-should-know/
的好文章#filters li {
padding: 10px;
}
上面的选择器将应用于具有ID“filter”的元素的LI元素。
#filters * {
padding: 10px;
}
上面的选择器将应用于具有ID“过滤器”的元素的任何元素。我不建议你使用它,但你可以因为根据W3C必须在UL元素后面跟着LI元素。
答案 3 :(得分:0)
#filters
本身就是ul
,你必须选择这样的孩子:
ul#filters li {
padding: 10px;
}
但是,由于ID是唯一的,因此您可以省略ul
:
#filters li {
padding: 10px;
}
答案 4 :(得分:0)
请改为尝试:
#filters li {
padding: 10px;
}
答案 5 :(得分:-2)
需要
ul#filters li{some code}
您将id或类放在元素名称后面。
或只是
#filters li{your code}