【问题标题】:Adding separator between menu items in a table menu在表格菜单中的菜单项之间添加分隔符
【发布时间】:2013-11-02 20:04:52
【问题描述】:

我有一个使用表格创建的菜单(如果可能,请提供不需要我更改为列表或其他内容的答案...对此深表歉意)

无论如何,我想在每个菜单项之间添加一个分隔符,除了被选中的项目。这意味着如果选择了一个菜单项,我希望border-right 不存在。请看附图:

如您所见,查询被选中;但是,知识菜单项的边框仍然可见。有什么办法可以去掉吗?

目前的css如下:

div#nav a{
   color: #FFFFFF;
   border-right: 1px solid red;
}

div#nav td.selected a{
   color: #004466;
   border-right: none;
}

HTML:

    <div id="nav">
      <table id="navTable" cellspacing="0" cellpadding="0">
        <tr>
            <td><a href="Knowledge">Knowledge</a></td>
            <td><a href="Enquiries">Enquiries</a></td>
            <td><a href="Contact">Contact</a></td>
        </tr>
      </table>
    </div>

是否有任何 CSS 技巧可以帮助我删除“选定”菜单项旁边的项目的右边框?注意:如果有帮助,我也可以使用左边框。

任何见解都会非常有帮助。谢谢!!

【问题讨论】:

  • 你可以试试CSS3的前后伪类coding.smashingmagazine.com/2011/07/13/…
  • 你试过css hover吗?
  • @Mindbreaker 不确定这样的事情是如何工作的。我会将 ::after 类应用于哪个元素?
  • @NewBiL 谢谢你的建议,你能给我一些关于悬停如何工作的更多见解吗?再次感谢您
  • 你也可以发布你的html吗

标签: html css menu separator


【解决方案1】:

这应该可以解决问题:

div#nav a {
   border-left: 1px solid red;
}

div#nav td:first-child a, div#nav td.selected a, div#nav td.selected + td a {
   border-left: none;
}

在此处查看小提琴:http://jsfiddle.net/zitrusfrisch/WNTBH/

【讨论】:

  • 谢谢你,丹尼尔!这太棒了,帮助解决了我的需要。谢谢
【解决方案2】:
div#nav td {
   color: #FFFFFF;
   border-right: 1px solid red;
}

div#nav td.selected {
   color: #004466;
   border-right: none;
}

【讨论】:

  • 感谢您的推荐,kozlovski5。不幸的是,这没有奏效。我已经添加了 html,也许我缺少 table#navTable?
  • 尝试删除第一个语句中的逗号,检查我更新的代码替换它,看看它是否有效
  • 为什么不尝试给 td 元素添加边框然后去掉呢?看看我上面的回答是否有帮助
  • 无论如何它都不起作用,因为 td.selected 之前的 td 仍然有边框。您无法使用右边界来摆脱它 - 但使用左边界!请参阅下面的答案(包括小提琴)。
猜你喜欢
  • 2016-01-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-04-04
相关资源
最近更新 更多