Dal momento che non può denotare quale colore un secondo colore per la sottolineatura del testo, una strategia è quella di rimuoverlo e utilizzare un bordo.
.link-articles
{
border-bottom: solid 1px blue;
text-decoration: none;
}
.link-articles:hover
{
border-bottom-color: red;
}
Si noti che se si lascia la text-underline
, si sposterà verso il basso quando si libra, dal momento che è il posizionamento non è esattamente la stessa posizione del bordo inferiore.
Questo approccio ha un vantaggio di poter
posizione sottolineatura utilizzando
line-height
e
hanno stili di linea alternativi, sostituendo solid
con dotted
o dashed
.
Approccio bordi:
Come @Pacerier sottolinea nei commenti, qui è una strategia alternativa utilizzando pseudo-classi e contenuti CSS (JSFiddle):
.link-articles
{
position: relative;
}
.link-articles[href="#articles"]:after
{
content: 'My Articles';
}
.link-articles:after
{
color: red;
left: 0;
position: absolute;
top: 0;
}
Tuttavia, con anti- aliasing, potrebbe avere un po 'di color-blending sui bordi del testo. Se non ti piace l'idea di dover inserire manualmente content
nel tuo CSS, potresti usare un attributo o un elemento duplicato.
Noi ** possiamo ** specificare il colore del testo sottolineato poiché sarà uguale al colore del testo. Per avere due colori diversi per il carattere e la sottolineatura, dobbiamo ** sovrapporre ** un nuovo testo sopra di esso, in modo che il vecchio colore del testo sia coperto dal nuovo colore del testo. – Pacerier
Grazie per aver chiarito, @Pacerier. Ho aggiornato la mia risposta per includere un approccio utilizzando le sovrapposizioni di testo. Personalmente, mi piace l'approccio border perché puoi perfezionare il posizionamento di esso usando 'line-height', e usando diversi stili di bordo come' punteggiato'. – Quantastical
Come esattamente la posizione della linea può essere controllata usando 'line-height'? Quando eseguo il test in Safari, la distanza della riga dal testo non è influenzata. Un'altezza di linea maggiore rispetto al testo circostante aumenta lo spazio sulla riga successiva. Un'altezza della linea più piccola non ha alcun effetto. La distanza del bordo dal testo non cambia mai. Forse funziona con altri browser, ma è utile solo in ambienti controllati come le intranet. –