我的结构如下:
<div style="">
<ul>
<h1>Some text</h1>
<div class="border">
<li><a href="#">Some text</a></li>
</div>
</ul>
<ul>
<h1>Some text</h1>
<div class="border">
<li><a href="#">Some text</a></li>
</div>
</ul>
</div>
我想选择div.border:last-child,但是当我写入我的css文件时
//css-file//
.border:last-child: solid 1px black;
//or//
div .border:last-child: solid 1px black;
//or//
div ul .border:last-child: solid 1px black;
问题是我的伪类:last-child被忽略,所有带边框类的div都被设置为样式,我只想让最后一个孩子获得边框。
这是一个例子: http://jsfiddle.net/H3uKp/
我正在使用谷歌浏览器
答案 0 :(得分:3)
您的标记不正确,ul
元素不能包含li
以外的任何其他子元素,您可以做的就像这样
<ul>
<li></li>
<li><div></div></li>
</ul>
而不是使用
ul li:last-of-type {
border: /* Whatever */ ;
}
如果你想要使用div而不是
ul li:last-of-type div {
border: /* Whatever */ ;
}
答案 1 :(得分:0)
实际上,另一种方法就是这样
<div style="">
<ul>
<h1>Some text</h1>
<li><a href="#">Some text</a></li>
<h1>Some text</h1>
<li><a href="#">Some text</a></li>
</ul>
然后只需添加样式
li {
border: 1px solid black;
}
li:last-child {
border: none;
}
在jsFiddle中对此进行了测试,它运行正常。