Есть ли способ нацелить элемент в зависимости от того, что внутри него? - PullRequest
2 голосов
/ 01 апреля 2009

На моей странице есть гиперссылки, выполненные в индивидуальном стиле, а также много изображений с гиперссылками. Я не хочу, чтобы эти пользовательские стили появлялись на гиперссылках, которые содержат только изображения. Вместо добавления отдельного класса (т. Е. «Ноздай») к каждому гиперссылочному изображению, могу ли я как-то нацелить гиперссылочные изображения из моей таблицы стилей?

Ответы [ 4 ]

5 голосов
/ 01 апреля 2009

Вы не можете напрямую выбрать родителя соответствующего элемента в CSS. Есть обходные пути с js (например, поиск элементов и применение атрибутов класса к их родительским узлам), но кажется немного неуклюжим. Вы бы предпочли изменить структуру документа, чтобы найти более подходящее решение.

1 голос
/ 01 апреля 2009

конечно, просто используйте

a img {
  // your style here...
}

, если вы хотите настроить таргетинг только на изображения в пределах определенного класса ссылок, используйте

a.yourclass img {}
0 голосов
/ 01 апреля 2009

нет необходимости в якорном классе.

a[rel="image"] img {}
0 голосов
/ 01 апреля 2009

Судя по тому, что вы спрашиваете, ответ - нет. Вы не можете идти назад в CSS только вперед.

Как упомянул Theo.T, у вас может быть обходной путь JS.

Одна из идей состоит в том, чтобы выполнить проверку элемента innerHTML, чтобы определить, есть ли внутри элемента тег image, и если это так, измените element.className = "nostyle"; но это грязный обходной путь, и к тому моменту, когда вы получите правильный синтаксис в JS (и кросс-браузер), вы могли бы заново пересмотреть ваш документ.

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