Как переопределить глобальную таблицу стилей
-
05-07-2019 - |
Вопрос
В двух словах, есть глобальная таблица стилей:
a { font-family: Arial; }
Я хочу использовать другое семейство шрифтов для конкретной ссылки:
<a href="..." style="font-family: Helvetica;">...</a>
или
<span style="font-family: Helvetica;"><a href="...">...</a></span>
но ничего не работает.Есть простой способ сделать это?
P.S.Я динамически (через PHP) назначаю разные шрифты разным ссылкам, поэтому создание специального класса не вариант.
Решение
Если у вас нет определенного шрифта с именем Helvetica, вы должны понимать, что на некоторых платформах (например, Windows, через Заменители шрифтов), Helvetica является псевдонимом Arial.Это может быть источником проблемы.Попробуйте другой шрифт и посмотрите.
Другие советы
Ваша первая попытка
<a href="..." style="font-family: Helvetica;">...</a>
должно было сработать.Согласитесь, что вам, вероятно, не хватает шрифта.Встроенные стили имеют приоритет над любыми другими стилями, кроме определяемой пользователем таблицы стилей.Вот порядок приоритетов для определений стилей:
- Определяемый пользователем стиль
- Встроенная или встроенная таблица стилей
- Внутренняя таблица стилей
- Внешняя таблица стилей
- Стиль браузера по умолчанию
В таблице стилей приоритеты следующие:
- Все, что отмечено !важно
идентификатор
- .сорт
- элемент
Кроме того, у вас есть правило большей специфичности: div a
переопределяет a
.
Вот хорошая статья, более подробно по теме.
Предложение @Kip — твой лучший выбор.
То, что вы написали, должно работать, если только проблема не в том, на что указал Крис:
Когда вы получите пару шрифтов, для которых это работает правильно, вы можете подумать, что лучший способ сделать это — объявить класс для специальных ссылок, который каким-то образом напоминает вам почему им нужен отдельный шрифт (может потому, что вы хотите, чтобы их особенно заметили?)
a { font-family: Arial; }
a .noticed { font-family: Helvetica; }
Затем в HTML:
<a class="noticed" href="...">...</a>
Изменение шрифта путем создания тега span вокруг ссылки или добавление встроенного стиля к ссылке просто отдает старыми днями. <font>
теги.
стили элементов переопределяют глобальные стили, поэтому Крис Джестер-Янг, вероятно, прав, и на самом деле у вас нет шрифта Helvetica;попробуйте другой шрифт, например.Courier или Times New Roman, существование которого, как вы уверены, существует.