悬停时更改导航栏中文本的颜色
Change color of the text in navigation bar when hover
我希望导航栏的文本在悬停时改变颜色。我的代码有什么问题?
.HTML
<div class="nav">
<ul class="pull-left">
<li><a href="#">Ride</a></li>
<li><a href="#">Drive</a></li>
</ul>
<ul class="pull-right">
<li><a href="#">find a city</a></li>
<li><a href="#">help</a></li>
<li><a href="#">sign in</a></li>
</ul>
</div>
CSS:对于CSS部分,我不确定何时选择"a"或何时选择"li">
.nav a {
padding: 14px 10px;
text-transform: uppercase;
font-family: Avenir;
font-size: 14px;
font-weight: bold;
color: black;
text-decoration: none;
}
.nav li {
display: inline;
}
.nav {
padding-top: 30px;
padding-right: 30px;
}
.add {
color: maroon;
}
.JS
$(document).ready(function() {
$('.nav').hover(function() {
$('a').addClass('add')
}, function() {
$('a').removeClass('add')
});
});
多谢!
不需要Javascript,你可以简单地使用CSS:
您可以简单地尝试为导航>>悬停添加 css 样式,如下所示:
.nav a:hover {
color: maroon;
}
https://jsfiddle.net/Lv3tv5no/
使用类给出以下方式。
因为首先你在元素上赋予了颜色,然后你正在尝试使用类添加颜色。因此,它不会替换元素的颜色。
而不是它使用类到锚标签给出颜色。 就像这里使用.black
类一样。
$(document).ready(function() {
$('.nav').hover(function() {
$('a').addClass('add')
}, function() {
$('a').removeClass('add')
});
});
.nav a {
padding: 14px 10px;
text-transform: uppercase;
font-family: Avenir;
font-size: 14px;
font-weight: bold;
text-decoration: none;
}
.black{
color: black;
}
.nav li {
display: inline;
}
.nav {
padding-top: 30px;
padding-right: 30px;
}
.add {
color: maroon;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="nav">
<ul class="pull-left">
<li><a class="black" href="#">Ride</a></li>
<li><a class="black" href="#">Drive</a></li>
</ul>
<ul class="pull-right">
<li><a class="black" href="#">find a city</a></li>
<li><a class="black" href="#">help</a></li>
<li><a class="black" href="#">sign in</a></li>
</ul>
注意:不需要JQuery来改变颜色,你只能使用css :hover
来改变。
如果你真的坚持使用Jquery
来悬停你的菜单,你的JS
代码应该是这样的:
$('.nav li a').hover(function(){
$('li a.add').removeClass('add');
$(this).addClass('add');
}, function(){
$(this).removeClass('add');
});
你的小提琴。
注意:我在.add
中使用了!important
color: #000;
因为.nav a
中已经设置了菜单。
快速解决方案:
CSS选择器赋予了你执行此操作的能力。不需要Javascript/JQuery。
.nav:hover {
color:maroon;
}
解释:
上面的代码可以分为两部分:
- 第一个是CSS选择器:它选择所有具有
nav
类的元素,而它们被用户悬停在上面。 - 第二个是括号内的区域。您可以在此处更改元素的任何属性,当 悬停时,它们将更改,当悬停时,它们将更改回来。
CSS 选择器:
另外,这里有一些选择器的定义,只是为了消除混淆:
-
.nav:hover
选择悬停的所有nav
元素。 - 停时选择具有
nav
类的元素中的<a>
标记。 - 停时选择所有
<a>
标签。 - 类
nav
的元素中<a>
选择该元素悬停时的所有标记。
.nav a:hover
在悬.a:hover
在悬.nav:hover a
在具有还要尝试:active
正在单击/遇到鼠标按下事件的元素。
您应该使用 !important
来覆盖类add
a
的颜色。
.add {
color: maroon !important;
}
顺便说一句,您可以仅使用css来做到这一点,如下所示。
.nav:hover a {
color: maroon;
}
相关文章:
- 如何使用jquery在填充自动完成的值后使文本框只读
- 使用Clipboard.js复制span文本
- 使用JS如何动态更改显示的html文件中的文本背景颜色
- 用程序搜索JQuery数据表中的文本
- jQuery匹配JSON对象的部分文本
- onkeyup无法动态创建多个文本区域
- 如何在下面的ES6循环中获得前面的文本
- 将输入字段中的文本提交到我的数据库,同时将其添加到我的列表中
- 让文本输入幻灯片显示输入时的新文本输入?然后向后滑动
- 借助asp.net验证或java脚本对多个文本进行验证
- 无法在ajaxStart中更改跨度文本
- 高亮显示时编辑文本大小和颜色
- jquery中的文本框验证
- Javascript,有没有一种方法可以将数组写成没有逗号或空格的单个文本字符串
- Sails.js:同时发布文本输入和一个文件
- 当鼠标悬停在文本中的单词上时显示警报
- 是否有任何方法可以使用jQuery替换在数组中定义值的文本
- 语音合成不再阅读中文文本
- 我可以检测文本中的非日文中文字符吗?
- 将文本区域限制为固定数量的中文字符