CSS:取消列表开头和结尾的属性

时间:2009-07-22 19:55:52

标签: css menu styling

我有一个菜单列表。我没有使用UL / LI,只是嵌套的DIV。菜单项之间有图形分隔符。列表中的第一项需要抑制左边的填充;最后一项需要禁止右边的填充和图形分隔符。这是CSS:

.platformItem {
  float: left;
  padding: 0 12px;
  background: url(/includes/themes/02RWO/images/assets/separator.gif) no-repeat top right;
}
.platformItem .first {
  padding-left: 0 !important;
}
.platformItem .last {
  padding-right: 0 !important;
  background-image: none !important;
}

这是HTML:

<div id="platformMenu">  
  <div class="platformItem first"><a href="">All</a></div>
  <div class="platformItem"><a href="">Windows</a></div>
  <div class="platformItem"><a href="">Mac</a></div>
  <div class="platformItem"><a href="">Linux</a></div>
  <div class="platformItem last"><a href="">Web</a></div>
  <div class="Clear"></div>
</div>

我希望我可以使用修饰符类来抑制某些属性。这可能吗?有更好的方法吗?

THX。

2 个答案:

答案 0 :(得分:1)

您可以在现代浏览器中使用first-child伪选择器。但是last-child isn't supported in IE7 or IE8。您还可以查看jQuery's enhanced selectors

(文档)$。就绪(函数(){

$("div span:last-child")
    .css({color:"red", fontSize:"80%"})
});

答案 1 :(得分:1)

毕竟不需要JS。 .first和.last不是.platformItem的下游,而是来自#platformMenu。 (我应该看到这个。)新代码:

#platformMenu .first {
  padding-left: 0 !important;
}
#platformMenu .last {
  padding-right: 0 !important;
  background-image: none !important;
}