Выберите все изображения, кроме изображений с определенным классом в CSS

#css #css-selectors

#css #css-селекторы

Вопрос:

Как я могу сделать заголовок без использования :not селектора или переопределения?

PS. Мне также любопытно, как я могу это сделать с :not помощью selector. Я пробовал это, но не сработало:

 #div1 #div2 img:not[.c1]{ ... }
  

Комментарии:

1. Вы должны выбрать либо :not() или переопределяет. И это :not() с круглыми скобками (круглыми скобками), а не :not[] .

Ответ №1:

Если вы не хотите использовать :not , вы должны иметь возможность использовать:

 #div1 #div2 img { /* things that apply to :not(.c1) */ }
#div1 #div2 img.c1 { /* adjustments for .c1 */ }
  

Ваш синтаксис для :not немного отличается. Из руководства fine:

Псевдокласс отрицания, :not(X) , — это функциональная нотация, принимающая простой селектор (исключая сам псевдокласс отрицания) в качестве аргумента. Он представляет элемент, который не представлен его аргументом.

Селектор классов — это простой селектор, поэтому он должен работать:

 #div1 #div2 img:not(.c1) { ... }
  

Ответ №2:

Селектор :not() поддерживается только современными браузерами (Firefox, Safari и Opera), :not(IE).

 img:not(.myimage) {…}
  

При этом выбираются все элементы изображения, у которых нет class .myimage

Надеюсь, это поможет.

Комментарии:

1. Спасибо. Я еще не использовал IE9.

Ответ №3:

Он работает с ( ), а не с [ ] . Проверьте этот пример:

 <div id="1d" class="blue"></div>
<div id="2d" class="blue"></div>
<p id="3d" class="blue"></p>
  

и css

 .blue:not(p) {
width: 100px;
height: 100px;
background-color: blue;
margin: 5px;
  

}

jsfiddle