2009-06-05 53 views
2

的UL考虑下面的HTML应用样式到最后李:与CSS/jQuery的

<ul> 
    <li><div>Some content</div></li> 
    <li><div>some more content</div></li> 
    <li><div>final content</div></li> 
</ul> 

我想申请围绕每个DIV顶部边框。在最后一个div上,我想放置一个底部边框。我针对的是IE7/8。我有顶部边框工作正常,我需要帮助获取底部边框。

我已经试过:

ul > li:last-child > div 
    { 
     border-bottom: solid 1px black; 
    } 

我还用最后型的尝试。

我要寻找一个解决方案CSS和jQuery的解决方案

+0

感谢保罗....甚至没有注意到HTML丢失 – JoshBerke 2009-06-05 14:51:54

回答

7

为什么你有一个<div><li>里面?没有这个完全可能。

不管怎么说,这是怎么用jQuery做到这一点:

$('ul > li:last-child > div').css('border-bottom','1px solid black'); 
+0

好好问题可能不需要它,我需要一个背景颜色,因为列表中的不同事物具有不同的颜色背景。当我将背景放在li上时,我认为它不起作用,但现在我认为这可能是一个无关的问题 – JoshBerke 2009-06-05 14:58:28

2

:last-child没有在IE7的工作(不知道在IE8),所以你必须做的jQuery的路线。你的CSS行了几乎相同的方式来选择将在jQuery的工作:

$('ul > li:last > div').addClass('someclass'); 
0
$("#yourUL li:last div").css({'border-bottom':'solid 1px black'}); 
+0

这似乎并没有工作.... – JoshBerke 2009-06-05 14:59:56

+0

我有一个错误在CSS - 现在修复。 – 2009-06-05 15:05:22

4

这里有一个CSS唯一的解决办法:

应用底部边框的UL认证。为了使它跨浏览器工作,请从ul中删除填充并用空白填充列表。

ul.border {border-bottom:1px solid #000;padding:0;margin-left:40px;} 
ul.border li {border-top:1px solid #000;} 

<ul class="border"> 
    <li>Some content</li> 
    <li>some more content</li> 
    <li>final content</li> 
</ul> 
5

:最后一个孩子是CSS3,不像:第一胎这是在CSS2推出,并且没有IE浏览器的支持,同时。我相信下面是实现它使用jQuery

$('li').last().addClass('someClass'); 
1

我不知道你为什么需要“<div>”里面的“<li>”最安全的方式,但如果你不需要它,你可以简单地使用:

ul > li:last-child { 

我测试了它,并在Chrome,ie8,firefox和safari中为我工作。