#css #userstyles
#css #пользовательские стили
Вопрос:
Есть ли селектор, который может выбирать все элементы с определенным цветом? Я хочу изменить весь текст color: #1a0dab
на color:00b0f4
.
Комментарии:
1. Как определяются стили? Если встроенный, вы можете сделать
document.querySelectorAll('[style*="#1a0dab"]')
или аналогичный.2. К сожалению, это всего лишь пользовательские стили, основанные на стилусе, а не на пользовательских скриптах, поэтому о jQuery не может быть и речи. Я должен был указать, поскольку все, что я нашел при самостоятельном поиске, было связано с jQuery. Извините за это.
3. Вы имеете в виду, что о JavaScript не может быть и речи, или просто jQuery?
4. Я не верю, что пользовательские стили поддерживают что-либо еще, кроме CSS, а может быть, И МЕНЬШЕ.
Ответ №1:
Если стили определены как встроенные, вы можете сделать это:
[style*="#1a0dab"] {
color: #00b0f4 !important;
}
ДЕМОНСТРАЦИЯ:
[style*="#1a0dab"] {
color: #00b0f4 !important;
}
<p style="color: #1a0dab">paragraph 1</p>
<p>paragraph 2</p>
<p style="color: #1a0dab">paragraph 3</p>
Нет чистого CSS-способа сделать это, если исходные стили не определены в строке.
Если у вас есть доступ к JavaScript, вы можете сделать что-то вроде следующего, хотя производительность, вероятно, будет низкой, если на вашей странице много элементов или вам нужно часто запускать функцию:
[...document.querySelectorAll('*')]
.filter(el => getComputedStyle(el).color === 'rgb(26, 13, 171)')
Обратите внимание, что для проверки равенства необходимо использовать представление RGB, а не шестнадцатеричную версию.
Вот демонстрация последнего подхода:
[...document.querySelectorAll('*')]
.filter(el => getComputedStyle(el).color === 'rgb(26, 13, 171)')
.forEach(el => el.style.color = '#00b0f4')
.has-color {
color: #1a0dab;
}
<p class="has-color">paragraph 1</p>
<p>paragraph 2</p>
<p class="has-color">paragraph 3</p>
Ответ №2:
В Javascript / jQuery такого селектора нет. Возможно, вы можете: 1 — Обновить файлы CSS и вместо этого найти / заменить все экземпляры 2 — Добавить класс ко всем необходимым элементам, а затем использовать класс для их таргетинга.
Комментарии:
1. Смотрите мой другой комментарий к OP.
Ответ №3:
Вы должны составить список всех тегов, которые вам нужны для изменения цвета, а затем с помощью jquery задать уникальный порядок изменения цвета