CSS :last-child AND :将鼠标悬停在 ul 中的 link 上
CSS :last-child AND :hover on an a link in a ul
我正在设计导航菜单的最后一个 child,我似乎可以使用以下代码来完成它:
.aston-menu-light ul > li:last-child {
border:2px solid blue;
border-radius: 50px;
padding:0 20px 0 20px;
}
.aston-menu-light ul > li > ul > li:last-child {
border:none !important;
padding:0 !important;
}
.aston-menu-light ul > li:last-child:hover {
background-color:#ffff;
-webkit-transition: all .5s;
-o-transition: all .5s;
transition: all .5s;
}
当我尝试将鼠标悬停在最后一个 child 上并瞄准 <a>
时,问题就来了。我正在使用这个:
.aston-menu-light ul > li > a:last-child:hover {
color:red !important;
}
但它似乎为所有 <a>
标签设置了样式,而不仅仅是最后一个 child。我尝试过以下变体:ul > li a
但我似乎无法使其正常工作。
我这里有一个代码笔:https://codepen.io/shaun-taylor/pen/LXdGGN
这个的主要目标只是当你将鼠标悬停在顶层的最后一个 link 上时,我猜它只变成红色 - 感谢你的阅读!
你应该改变
.aston-menu-light ul > li > a:last-child:hover {
color:red !important;
}
到
.aston-menu-light>ul>li:last-child > a:hover {
color:red !important;
}
/* CSS Document */
a {
color: black;
}
nav {
margin: 50px 0;
}
nav ul {
padding: 0;
margin: 0;
list-style: none;
position: relative;
}
nav ul li {
display:inline-block;
}
nav a {
display:block;
padding:0 10px;
color:#black;
font-size:20px;
line-height: 60px;
text-decoration:none;
}
/* Hide Dropdowns by Default */
nav ul ul {
display: none;
position: absolute;
top: 60px; /* the height of the main nav */
}
/* Display Dropdowns on Hover */
nav ul li:hover > ul {
display:inherit;
}
/* Fisrt Tier Dropdown */
nav ul ul li {
width:170px;
float:none;
display:list-item;
position: relative;
}
/* Second, Third and more Tiers */
nav ul ul ul li {
position: relative;
top:-60px;
left:170px;
}
/* Change this in order to change the Dropdown symbol */
li > a:after { content: ' +'; }
li > a:only-child:after { content: ''; }
.aston-menu-light ul > li:last-child {
border:2px solid blue;
border-radius: 50px;
padding:0 20px 0 20px;
}
.aston-menu-light ul > li > ul > li:last-child {
border:none !important;
padding:0 !important;
}
.aston-menu-light ul > li:last-child:hover {
background-color:#ffff;
-webkit-transition: all .5s;
-o-transition: all .5s;
transition: all .5s;
}
.aston-menu-light>ul>li:last-child > a:hover {
color:red !important;
}
<nav class="aston-menu-light">
<ul>
<li><a href="#">link</a>
<!-- First Tier Drop Down -->
<ul>
<li><a href="#">link</a></li>
<li><a href="#">link</a></li>
<li><a href="#">link</a></li>
</ul>
</li>
<li><a href="#">link</a>
<!-- First Tier Drop Down -->
<ul>
<li><a href="#">link</a></li>
<li><a href="#">link</a></li>
<li><a href="#">link</a></li>
</ul>
</li>
<li><a href="#">link</a></li>
<li><a href="#">link</a>
<!-- First Tier Drop Down -->
<ul>
<li><a href="#">link</a></li>
<li><a href="#">link</a></li>
<li><a href="#">link</a></li>
</ul>
</li>
<li><a href="#">link</a>
<!-- First Tier Drop Down -->
<ul>
<li><a href="#">link</a></li>
<li><a href="#">link</a></li>
<li><a href="#">link</a></li>
</ul>
</li>
<li><a href="#">link</a></li>
<li><a href="#">link</a></li>
</ul>
</nav>
使用这个:
.aston-menu-light ul > li:last-child a:hover {
color:red;
}
你应该重写
.aston-menu-light ul > li > a:last-child:hover {
color:red !important;
}
至
.aston-menu-light ul > li:last-child > a:hover {
color:red;
}
您做错的是,在所有 li
元素中,a
元素始终是最后一个子元素!因此,在所有这些中,当您悬停时它会变成红色。
您需要的是最后一个 li
元素,因此在 CSS.
中使用 li:last-child
另外,没有必要使用 !important
,因为这个 CSS 选择器比
更具体
a {
color: black;
}
反正都会红
只是为了简化它。
.aston-menu-light ul li:last-child a:hover {
color:red !important;
}
我正在设计导航菜单的最后一个 child,我似乎可以使用以下代码来完成它:
.aston-menu-light ul > li:last-child {
border:2px solid blue;
border-radius: 50px;
padding:0 20px 0 20px;
}
.aston-menu-light ul > li > ul > li:last-child {
border:none !important;
padding:0 !important;
}
.aston-menu-light ul > li:last-child:hover {
background-color:#ffff;
-webkit-transition: all .5s;
-o-transition: all .5s;
transition: all .5s;
}
当我尝试将鼠标悬停在最后一个 child 上并瞄准 <a>
时,问题就来了。我正在使用这个:
.aston-menu-light ul > li > a:last-child:hover {
color:red !important;
}
但它似乎为所有 <a>
标签设置了样式,而不仅仅是最后一个 child。我尝试过以下变体:ul > li a
但我似乎无法使其正常工作。
我这里有一个代码笔:https://codepen.io/shaun-taylor/pen/LXdGGN
这个的主要目标只是当你将鼠标悬停在顶层的最后一个 link 上时,我猜它只变成红色 - 感谢你的阅读!
你应该改变
.aston-menu-light ul > li > a:last-child:hover {
color:red !important;
}
到
.aston-menu-light>ul>li:last-child > a:hover {
color:red !important;
}
/* CSS Document */
a {
color: black;
}
nav {
margin: 50px 0;
}
nav ul {
padding: 0;
margin: 0;
list-style: none;
position: relative;
}
nav ul li {
display:inline-block;
}
nav a {
display:block;
padding:0 10px;
color:#black;
font-size:20px;
line-height: 60px;
text-decoration:none;
}
/* Hide Dropdowns by Default */
nav ul ul {
display: none;
position: absolute;
top: 60px; /* the height of the main nav */
}
/* Display Dropdowns on Hover */
nav ul li:hover > ul {
display:inherit;
}
/* Fisrt Tier Dropdown */
nav ul ul li {
width:170px;
float:none;
display:list-item;
position: relative;
}
/* Second, Third and more Tiers */
nav ul ul ul li {
position: relative;
top:-60px;
left:170px;
}
/* Change this in order to change the Dropdown symbol */
li > a:after { content: ' +'; }
li > a:only-child:after { content: ''; }
.aston-menu-light ul > li:last-child {
border:2px solid blue;
border-radius: 50px;
padding:0 20px 0 20px;
}
.aston-menu-light ul > li > ul > li:last-child {
border:none !important;
padding:0 !important;
}
.aston-menu-light ul > li:last-child:hover {
background-color:#ffff;
-webkit-transition: all .5s;
-o-transition: all .5s;
transition: all .5s;
}
.aston-menu-light>ul>li:last-child > a:hover {
color:red !important;
}
<nav class="aston-menu-light">
<ul>
<li><a href="#">link</a>
<!-- First Tier Drop Down -->
<ul>
<li><a href="#">link</a></li>
<li><a href="#">link</a></li>
<li><a href="#">link</a></li>
</ul>
</li>
<li><a href="#">link</a>
<!-- First Tier Drop Down -->
<ul>
<li><a href="#">link</a></li>
<li><a href="#">link</a></li>
<li><a href="#">link</a></li>
</ul>
</li>
<li><a href="#">link</a></li>
<li><a href="#">link</a>
<!-- First Tier Drop Down -->
<ul>
<li><a href="#">link</a></li>
<li><a href="#">link</a></li>
<li><a href="#">link</a></li>
</ul>
</li>
<li><a href="#">link</a>
<!-- First Tier Drop Down -->
<ul>
<li><a href="#">link</a></li>
<li><a href="#">link</a></li>
<li><a href="#">link</a></li>
</ul>
</li>
<li><a href="#">link</a></li>
<li><a href="#">link</a></li>
</ul>
</nav>
使用这个:
.aston-menu-light ul > li:last-child a:hover {
color:red;
}
你应该重写
.aston-menu-light ul > li > a:last-child:hover {
color:red !important;
}
至
.aston-menu-light ul > li:last-child > a:hover {
color:red;
}
您做错的是,在所有 li
元素中,a
元素始终是最后一个子元素!因此,在所有这些中,当您悬停时它会变成红色。
您需要的是最后一个 li
元素,因此在 CSS.
li:last-child
另外,没有必要使用 !important
,因为这个 CSS 选择器比
a {
color: black;
}
反正都会红
只是为了简化它。
.aston-menu-light ul li:last-child a:hover {
color:red !important;
}