如何设计不同的李

时间:2012-03-17 05:43:42

标签: html css css-selectors

我想为不同的li添加不同的样式,结果应该是这样的

test one  | test two | test three

#nav ul,
li {
  list-style-type: none;
}

#nav ul li {
  float: left;
  height: 45px;
  padding: 8px;
  width: 100px;
}

#nav ul li .border {
  border-left: 1px solid #ccc;
}

#nav ul li a {
  color: red;
  font-size: 15px;
}

#nav ul li a:hover {
  color: blue;
}
<div id="nav">

  <ul>
    <li>test one</li>
    <li class="border">test two</li>
    <li class="border">test three</li>
  </ul>

</div>

6 个答案:

答案 0 :(得分:2)

这样写:

li + li{
 border-left:1px solid #ccc;
}

选中此http://jsfiddle.net/fpQ8y/

#nav ul,
li {
  list-style-type: none;
}

#nav ul li {
  float: left;
  height: 45px;
  padding: 8px;
  width: 100px;
}

#nav ul li+li {
  border-left: 1px solid red;
}

#nav ul li a {
  color: red;
  font-size: 15px;
}

#nav ul li a:hover {
  color: blue;
}
<div id="nav">

  <ul>
    <li>test one</li>
    <li class="border">test two</li>
    <li class="border">test three</li>
  </ul>

</div>

答案 1 :(得分:1)

您可以为所有li和&amp;添加左边框。首先将其删除。

#nav ul li {
float:left;
height:45px;
padding:8px;
width:100px;
border-left:1px solid #cb2326;
}

#nav ul li:first-child {border:none;}

检查这个小提琴:http://jsfiddle.net/Squeg/

答案 2 :(得分:0)

所以只需使用id而不是类来单独选择每个列表项并应用所需的样式。你必须为每个li重复一些代码。

   <li id="li1">test one</li>
   <li id="li2">test two</li>
   <li id="li3">test three</li>

CSS

ul {
    list-style-type: none;
}
#li1 {
    border-left:1px solid #ccc;
    float:left;
    height:45px;
    padding:8px;
    width:100px;
}
#li1 a {
    color:red;
    font-size:15px;
}
#li1 a:hover {
    color:blue;
}

并重复其余的id,为每个单独的项目改变你想要的任何内容。

答案 3 :(得分:0)

您好,您可以通过第一个和第一个获得结果最后一个子属性例如看到链接: - http://jsfiddle.net/nFfzy/

答案 4 :(得分:0)

这是你可以做的。

The Demo

这是使用CSS3 :first-of-type:nth-of-type属性的更好方法。

nav ul {
  list-style-type: none;
}

nav ul li {
  float: left;
  height: 45px;
  padding: 8px;
  width: 100px;
}

nav ul li:first-of-type {
  border-right: 2px solid #ff4500;
}

nav ul li:nth-of-type(2n) {
  border-right: 2px solid #ff0450;
}

nav ul li a {
  color: #222;
  text-decoration: none;
  text-transform: uppercase;
}

nav ul li a:hover {
  color: #ff0450;
}
<nav>
  <ul>
    <li><a href=#>test one</a></li>
    <li><a href=#>test two</a></li>
    <li><a href=#>test three</a></li>
  </ul>
</nav>

答案 5 :(得分:0)

另一种解决方案, 只需更改此CSS:

#nav ul li .border {
  border-left: 1px solid #ccc;
}

通过这个:

#nav ul li:nth-child(2) {
  border-left: 1px solid #ccc;
  border-right: 1px solid #ccc;
}