CSS: last-child AND: наведите на ссылку в ul - PullRequest
0 голосов
/ 22 ноября 2018

Я задаю стиль последнему дочернему элементу навигационного меню, которое мне кажется вполне подходящим для следующего кода:

.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;
} 

Проблема возникает, когда я пытаюсь нацелить <a> напоследний ребенок при наведении.Я использую это:

.aston-menu-light ul > li > a:last-child:hover {
    color:red !important;
} 

Но, похоже, стиль всех тегов <a>, а не только последний ребенок.Я пробовал варианты, такие как: ul > li a, но я не могу заставить его работать правильно.

У меня есть Codepen здесь: https://codepen.io/shaun-taylor/pen/LXdGGN

Основной целью для этого является просто сделать последнюю ссылку на верхнем уровне красной только при наведении на нее курсора. Iугадайте - спасибо за чтение!

Ответы [ 3 ]

0 голосов
/ 22 ноября 2018

Используйте это:

.aston-menu-light ul > li:last-child a:hover {
  color:red;
}
0 голосов
/ 22 ноября 2018

Вы должны переписать

.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;
}

В любом случае он будет красным.

0 голосов
/ 22 ноября 2018

вы должны изменить

.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>
...