Любой способ использовать псевдокласс в атрибуте стиля? [Дубликат]

Используя ES2017, вы должны иметь это как объявление функции

async function foo() {
    var response = await $.ajax({url: '...'})
    return response;
}

и выполнить его следующим образом.

(async function() {
    try {
        var result = await foo()
        console.log(result)
    } catch (e) {}
})()

Или синтаксис Promise

foo().then(response => {
    console.log(response)

}).catch(error => {
    console.log(error)

})
106
задан BoltClock 24 February 2015 в 20:32
поделиться

3 ответа

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

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

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

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

Подумайте о встроенных стилях в качестве стилей, применяемых к некоторому анонимному супер-специфическому селектору ID: эти стили применимы только к одному элементу с style. (Они имеют приоритет над селектором ID в таблице стилей, если этот элемент имеет этот идентификатор.) Технически это не работает; это просто поможет вам понять, почему атрибут не поддерживает стили псевдокласса или псевдоэлемента (он больше связан с тем, как псевдоклассы и псевдоэлементы предоставляют абстракции дерева документов, которые не могут быть выражены в язык документа).

Обратите внимание, что встроенные стили участвуют в одном и том же каскаде в качестве селекторов в наборах правил и имеют наивысший приоритет в каскаде (!important, несмотря на это). Поэтому они имеют приоритет даже над псевдоклассовыми состояниями.

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

97
ответ дан Community 5 September 2018 в 09:18
поделиться

Вместо использования встроенного встроенного 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>
19
ответ дан Jim Doodle 5 September 2018 в 09:18
поделиться

Не CSS, а inline:

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

См. пример & # x2192;

37
ответ дан mVChr 5 September 2018 в 09:18
поделиться
Другие вопросы по тегам:

Похожие вопросы: