Si vous utilisez des pourcentages, il prend la largeur de l'élément pour calculer le rayon. Pour avoir l'élément en forme de capsule, vous devez passer à la fonction border-radius
des unités de propriété comme rem o px (je ne sais pas non plus pourquoi, mais ça marche). C'est pourquoi cela fonctionne lorsque l'on passe 500px . Vous pouvez utiliser la même valeur pour line-height
y border-radius
si vous le souhaitez.
.capsule {
line-height: 48px;
border-radius: 48px;
}
Vous avez ici un exemple dans CodePen . Essayez de changer la variable $label-height
pour voir comment la forme est maintenue alors que la hauteur du bouton change.
Dans cet exemple, vous n'avez pas besoin de définir la largeur ou la hauteur de l'élément. Il suffit d'ajuster la valeur height
y padding
.
La propriété padding est utile pour définir une séparation entre le contenu et la bordure du composant. Voyez à quoi cela ressemble si je ne fixe que le padding gauche.
Si vous définissez le line-height
du conteneur, vous définirez automatiquement la hauteur du conteneur et centrerez le contenu à l'intérieur du conteneur en même temps.
Si vous souhaitez définir la largeur du composant en fonction de la largeur du contenu du composant, vous pouvez définir la propriété d'affichage du composant sur inline-block
et utiliser FlexBox pour les disposer en colonne, par exemple. Ensuite, réglez les marges gauche et droite sur auto, pour éviter que l'élément ne s'étende à la largeur de son parent.
Et si vous souhaitez laisser un espace entre les composants, vous pouvez définir l'option margin-top
entre des composants consécutifs.
.capsule + .capsule {
margin-top: 15px;
}
J'espère que cela vous aidera :)