Как переопределить глобальную таблицу стилей - PullRequest
2 голосов
/ 08 октября 2008

В двух словах, есть глобальная таблица стилей:

a { font-family: Arial; }

Я хочу использовать другое семейство шрифтов для конкретной ссылки:

<a href="..." style="font-family: Helvetica;">...</a>

или

<span style="font-family: Helvetica;"><a href="...">...</a></span>

но ничего не работает. Есть ли простой способ сделать это?

P.S. Я динамически (через PHP) назначаю разные шрифты разным ссылкам, поэтому создание специального класса не вариант.

Ответы [ 4 ]

12 голосов
/ 08 октября 2008

Если у вас нет определенного шрифта с именем Helvetica, вы должны понимать, что на некоторых платформах (например, Windows, через FontSubstitutes ) Helvetica имеет псевдоним Arial. Это может быть источником проблемы. Попробуйте другой шрифт и посмотрите.

6 голосов
/ 08 октября 2008

Ваша первая попытка

  <a href="..." style="font-family: Helvetica;">...</a>

должно было сработать. Согласитесь, что вам, вероятно, не хватает шрифта. Встроенные стили имеют приоритет над любыми другими стилями, кроме определяемой пользователем таблицы стилей. Вот порядок приоритетов для определений стиля:

  1. Пользовательский стиль
  2. Встроенная или встроенная таблица стилей
  3. Внутренняя таблица стилей
  4. Внешняя таблица стилей
  5. Стиль браузера по умолчанию

В таблице стилей приоритеты следующие:

  1. Все, что помечено! Важно
  2. ID

  3. .class
  4. элемент

Кроме того, у вас есть правило большей специфичности: div a переопределяет a

Вот хорошая статья с более подробной информацией по теме .

@ Предложение Кипа - ваш лучший выбор.

5 голосов
/ 08 октября 2008

То, что вы написали, должно работать, если только проблема не в том, что указал Крис,

Когда вы получаете пару шрифтов, для которых это работает правильно, вы можете подумать, что лучшим способом сделать это было бы объявление класса для специальных ссылок, которые каким-то образом напоминают вам , почему им нужно отдельный шрифт (может быть, потому что вы хотите, чтобы они были особенно заметны?)

a { font-family: Arial; }
a .noticed { font-family: Helvetica; }

Тогда в HTML:

<a class="noticed" href="...">...</a>

Изменение шрифта путем создания тега span вокруг ссылки или добавления в ссылку встроенного стиля, просто попахивает старыми днями тегов <font>.

1 голос
/ 08 октября 2008

стили элементов переопределяют глобальные стили, поэтому Крис Джестер-Янг, вероятно, прав, и у вас нет шрифта Helvetica; попробуйте другой шрифт, например Курьер или Times New Roman, который вы уверены, существует

...