html - 水平导航列表上的分隔线

标签 html css list divider

我的任务是在我公司网站的简单、未排序的导航列表上的链接之间输入一些水平条。

我已经尝试了 Vertical dividers on horizontal UL menu 上列出的每种方法,无济于事。该线程中的链接之一引导我访问 http://www.jackreichert.com/2011/07/31/how-to-add-a-divider-between-menu-items-in-css-using-only-one-selector/ ,这有效!...有点。

http://s21.postimg.org/nno183jl3/problems.jpg

这就是我现在得到的:分隔线已移至导航列表的左侧。此时我有点困惑,所以我希望你们能帮助我。

这是 HTML。 “cart_count.tpl”是右侧的购物车内容。

<div style=float:right id="topbar">
 <nav>
  <div id="thisisthecartfunction" style=float:right>
   {include file="cart_count.tpl"}</div>
  <ul style=float:right>
   <li><a href="/member">My Account</a></li>
   <li><a href="/member_wishlist">Wish List</a></li>
   <li><a href="/tracking">Order Status</a></li>
   <li><a href="/category/customer-service">Customer Service</a></li>
  </ul> 
 </nav>
</div>

这是 CSS。我知道它有点长而且困惑。

#container > header > #topbar { width: 100%; background: #f8f8f8; margin: 0 auto;}
#container > header > #topbar > nav { width: 980px; overflow: hidden; margin: 0px auto;}
#container > header > #topbar > nav > div > #cartitems {vertical-align: bottom; margin: 3px 0px 10px 10px; }
#container > header > #topbar > nav > ul {list-style-type: none; margin: 0; padding: 0;}
#container > header > #topbar > nav > ul > li {display: inline;list-style-type: none;}
#container > header > #topbar > nav > ul > li+li { border-left: 1px solid #000000 }
#container > header > #topbar > nav > ul > li > a {display: inline; float: right; background: #f8f8f8; color: #666666; text-decoration: none; vertical-align: bottom; margin: 5px 0px 10px 10px; }
#container > header > #topbar > nav > ul > li > a:hover { text-decoration: underline; }

任何帮助将不胜感激。

最佳答案

一个好的方向是使用单独的列表项作为每个分隔符的占位符,如下所示:

#topbar { width: 100%; background: #f8f8f8; margin: 0 auto;}
#topbar > nav { width: 980px; overflow: hidden; margin: 0px auto;}
#topbar > nav > ul {list-style-type: none; margin: 0; padding: 0;float:left;}
#topbar > nav > ul > li {display: inline;list-style-type: none;}
#topbar > nav > ul > li > a:hover { text-decoration: underline; }

<div id="topbar">
 <nav>
  <ul>
   <li><a href="/member">My Account</a></li>
   <li class="divider">|</li>
   <li><a href="/member_wishlist">Wish List</a></li>
   <li class="divider">|</li>
   <li><a href="/tracking">Order Status</a></li>
    <li class="divider">|</li>
   <li><a href="/category/customer-service">Customer Service</a></li>
  </ul> 
 </nav>
</div>

这样您就可以清理当前的 CSS 并对分隔线(无论是图像还是文本)进行精细控制。另请注意,我从 <div id="topBar"> 中删除了 float 。和<ul> 。您只需要在 CSS 中使用 <ul> 的 float 。 。我还删除了 #container > header >从你的 CSS 中删除,因为它是多余的 CSS。请参阅此处的工作示例:http://jsfiddle.net/QhCeH/

关于html - 水平导航列表上的分隔线,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18883866/

相关文章:

javascript - 如何只打开一个弹窗?

javascript - 用 JavaScript 隐藏一个 div 的类

php - 如何在html中单击按钮时显示文本文件

html - 在 IE 9 上滚动 tbody 的问题(tbody 的高度 = 高度线)

java - Java中高效同步列表

python - 我如何使用 Python 列表执行此操作? (元素收集器?)

list - 将列表转换为 data.map 给出类型错误

c# - 输入标签的值将 null 传输到数据库中

html - 删除仅用于登录的 Chrome 自动完成的输入背景颜色

javascript - 在 HTML DOM 树中查找元素 A 是否在元素 B 之后