Я ищу способ, используя только современный css, выбирать все элементы, которые имеют фоновое изображение, которое использует любой градиент, а затем перезаписывает это значение с помощью "none". По сути, мне нужно стереть все фоновые градиенты. Это то, что у меня есть до сих пор, но, похоже, это не работает:
*[background-image*="gradient"]{
background-image: none !important;
}
Я начинаю думать, что попытка чего-то вроде этого не является нормальным, но я хотел бы точно знать. Возможно ли это? Если да, то что я делаю неправильно?
Вы не можете решить эту проблему с помощью HTML и CSS.
Вы можете использовать Javascript для проверки background-image
каждого элемента в DOM. С огромным DOM это может стать медленным, но похоже, что у вас нет другого выбора.
background-image
- хотя большинство из них будет по умолчанию, none
.
Как насчет этого метода. вам нужно добавить gradient
класса для всех тех элементов, которые используют эффект градиента. Я понимаю его немного работы, но он решит вашу проблему.
*[class*='gradient'] {
background-image: none;
}
[]
для атрибутов, поэтому вам нужно использовать[style*=]
но этот afaik будет работать только со встроенными стилями (только для градиентов ели, установленных с помощьюstyle
attr). Кроме того, предполагая, что существует способ запроса по применяемому в настоящее время свойству css, ваше правило больше не будет соответствовать в тот момент, когда вы установилиbackground
режим равнымnone
, поэтому градиент появится снова, затем правило снова будет соответствовать, .... Так что у вас будет либо мерцание, либо бесконечный цикл.