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, время: 01:12. |