CSS выбрать все элементы, содержащие фон
Есть ли такой селектор/выборка в CSS (возможно с помощью jq), который бы выбрал все элементы, содержащие background-image?
Например:
<style>
.div1{background-image:url(image1.png);}
.div4{background-image:url(image4.png);}
.div5{background-image:url(image5.png);}
</style>
<div class='div1'>1</div>
<div class='div2'>2</div>
<div class='div3'>3</div>
<div class='div4'>4</div>
<div class='div5'>5</div>
нужно выбрать все элементы, в которых есть свойство background-image. т.е. в итоге должны быть выбраны 1, 4 и 5 див. |
Нет, css не может создавать правила, которые опираются на значения из правил - это бы приводило к постоянным вечным циклам.
Если же свойство прописано в style самого элемента(<div style='background-image: url(...)'>5</div>) - то можно наговнокодить с помощью селектора атрибутов: div[style*='background-image"]. С помощью js возможно всё. Например можно получить все div и перебрать текущий стиль:
var $divsWithBackgroundImage = $('div').filter(
(_, el) => getComputedStyle(el).backgroundImage !== 'none'
);
Но делать этого не надо. Это говно.Твоя задача, какой бы она не была, решается иным способом. |
tp-20,
мысли сходятся Цитата:
<!DOCTYPE HTML>
<html>
<head>
<title>Untitled</title>
</head>
<body>
<style>
.div1 {
background-image: url(image1.png);
}
.div4 {
background-image: url(image4.png);
}
.div5 {
background-image: url(image5.png);
}
.red {
color: red;
}
</style>
<div class='div1'>1</div>
<div class='div2'>2</div>
<div class='div3'>3</div>
<div class='div4'>4</div>
<div class='div5'>5</div>
<script>
document.querySelectorAll('div').forEach(div => {
let url = getComputedStyle(div).backgroundImage.includes('url');
div.classList.toggle('red', url);
})
</script>
</body>
</html>
|
Цитата:
а как записать это же в jquery? |
Цитата:
|
Цитата:
Цитата:
<!DOCTYPE HTML>
<html>
<head>
<title>Untitled</title>
</head>
<body>
<script src="https://code.jquery.com/jquery-latest.min.js"></script>
<style>
.div1 {
background-image: url(image1.png);
}
.div4 {
background-image: url(image4.png);
}
.div5 {
background-image: url(image5.png);
}
.red {
color: red;
}
</style>
<div class='div1'>1</div>
<div class='div2'>2</div>
<div class='div3'>3</div>
<div class='div4'>4</div>
<div class='div5'>5</div>
<script>
$('div').each((_, div) => {
const url = getComputedStyle(div).backgroundImage.includes('url');
$(div).toggleClass('red', url);
})
</script>
</body>
</html>
|
ksa,
:) |
| Часовой пояс GMT +3, время: 08:39. |