摆脱李最后项目计数器

时间:2009-09-10 16:36:33

标签: css html-lists

我有一个烦人的问题..我希望列表中的前4项能够编号,但我想将第五项留下编号..这是我的css:

#alternate_navigation ol
{
    display:block;
    padding:0;
    margin:0;
    counter-reset: item;
}

#alternate_navigation li
{
    display:block;
    padding:0px 0px 0px 10px; 
    margin:0;
    background: url('images/list_bg.jpg') no-repeat;
    height:19px;
    width:99%;
    border-bottom:1px solid #B9B5B2;
}

#alternate_navigation li:before 
{ 
  content: counter(item) ". "; 
  counter-increment: item ;
}

结果:

  1. 在线预订
  2. 优惠券订购
  3. 打印信件
  4. 发送电子邮件
  5. 查看订单
  6. 我怎样才能实现最后一项不能这样编号:

    1. 在线预订
    2. 优惠券订购
    3. 打印信件
    4. 发送电子邮件
        查看订单
    5. 和是HTML

      <div id="alternate_navigation">
                         <ol>
                         <li><a href="#">Online Booking</a></li>
                         <li><a href="#">Coupon Ordering</a></li>
                         <li><a href="#">Print Letters</a></li>
                         <li><a href="#">Send Emails</a></li>
                         <li><a href="#">View orders</a></li>
                         </ol>
                         <div>
      

      感谢您的回复

4 个答案:

答案 0 :(得分:1)

在您当前的CSS之后,添加:

#alternate_navigation li:last-child:before {
    content: "";
    counter-increment: none;
}

应该'重置'最后一个元素的样式。

编辑:我应该提一下,由于:last-child的使用,这在IE8中不起作用。如果你需要IE6 / 7/8兼容性,我会使用类似JQuery的东西,而不是手动插入HTML标记。

答案 1 :(得分:1)

您可以应用css类来重置计数器,如下例所示:

#alternate_navigation li.last:before
{ 
  content: ""; 
  counter-increment: none ;
}

检查我的例子:

http://www.aeon-dev.org/tests/before_pseudo_ie.html

答案 2 :(得分:1)

您使用的浏览器是否可能不支持contentcounter-reset:beforecounter-increment

我很确定IE没有,而且我不确定其他人。如果是这种情况,您只需收到默认的编号列表:简而言之,浏览器会忽略较新的CSS。

答案 3 :(得分:0)

出于好奇,在这种情况下你为什么要使用反复位?为什么不设置

list-style: decimal;

然后为你的html添加一个类到你的<li>标签,如<li class="last">

然后你可以设置

li.last { list-style: none; }