CSS:在同一水平行上选择最后一个float <li> </li>

时间:2012-01-27 23:22:56

标签: css css-float

我正在使用以下CSS来安排方框列表:

 li {
     display: block;
     float: left;
 }

我想仔细调整<li>项的边距,以便行上的最后一项(水平跨度)获得不同的边距。

是否有任何CSS选择器可以根据其位置来定位浮点元素?

4 个答案:

答案 0 :(得分:5)

通常,您最好的选择是在您的包含块上创建负右边距,例如:

<ul>
  <li>Stuff Here</li>
  <li>Stuff Here</li>
  <li>Stuff Here</li>
  <li>Stuff Here</li>
  <li>Stuff Here</li>
  <li>Stuff Here</li>
  <li>Stuff Here</li>
</ul>

<style>
 li {
     float: left;
     width: 30%;
     margin-right: 3%;
     }
 ul {
     margin-right: -3%; /* compensate for last float %/
     }


</style>

我的例子是匆匆写的,但我注意到外部的负边距不一定是。你必须摆弄。

这有帮助吗?

答案 1 :(得分:4)

简而言之,没有。浏览器应用CSS以呈现页面。完成渲染后,CSS无法知道元素的实际位置。

您需要修改HTML标记,以便实际上可以使用CSS选择器,或者您需要使用可以按顺序分析相关元素位置的JavaScript确定要修改哪一个。

答案 2 :(得分:4)

您可以使用子项nth-child选择器来定位它们。

ul li:nth-child(2){
    padding: 2px
}
ul li:nth-child(3){
    padding: 7px
}

答案 3 :(得分:2)

使用'margin-left'。如果你在父容器上使用margin-right:-3%,并且它的宽度是页面的100%,你将得到一个水平滚动条。