html - CSS:在悬停按钮上显示多个链接

标签 html css

我有一个按钮将用作导航栏的一部分。

我需要的是当用户将鼠标悬停在按钮上时,按钮文本会隐藏,并且按钮内会出现三个不同的链接。

初始按钮本身不应该有一个链接,只有悬停在它上面后出现的三个选项。

希望这是有道理的;这是一个 fiddle这可能会使它更清楚。

  <ul class="ulmenu">
  <li><a href=# class="a">Test</a></li>
  </ul>

最佳答案

最简单的,我建议如下:

<ul id="nav">
    <li>Navigation</li>
    <li><a href="#opt1">Option 1</a></li>
    <li><a href="#opt2">Option 2</a></li>
    <li><a href="#opt3">Option 3</a></li>
</ul>

使用以下 CSS:

/* default display for all 'li' elements:
*/
#nav li {
    display: inline-block;
}

/* hides the 'li' elements that follow an 'li' element,
   hides the 'li:first-child' when the 'ul' is hovered:
*/
#nav li + li,
#nav:hover li:first-child {
    display: none;
}

/* shows the 'li' elements that follow other 'li' elements,
   when the 'ul' is hovered:
*/
#nav:hover li + li {
    display: inline-block;
}

JS Fiddle demo .

针对 Rygh2014 留下的问题进行编辑,在下面的评论中:

Would this work for a vertical menu as well? I take it I would just have to switch out the inline-block?

垂直菜单完全可以,只需将 display: inline-block 切换为 display: list-item 即可:

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

#nav li + li,
#nav:hover li:first-child {
    display: none;
}

#nav:hover li + li {
    display: list-item;
}

JS Fiddle demo .

请注意,我还将 list-style-type 属性设置为 none,与任何其他 display 属性一样,没有标记(至少在 Chrome 下是这样),而对于 list-item,字形默认存在,如果您不想要它,则必须明确删除它。

关于html - CSS:在悬停按钮上显示多个链接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17774782/

相关文章:

javascript - 如何使输入字段在输入时垂直扩展而不是水平扩展?

topnav 裁剪的 CSS 下拉菜单

javascript - 动态附加 DOM 元素中包含的脚本标记不执行

javascript - 按钮什么都不做?

html - 我可以组合两个不同的 DOM 来组合选择器 :nth-child with combined indexes?

javascript - 将特定客户端逻辑应用于一组相关元素的最佳方法

html - 嵌套表中的 Colspan 样式失败

html - 链接效果 OnMouseOver

javascript - css 在不同浏览器中翻转卡片

javascript - 如何使整行可点击并更改颜色 Angular 4