Выберите <figure>, если он содержит <iframe>

Как выбрать <figure> только тогда, когда он содержит <iframe>?

Мне нужно выбрать это figure:

<figure>
   <iframe></iframe>
</figure>
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Введение в CSS
Введение в CSS
CSS является неотъемлемой частью трех основных составляющих front-end веб-разработки.
Как выровнять Div по центру?
Как выровнять Div по центру?
Чтобы выровнять элемент <div>по горизонтали и вертикали с помощью CSS, можно использовать комбинацию свойств и значений CSS. Вот несколько методов,...
Навигация по приложениям React: Исчерпывающее руководство по React Router
Навигация по приложениям React: Исчерпывающее руководство по React Router
React Router стала незаменимой библиотекой для создания одностраничных приложений с навигацией в React. В этой статье блога мы подробно рассмотрим...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
Toor - Ангулярный шаблон для бронирования путешествий
Toor - Ангулярный шаблон для бронирования путешествий
Toor - Travel Booking Angular Template один из лучших Travel & Tour booking template in the world. 30+ валидированных HTML5 страниц, которые помогут...
1
0
67
3
Перейти к ответу Данный вопрос помечен как решенный

Ответы 3

Вы можете использовать селектор :not:

figure:not(:empty):not(:has(img)) {
  /* Your styles here */
}```

Наверное, лучше использовать figure:has(iframe):not(:has(img)) вместо :not(:empty)

Daniel Beck 18.03.2024 18:00

Возможно, мне нужно перефразировать свой вопрос. Я уверен, что должно быть более простое решение. Как выбрать все <фигуры>, содержащие <iframe>?

user2991837 18.03.2024 18:04

Именно то, что делает ответ @DanielBeck;)

Philippe 18.03.2024 18:10
Ответ принят как подходящий

Вы можете использовать псевдокласс :has():

figure:has(iframe) {
  background-color: red;
}
<figure>
  With iframe
  <iframe></iframe>
</figure>
<figure>
  With image
  <img>
</figure>
figure:has(iframe)

делает этот трюк

Селектор CSS :has помогает выбирать элементы, содержащие элементы, соответствующие селектору, который вы передаете в функцию :has(). По сути, это «родительский» селектор, хотя он гораздо более полезен. Например, представьте, что вы можете выбрать все <div>, но только если они содержат <p>. https://developer.mozilla.org/en-US/docs/Web/CSS/:имеет

В «Можно ли использовать» указано: «С декабря 2023 года эта функция работает на новейших устройствах и основных версиях браузеров».

Имхо, не очень честно менять свой первоначальный вопрос, чтобы дать себе тривиальный ответ:/

Philippe 18.03.2024 18:29

Спасибо за вашу помощь всем. Я не знал о :has(), так что для меня это не был «тривиальный» ответ. Я изменил свой вопрос только тогда, когда стало очевидно, что его необходимо изменить. Я не думаю, что мне будет полезен ответ на мой собственный вопрос? И это определенно не было моим намерением. Я ответил, чтобы другие могли видеть код :has().

user2991837 18.03.2024 21:01

Другие вопросы по теме