Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 29.12.2019, 12:49
Кандидат Javascript-наук
Отправить личное сообщение для jaroslav.tavgen Посмотреть профиль Найти все сообщения от jaroslav.tavgen
 
Регистрация: 18.09.2014
Сообщений: 128

Почему не исчезает картинка?
Хочу на этом сайте 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;" просто игнорируется?

Последний раз редактировалось jaroslav.tavgen, 29.12.2019 в 12:57.
Ответить с цитированием
  #2 (permalink)  
Старый 29.12.2019, 13:01
Аватар для Aetae
Тлен
Отправить личное сообщение для Aetae Посмотреть профиль Найти все сообщения от Aetae
 
Регистрация: 02.01.2010
Сообщений: 6,584

Разницу меж div и div:before чуешь?
__________________
29375, 35
Ответить с цитированием
  #3 (permalink)  
Старый 29.12.2019, 13:06
Кандидат Javascript-наук
Отправить личное сообщение для jaroslav.tavgen Посмотреть профиль Найти все сообщения от jaroslav.tavgen
 
Регистрация: 18.09.2014
Сообщений: 128

Сообщение от Aetae Посмотреть сообщение
Разницу меж div и div:before чуешь?
Теперь да И какое тогда может быть решение?

[].forEach.call(document.getElementsByTagName("div:before"), a=>{a.style.backgroundImage = "none"});

не работает
Ответить с цитированием
  #4 (permalink)  
Старый 29.12.2019, 13:35
Аватар для Aetae
Тлен
Отправить личное сообщение для Aetae Посмотреть профиль Найти все сообщения от Aetae
 
Регистрация: 02.01.2010
Сообщений: 6,584

Из js - добавить на страницу <style>, переписывающий соответствующее правило. Или, если стили грузятся с того же домена, убрать правило напрямую из cssRules.
__________________
29375, 35
Ответить с цитированием
  #5 (permalink)  
Старый 29.12.2019, 13:46
Кандидат Javascript-наук
Отправить личное сообщение для jaroslav.tavgen Посмотреть профиль Найти все сообщения от jaroslav.tavgen
 
Регистрация: 18.09.2014
Сообщений: 128

Сообщение от Aetae Посмотреть сообщение
Из 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);
Ответить с цитированием
  #6 (permalink)  
Старый 29.12.2019, 13:49
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,109

jaroslav.tavgen,
const style = document.createElement('style');
   style.textContent = `.jumbotron>div:before {
    background-image: none;
   }`;
   document.body.append(style);
Ответить с цитированием
  #7 (permalink)  
Старый 29.12.2019, 13:52
Кандидат Javascript-наук
Отправить личное сообщение для jaroslav.tavgen Посмотреть профиль Найти все сообщения от jaroslav.tavgen
 
Регистрация: 18.09.2014
Сообщений: 128

Но возник другой вопрос: почему не работает это?
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, 29.12.2019 в 13:57.
Ответить с цитированием
  #8 (permalink)  
Старый 29.12.2019, 14:00
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,109

jaroslav.tavgen,
читать про веса селекторов.
Ответить с цитированием
  #9 (permalink)  
Старый 29.12.2019, 14:02
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,109

jaroslav.tavgen,
Взвешиваем селекторы CSS
Ответить с цитированием
  #10 (permalink)  
Старый 29.12.2019, 14:15
Аватар для Aetae
Тлен
Отправить личное сообщение для Aetae Посмотреть профиль Найти все сообщения от Aetae
 
Регистрация: 02.01.2010
Сообщений: 6,584

Ну и если вы делаете какой-то юзерскрипт, а не в прод, то можно не заморачиваться и просто писать !important.
Особый хак, для случаев когда прописан тяжёлый селектор да ещё и с !important и его надо подменить - просто добавьте :not([x]) - столько раз, сколько надо, чтобы перевесило.)
__________________
29375, 35

Последний раз редактировалось Aetae, 29.12.2019 в 14:18.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
В контекстном меню автоматически исчезает пункт меню. Как это "вылечить"? Исмаил Прокопенко Firefox/Mozilla 3 13.09.2016 22:10
Почему не срабатывает анимация для transform если её добавить с помощью js Mixeyka Элементы интерфейса 4 11.07.2016 11:16
Почему слайдер перестает работать? oleg.d Общие вопросы Javascript 2 05.05.2015 20:35
Почему исчезает содержимое input? torrius Элементы интерфейса 4 12.01.2015 15:52
Почему onload срабатывает до того как картинка полностью проявится? koeshiro Общие вопросы Javascript 21 24.06.2013 14:50