Какой вес у псевдокласса? - PullRequest
0 голосов
/ 17 июня 2009

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

Кто-нибудь знает решение, позволяющее всем этим псевдоклассам снова начать прослушивание автономного элемента?

A:link
{
    text-decoration: none;
    color: #003366;
}

A:visited
{
    text-decoration: none;
    color: #003366;
}

A:hover
{
    text-decoration: underline;
    color: #ff0000;
}

A:active
{
    text-decoration: none;
    color: #003366;
}

Кроме того, a:hover {} всегда будет выбивать selector a {} независимо от того, насколько сильным является selector?


EDIT: Я не хочу использовать! Важный, так как мне придется использовать важный везде, и я не хочу встраивать какой-либо стиль в документ.

Я предполагаю, что: link {text-ornament: none;} будет когда-либо переопределяться только одним и тем же псевдоклассом, и я надеюсь, что всегда есть возможность определить псевдоклассы для каждого тега. *

Ответы [ 3 ]

2 голосов
/ 17 июня 2009

Если вы включите объявления внутри тегов <style> в сам HTML, он заменит все стили, установленные во внешних таблицах стилей.

Другим решением является создание второго CSS-документа для переопределения существующего CSS. Убедитесь, что вы включили этот файл CSS после вы включили существующий файл CSS (для IE 6 compat). Затем используйте тег !important для всех стилей, которые вы хотите переопределить.

Для получения дополнительной информации обратитесь к разделу спецификаций W3, касающемуся Каскадирование CSS .

Редактировать: Чтобы ответить на ваш второй вопрос. a:hover{} выбьет selector a{}, но selector a:hover{} выбьет a:hover{}.

0 голосов
/ 18 июня 2009

Я только что проверил время загрузки при использовании: first-child и: last-child. Разница, по-видимому, составляла около 8 мс для каждого (на моей локальной машине), хотя я не уверен в том, что чем больше вы используете, тем больше будет рост факторов.

0 голосов
/ 17 июня 2009

Кроме того, a:hover {} будет всегда выбивать селектор a {} независимо от того, насколько сильный селектор?

Это зависит: более специфичный селектор победит в случае установки конфликтующих атрибутов; в противном случае они будут аддитивными. (Если, конечно, вы не делаете вещи с !important ...)

...