Existe-t-il un moyen de contrôler la position du soulignement dans la décoration de texte: soulignement?
<a href="#">Example link</a>
L'exemple ci-dessus a un soulignement par défaut ... y a-t-il un moyen de déplacer ce soulignement de quelques pixels vers le bas pour qu'il y ait plus d'espace entre le texte et le soulignement?
La seule façon de le faire est d'utiliser une bordure au lieu d'un soulignement. Les soulignements sont notoirement inflexibles.
a {
border-bottom: 1px solid currentColor; /* Or whatever color you want */
text-decoration: none;
}
Voici une démo. Si ce n'est pas assez d'espace, vous pouvez facilement en ajouter plus - si c'est trop, c'est un peu moins pratique.
[~ # ~] css [~ # ~]
p {
line-height: 1.6;
}
.underline {
text-decoration: none;
position: relative;
}
.underline:after {
position: absolute;
height: 1px;
margin: 0 auto;
content: '';
left: 0;
right: 0;
width: 90%;
color: #000;
background-color: red;
left: 0;
bottom: -3px; /* adjust this to move up and down. you may have to adjust the line height of the paragraph if you move it down a lot. */
}
[~ # ~] html [~ # ~]
<p>This is some example text. From this page, you can <a href="#">read more example text</a>, or you can <a href="#" class="underline">visit the bookshop</a> to read example text later.</p>
Voici une démo plus avancée avec une capture d'écran jointe que j'ai faite qui anime le soulignement sur en vol stationnaire, change de couleur, etc. ..
Il existe la propriété text-underline-position
Proposée dans CSS 3, mais il semble qu'elle n'ait encore été implémentée dans aucun navigateur.
Vous devrez donc utiliser la solution de contournement pour supprimer le soulignement et ajouter une bordure inférieure, comme suggéré dans d'autres réponses.
Notez que le soulignement n'ajoute pas à la hauteur totale d'un élément mais la bordure inférieure le fait. Dans certaines situations, vous pouvez utiliser à la place outline-bottom
- qui n'ajoute pas à la hauteur totale (bien qu'il ne soit pas aussi largement pris en charge que border-bottom
).
En utilisant border-bottom-width
et border-bottom-style
donnera à la bordure la même couleur que le texte par défaut:
text-decoration: none;
border-bottom-width: 1px;
border-bottom-style: solid;
padding-bottom: 1px;
Il y a une propriété text-underline-position: under
. Mais uniquement pris en charge dans Chrome et IE 10+).
Plus d'informations: https://css-tricks.com/almanac/properties/t/text-underline-position/https://developer.mozilla.org/en-US/ docs/Web/CSS/text-underline-position
Utilisez une bordure inférieure au lieu du soulignement
a{
border-bottom: 1px solid #000;
padding-bottom: 2px;
}
Changer le rembourrage en bas pour ajuster l'espace
J'utiliserais plutôt la bordure. Plus facile à contrôler.