:第一个孩子定位所有子元素
我有一个无序列表,其ID为“导航”和一些子列表项元素。:第一个孩子定位所有子元素
我想选择第一个项目与:first-child
,但它是应用我用这个CSS到所有其他列表项目。
ul#navigation li:first-child{
background:#fff;
}
因此,重申:这是给每个列表项目一个白色的背景。我只想选择第一个元素。出了什么问题?
根据该意见,你的问题是,您的标记看起来像这样:
<ul id="navigation">
<a href="http://google.com">
<li>Google</li>
</a>
</ul>
注意如何每li
将这种模式下:first-child
。我建议你在你的列表项目中使用更合适的嵌套锚点结构。如果你想锚,填补了列表项,设置其显示到块:
<ul id="navigation">
<li><a href="http://google.com">Google</a></li>
</ul>
并结合CSS:
#navigation a { display: block }
一旦你有了到位的结构性变化,你的选择应该定位第一个列表项:
/* > to target only immediate list items */
#navigation > li:first-child {
background: red;
}
这可以工作,但在链接中添加'display:block'并不会在div的整个区域中生效。 –
@MarkLyons对列表项目来说,填充/边距可能会妨碍您的审美。你可以把你的页面在线,或者在http://jsfiddle.net上做一个演示吗? – Sampson
是的,李有一个顶部和底部填充。我在链接中添加了'width:100%',并将填充移至链接样式。一切顺利,谢谢! –
对我来说工作得很好:http://jsfiddle.net/HyKFJ/。发布您的HTML。 – Blender
我正要这样做,但意识到我正在用链接包围每个列表项目。我想保持这种方式,因为我希望整个李是一个链接,但这会导致这个问题。 –
@MarkLyons不要用链接包围你的'li';而是将链接'display'属性设置为'block'。 – Sampson