html - 如何使用 CSS 将鼠标悬停在包括元素符号在内的整个列表元素上?

标签 html css hover

我有一个带元素符号的简单列表。我想在悬停时更改元素符号和文本的颜色。只有文本会改变颜色,元素符号不会。这是 HTML 和 CSS:

<div id="navtop">
    <ul>
    <a href="calendar.html" > 
    <li>Calendar </li>   </a>   
    </ul>
</div>      




#navtop {
     float: right;
     width: 650px;
     font-size: 1.2em;
     padding-left: 30px;    
    padding-bottom: 0px;
    height: 65px;
}


#navtop ul {
    margin-top: 20px;
    margin-left: 70px;

}

#navtop li {
    float: left;
    position: relative;
    padding-left: 10px;
    width: 280px;
}

#navtop a,  #navtop ul  {
    color: #ffd; 
    }


#navtop  ul a:hover ,   
#navtop ul a:active,
#navtop ul  li:hover,
navtop ul li:active 
{color:#f93; }

#navtop ul a:hover  li{
    color:#f93; }

最佳答案

您可以使用 CSS 伪元素实现类似于您正在寻找的东西,具体取决于您想要的元素符号样式以及是否可以使用 unicode 字符实现。

使用 list-style: none; 并用 CSS 伪元素内容替换元素符号可以让您控制颜色。

我已经将一个 jsBin 与一个小示例放在一起,这可能会帮助您解决问题 here .

您将在示例中看到,我根据类为不同的列表项涂上了不同的颜色,然后悬停时每个元素都会显示橙色元素符号和文本。

您还可以运行以下代码段;

ul {
    list-style: none;
    padding   : 0;
}

li { 
    padding-left: 16px; 
    position: relative;
}

li:before {
    position: absolute;
    left   : 4px;
    content: "•";
}
li.is--red:before {
  color: red;
}
li.is--green,
li.is--green:before {
  color: green;
}
li:hover,
li:hover:before {
  color: orange;
}
<!DOCTYPE html>
<head></head>
<body>
  <ul>
    <li class="is--red"><a>Some link</a></li>
    <li class="is--green"><a>Some other link</a></li>
    <li><a>Some other link</a></li>
  </ul>
</body>

希望对您有所帮助!

关于html - 如何使用 CSS 将鼠标悬停在包括元素符号在内的整个列表元素上?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32575509/

相关文章:

html - 标题图片和固定导航栏

html - 带有 Bootstrap 的 map 和固定侧边栏

javascript - 在 Webhost 上使用 websocket 或 APE(Ajax Push Engine)技术

javascript - 旋转后得到正确的左上角坐标

css - 使用 > 和不使用 CSS 的区别

jquery - 如何让我的悬停字幕只出现在鼠标悬停和向上/向下滑动时?

css - 模拟特定的 CSS 悬停效果

javascript - Div 覆盖 Canvas ,鼠标悬停

javascript - 隐藏 iframe 以防止内部服务器错误

javascript - 将 JavaScript 方法添加到 WordPress 的 onload 事件