文字列表间隔线写法(隐藏最后一个列表项的边框或间隔线)

发布于 2022-10-15 09:29:44 字数 2097 浏览 37 评论 0

转:李惟

文字列表间隔线写法(隐藏最后一个列表项的边框或间隔线)

在写 li / span / a 列表的时候,间隔线总会有的。假如我们用 li 的 border 模拟间隔线。
<style type="text/css" title="">
li{border-right:1px solid #000;padding:0 8px;}
</style>

<ul>
<li>first</li>
<li>second</li>
<li>etc...</li>
<li>last</li>
</ul>

这样会发现最后一个 li 也有了间隔线,这是我们不需要的。一般会在最后一个 li 的地方加个 class="last" 然后在 css 里定义:

li.last{border-right:none;}

这的确可以解决问题,有时候我们需要对 li 做个当前的样式,比如 class=“current” ,理所当然,在我们的 css 里又会定义:

li.current{background:#ccc;}

这时候 li 项目列表标签里可能会有这样的情况:

  1. <li class="current">current item</li>
  2. <li class=“current last">last current item</li>
  3. 单纯的写样式来说,不会有太多问题,多加了个 class 问题。可是对于程序员来说就是一个挑战,写 tab 时候用脚本实现一下就知道了。
  4. 有这样一种写法,加以研究 share 一下:
  5. <style type="text/css" title="">
  6. ul{display:inline-block;white-space:nowrap;*display:inline;*zoom:1;overflow:hidden;}
  7. li{display:inline;margin-right:-1px;border-right:1px solid #000;padding:0 8px;}
  8. </style>
  9. <ul>
  10. <li>first</li>
  11. <li>second</li>
  12. <li>etc...</li>
  13. <li>last</li>
  14. </ul>

复制代码这个是居中的写法是比较麻烦的一种,li居中显示,ul自适应宽度。做导航时候经常用的一种样式。
原理是利用 margin 设定负值( margin-right:-1px;)产生溢出,然后  overflow:hidden; 设定溢出隐藏。当ul或者其他的容器元素宽度一定的时候,自然不用多说,但是当宽不定的时候,就要花点功夫了。
首先 IE 里要激发一个 layout ,所以用了{*display:inline;*zoom:1;}
FF及其它里 要 {display:inline-block;}竟然折行,未知原因,所以{display:inline-block;white-space:nowrap;}
ok!至此一个横向居中,自适应宽度的有间隔列表项就搞定了。
接下来写 tab 就只要考虑一个 class="current" 就可以了,大家皆大欢喜!
ps:

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文