2016-11-21 3 views
0

Я хотел бы изменить внешний вид всех якорных тегов в теле, за исключением тех, в navbar, я попробовал:Выберите все тело, кроме класса в теле

a:not(.navbar) a { 
    color: #333; 
} 

a:hover:not(.navbar): { 
    color: #999; 
} 

Но это не работает, все теги стал таким же. Возможно ли это?

EDIT: У меня есть и другие атрибуты, такие как переходы, поэтому я не могу установить восстановление значений для остальных.

ответ

2

Я думаю, что коды вполне понятны, но я объясню:

Выбрать все дивы, кроме тех, с классом «NavBar», а также ко всем ссылкам внутри тех, применяется определенные стили.

div:not(.navbar) a { 
    color: #333; 
} 

div:not(.navbar) a:hover { 
    color: #999; 
} 

div:not(.navbar) a { 
 
    color: red; 
 
} 
 
div:not(.navbar) a:hover { 
 
    color: green; 
 
}
<div> 
 
    <a href="#">link</a> 
 
</div> 
 

 
<div class="navbar"> 
 
    <a href="#">link should NOT be red</a> 
 
</div> 
 

 
<div> 
 
    <a href="#">link</a> 
 
</div>

+0

'*: not (.navbar) a' также должен работать. – n00dl3

+0

@ n00dl3 он должен, но я не уверен, что его [хорошо для производительности] (https://stackoverflow.com/questions/1714096/why-is-the-css-star-selector-considered-harmful) – Alvaro

+0

Это было бы также работает для элемента, не связанного с div div – n00dl3

3

Вы пробовали выбрать .navbar a теги и восстановление их значения?

a { 
    color: #333; 
} 

a:hover { 
    color: #999; 
    transition: color 2s; 
} 

.navbar a, 
.navbar a:hover { 
    color: initial; 
    transition: none; 
} 
+0

Извините, что не упомянул выше, но у меня есть и некоторые другие атрибуты, куча переходов, выше было только для того, чтобы овладеть логикой. – pleasega

+0

Вы все равно сможете сохранить их; просто переопределите [спецификацию CSS] (https://developer.mozilla.org/en-US/docs/Web/CSS/Specificity) для селекторов типа .navbar a' с свойством 'color:'. –

+0

Переходы и все остальные стили будут по-прежнему присутствовать. вы только перезаписываете то, что вам нужно. И, в общем, лучше использовать селектор/псевдоселектора, которые имеют достаточно кросс-браузерную поддержку (и ': not' здесь не подходят). – n1kkou

Смежные вопросы