user-interface - 当用鼠标选中时,我需要能够更改 li 的背景颜色。仅使用 css

标签 user-interface css frontend

我有 ul 菜单,其中 li 没有 a:links,我需要能够在用鼠标选中时更改 li 的背景颜色。

    <div id="dvMainNavMenu">
        <ul id="NavItem">
        <li>Nav Item</li> 
          <li>Nav Item</li>   
          <li>Nav Item</li> 
        </ul>
    </div>

#NavItem li  {background-color: transparent; text-decoration: none; }
#NavItem li:hover {background-color: #ff8700;}
#NavItem li:focus {background-color: #ff8700;}

焦点不起作用;(有人可以帮助我吗?

最佳答案

这是可能的,只要你意识到一个非交互元素(交互元素是那些像inputselecta ...) 无法集中注意力。它可以响应:active伪类,但是一旦鼠标被释放它就不会持续存在(如果鼠标被释放,将被默认的选择操作覆盖)移动):

#NavItem li  {background-color: transparent; text-decoration: none; }
#NavItem li:hover {background-color: #ff8700;}
#NavItem li:active {background-color: #f00;}

JS Fiddle demo .

重要的是要记住 CSS 用于表示。 JavaScript(可能还有其他语言,例如 )用于 HTML 提供的内容之上的功能/行为/交互层。

使用 JavaScript 不是一种“作弊”。

关于user-interface - 当用鼠标选中时,我需要能够更改 li 的背景颜色。仅使用 css,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9641306/

相关文章:

user-interface - 如何将 MEL UI 连接到 Maya 的 UV 纹理编辑器?

html - 使用 css 转换内容

html - 带 child 的容器的高度

javascript - 将文本跨度到 div 的边缘(无空格)

c# - 暂停控件的数据绑定(bind)

c++ - 没有 .NET 框架的 GUI 简单快捷?

html - 所有浏览器的css线性渐变效果

javascript - 以渐进方式渲染渐进图像

css - 当 child 悬停时,父菜单项会更改背景

java - 使用 fx :include 时自定义 Controller 工厂