CSS: a: link vs просто (без: ссылка)
Итак, мы должны использовать следующий порядок для псевдоклассов-якорей CSS
a:link { color: red }
a:visited { color: blue }
a:hover { color: yellow }
a:active { color: lime }
Но мой вопрос: зачем беспокоиться с частью a: link? Скорее, есть ли преимущество вышеизложенного (кроме, быть может, ясности):
a { color:red; } /* notice no :link part */
a:visited { color: blue; }
etc.,etc.
Ответы
Ответ 1
:link
выбирает невидимые ссылки, то есть: привязки с атрибутом href
, которые не были посещены браузером (для любого определения, которое поставщик браузера имеет для "посещенных" ).
Если он имеет :link
, он никогда не будет соответствовать <h1><a name="foo">A foo to be linked to</a></h1>
(Хотя вы должны использовать <h1 id="foo">A foo to be linked to</h1>
в эти дни.)
Помимо этого, он делает более понятным, для чего он предназначен.
a { color: orange }
a:link { color: blue }
a:visited { color: indigo }
a:hover { color: green }
a:active { color: lime }
<a>my anchor without href</a>
<br><br>
<a href="http://somelinkhere.com">my anchor without href</a>
Ответ 2
Просто "a" относится ко ВСЕМ возможным ссылкам (невидимым, посещенным, зависающим и активным), тогда как "a: link" относится только к нормальным нераспространенным ссылкам.
Если вы используете "a" вместо "a: link" , вы устанавливаете ссылки по умолчанию для ВСЕХ ссылок по умолчанию на все, что установлено "a" . В этом конкретном случае, поскольку вы указываете каждый возможный псевдокласс, по существу не имеет значения, говорите ли вы "a: link" или просто "a"
Итак, в первой группе, где вы выписываете все псевдоклассы (a: link, a: visited и т.д.), вы указываете CSS для каждого возможного случая WITHIN "a"
a:link { color: red } //set unvisited links to red
a:visited { color: blue } //set visited links to blue
a:hover { color: yellow } //set hovered links to yellow
a:active { color: lime } //set active links to lime
Во второй группе, где вы просто пишете "a" , вы фактически устанавливаете CSS по умолчанию для всех ссылок на то, что вы пишете в первой строке, а затем переопределяете CSS для других псевдоклассов
a { color: red } //set ALL links to red!
a:visited { color: blue } //hm, never mind, let set visited links to blue
a:hover { color: yellow } //hm, never mind, let set hovered links to yellow
a:active { color: lime } //hm, never mind, let set active links to lime
Ответ 3
http://www.w3schools.com/css/css_pseudo_classes.asp
: ссылка - это когда ссылка не указана. Поэтому, когда есть якорь с атрибутом href, и пользователь никогда не был на странице за якорем.
Ответ 4
Селектор :link
- это псевдоэлементный селектор для гиперссылок, любой элемент, который является гиперссылкой, будет сопоставляться. Селектор a
будет соответствовать "только" элементам привязки.
Обычно каждый элемент a
также является гиперссылкой, и я не знаю, как создать гиперссылку в HTML без использования привязки, поэтому вы можете использовать любой из них в большинстве случаев.
Однако использование только a
будет соответствовать элементам привязки, которые не являются гиперссылками. Например, якорный элемент, написанный таким образом <a name=sign-up>Sign up form</a>
, не будет соответствовать селектору псевдо-элемента гипертекста :link
, но будет соответствовать селектору a
.