Псевдоклассы CSS со встроенными стилями

возможно ли иметь псевдоклассы, использующие встроенные стили?


пример:

<a href="http://www.google.com" style="hover:text-decoration:none;">Google</a>

Я знаю, что приведенный выше HTML не будет работать, но есть ли что-то подобное?

P. S. Я знаю, что я должен использовать внешнюю таблицу стилей, и я делаю. Мне было просто любопытно, можно ли это сделать с помощью встроенных стилей.

3 ответов


нет, это невозможно. В документах, которые используют CSS, встроенный style атрибут может содержать только объявления свойств; тот же набор операторов, который отображается в каждом наборе правил в таблице стилей. От стиль атрибуты spec:

значение атрибута style должно соответствовать синтаксису содержимого CSS декларации блок (исключая разделительные скобки), формальная грамматика которых приведена ниже в терминах и условности CSS core grammar:

declaration-list
  : S* declaration? [ ';' S* declaration? ]*
  ;

ни селекторы (включая псевдо-элементы), ни at-правила, ни любая другая конструкция CSS не допускаются.

подумайте о встроенных стилях как стилях, применяемых к некоторому анонимному сверхспецифическому селектору ID: эти стили применяются только к этому одному элементу с


Не CSS, а inline:

<a href="#" 
   onmouseover = "this.style.textDecoration = 'none'"
   onmouseout  = "this.style.textDecoration = 'underline'">Hello</a>

пример →


вместо необходимости встроенного вы можете использовать внутренний CSS

<a href="http://www.google.com" style="hover:text-decoration:none;">Google</a>

вы могли бы иметь:

<a href="http://www.google.com" id="gLink">Google</a>
<style>
  #gLink:hover {
     text-decoration: none;
  }
</style>