как исключить указанное значение c в css - PullRequest
1 голос
/ 28 апреля 2020

Я бы хотел исключить все (html) элементы, для которых атрибут "lang" не установлен как "en".
Я знаю, что есть: not (псевдоэлемент),
но если я установлю
body[lang=en] span:not([lang=en]) {display: none;}
, то получу в результате невидимые все элементы span (независимо от того, имеют ли они атрибут lang), которые не имеют "lang = en", поэтому не только , но и .
Можно было бы исключить только элемент, который имеет атрибут lang - отличается от "en"?

Ответы [ 2 ]

3 голосов
/ 28 апреля 2020

из комментария

span[lang]:not([lang="en"]){display:none;} выглядит так, как вам нужно. Он фильтрует каждый диапазон, имеющий атрибут lang, затем исключает те, которые имеют атрибут lang со значением, равным en.

span[lang]:not([lang="en"]) {
  display: none;
}
<span lang="de">Deutch</span><br>
<span class="myclass">myclass 'n no lang</span><br>
<span lang="en">English</span>

Это работает для диапазона, [lang]:not([lang="en"]) будет работать для любого элемента, если спецификация селектора достаточно высока. будьте осторожны, если тело имеет язык, отличный от en, ничего не будет показано.

1 голос
/ 28 апреля 2020

Вы можете сначала убедиться, что они имеют атрибут [lang], а затем нацелить на не-Engli sh только с ...

span[lang]:not([lang="en"])

span {
  display: block;
  padding:1em;
}

span[lang]:not([lang="en"]) {
  display:none;
}
<span lang="en">English</span>

<span lang="de">German</span>

<span>Raw span</span>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...