A mio avviso, lo CSS specificity rules indica che una pseudo classe ha lo stesso peso di un selettore di tag. Quindi un selettore come "div p a" sarebbe più specifico di "a: link".Perché il: link pseudo class ha previsto le regole di specificità CSS previste?
Ma come dimostra il seguente caso di test, non sembra essere il caso. Perché il link è rosso?
<!DOCTYPE HTML>
<html>
<head>
<title></title>
<meta charset="UTF-8">
<style type="text/css" media="screen">
a:link { color: red; }
div p a { color: green; }
div.foobar p a { color: green; }
</style>
</head>
<body>
<div>
<p>
<a href="http://somecrazyurlwierdthing.com">A link... why is it red?</a>
</p>
</div>
<div class="foobar">
<p>
<a href="http://somecrazyurlwierdthing.com">But it turns green when you add a class selector.</a>
</p>
</div>
</body>
</html>
Modificato l'esempio per includere il selettore "div.foobar p a".
Sì, non mi rendevo conto che c'è una differenza tra uno pseudo-selettore e una pseudo-classe. Forse c'è una ragione per cui una pseudo-classe ha un peso maggiore, ma almeno nel mio caso, sembra rendere più difficile la codifica degli stili generici "a: link". Penso che cambierò semplicemente il modello di wordpress che sto modificando per usare "a {color: XXX}" invece di "a: link {color: XXX". – timmfin
Ricorda che un elemento 'a' non deve essere un collegamento; può invece essere un'ancora, da collegare * a * tramite un frammento di URL.Questo è il motivo principale per il ': link' e le relative pseudo-classi: per consentire agli elementi' a' che i collegamenti sono distinti da quelli che non lo sono. Considera anche l'uso delle pseudo-classi appropriate (': link',': visited', ': hover',': focus' e ': active') per migliorare l'usabilità riflettendo lo stato dell'interazione dell'utente con la pagina/sito ; A me, in particolare, non piacciono le pagine con un numero di link che non definiscono uno stile distinto per ': visited'. – NickFitz