Почему не исчезает картинка?
Хочу на этом сайте https://zety.com/resume-templates (у себя в браузере) убрать картинку слева (треугольники под словом "zety").
Набираю в консоли
[].forEach.call(document.getElementsByTagName("div"), a=>{a.style.backgroundImage = "none"});
после чего он даже в HTML-коде пишет: <div class="grid" style="background-image: none;"> однако картинка никуда не исчезает. И консоль показывает следующий CSS:
.jumbotron>div:before {
top: 0;
left: -8rem;
width: 17.6rem;
height: 11.3rem;
background-image: url([url]https://cdn-images.zety.com/images/zety/landings/templates/introduction-left.png);[/url]
background-size: auto 11.3rem;
}
только все строки, кроме " background-image: url(https://cdn-images.zety.com/images/zety/landings/templates/introduction-left.png);" зачёркнуты. Почему картинка не исчезает, и инлайновая надпись style="background-image: none;" просто игнорируется? |
Разницу меж div и div:before чуешь?
|
Цитата:
[].forEach.call(document.getElementsByTagName("div:before"), a=>{a.style.backgroundImage = "none"});
не работает |
Из js - добавить на страницу <style>, переписывающий соответствующее правило. Или, если стили грузятся с того же домена, убрать правило напрямую из cssRules.
|
Цитата:
var style = document.createElement('style');
style.innerHTML = `
.jumbotron>div:before {
top: 0;
left: -8rem;
width: 17.6rem;
height: 11.3rem;
background-size: auto 11.3rem;
} `;
document.head.appendChild(style);
|
jaroslav.tavgen,
const style = document.createElement('style');
style.textContent = `.jumbotron>div:before {
background-image: none;
}`;
document.body.append(style);
|
Но возник другой вопрос: почему не работает это?
var style = document.createElement('style');
style.innerHTML = `
div:before {
background-image: none;
}`;
document.head.appendChild(style);
и это:
const style = document.createElement('style');
style.textContent = `div:before {
background-image: none;
}`;
document.body.append(style);
Когда я этот код ввожу, картинка не исчезает. Частное правило (".jumbotron>div:before") имеет приоритет над общим ("div:before") даже если последнее было добавлено позже? |
jaroslav.tavgen,
читать про веса селекторов. |
jaroslav.tavgen,
Взвешиваем селекторы CSS |
Ну и если вы делаете какой-то юзерскрипт, а не в прод, то можно не заморачиваться и просто писать !important.
Особый хак, для случаев когда прописан тяжёлый селектор да ещё и с !important и его надо подменить - просто добавьте :not([x]) - столько раз, сколько надо, чтобы перевесило.) |
| Часовой пояс GMT +3, время: 06:14. |