J'ai le code CSS suivant:
.readMore:before {
content: '';
display: block;
float: left;
width: 10px;
height: 27px;
margin: 0;
background: red url('images/button.png');
background-position: 0 0;
}
.readMore {
float: left;
height: 24px;
background: url('images/button.png');
background-position: -10px 0;
border: 0;
margin: 0;
padding: 4px 0 0 0;
cursor: pointer:
}
.readMore:after {
content: '';
display: block;
float: right;
width: 10px;
height: 27px;
margin: 0;
top: -3px;
background: red url('images/button.png');
background-position: -411px 0;
}
Quels styles un lien qui ressemble à ceci:
Mais lorsque vous essayez d'ajuster le texte dans le .readMore en vertical, les images: avant et: après obtiennent également des "sauts" vers le bas. Ce qui est logique, mais existe-t-il une solution pour qu'elle s'aligne mieux avec "l'image totale"?
J'ai tendance à utiliser le positionnement absolute
pour les éléments: avant et: après. Ensuite, vous pouvez faire tout ce que vous voulez au parent sans vous soucier de vos pseudo-éléments n'importe où (à moins, bien sûr, de déplacer l'élément lui-même).
<div></div>
div {
position: relative;
background: #eee;
width: 25px;
height: 25px;
margin: 30px 0 0 30px;
}
div:before {
position: absolute;
width: 10px;
height: 25px;
top: 0;
left: -10px;
content:"";
background: #222;
}
div:after {
position: absolute;
width: 10px;
height: 25px;
top: 0;
right: -10px;
content:"";
background: #222;
}
Cela montre comment je les disposerais. Vous pouvez ensuite utiliser n'importe quelle méthode pour ajuster la position du texte dans le parent.
Les points clés du code ci-dessus sont les suivants:
Si vous souhaitez centrer le texte dans le parent div
verticalement, et qu'il ne s'agit que d'une seule ligne, vous pouvez définir la hauteur de ligne égale à la hauteur du conteneur. Voir ça ici . Ce serait mieux que de "deviner" le rembourrage pour le centrer verticalement, si c'est ce que vous cherchez.
Bien sûr, il existe également d'autres façons de centrer le texte verticalement, et en conséquence, il y a beaucoup de SO questions sur le sujet. Voici une seule .