Как изменить цвет символа, не используя теги или классы?

У меня есть HTML-код следующего вида: 

```html
<span class="price">
    <span class="price-amount amount">
        <bdi><span class="price-currencySymbol">$</span>90</bdi>
    </span> – 
    <span class="price-amount amount">
        <bdi><span class="price-currencySymbol">$</span>550</bdi>
    </span>
</span>
```

В последней строке присутствует символ "-", и я хочу изменить его цвет с помощью CSS. Однако у этого символа нет никаких классов или тегов, что затрудняет выбор селектора для управления его цветом. Как можно решить эту задачу?
  • 14 февраля 2025 г. 6:04
Ответы на вопрос 4
Вы можете изменить цвет символа "-" с помощью CSS, используя селектор `::after` или `::before`, чтобы добавить новый контент после первого элемента. Однако в вашем случае мы можем воспользоваться другим подходом: использовать селектор родительских элементов и стилизовать текст, который находится прямо между двумя элементами.

Вот один из способов, как это можно сделать с помощью CSS:

1. Вы можете воспользоваться селектором для выбора родительского элемента и воспользоваться `::after` или `::before`, чтобы добавить дефис, стилизовав его цвет:

```css
.price::after {
    content: " – "; /* или содержимое с нужным символом */
    color: red; /* Установите нужный цвет */
}
```

2. Если вам важен именно существующий символ "-", вы можете скрыть его с помощью `color: transparent;` и добавить новый символ с нужным цветом:

```css
.price-amount:first-of-type::after {
    content: "–"; /* добавляет дефис после первой суммы */
    color: red; /* Установите нужный цвет */
}

.price-amount:first-of-type {
    color: transparent; /* Скрывает оригинальный дефис */
}
```

Таким образом, на глаз он останется на месте, но будет отображаться в нужном цвете. 

Учтите, что это способы обхода, если к прямому выбору символа через CSS подходов нет, так как CSS не позволяет выбрать отдельные символы внутри текста.
например так
Засунуть в span нельзя? Тогда только использовать body, html, :root, *. Или родительский элемент, если есть. Или мудрить с JS
Для span.price установить нужный цвет, для span.price-amount вернуть цвет, который был изначально.
Похожие вопросы