Ajouter de l'espace entre les éléments HTML en utilisant uniquement CSS
J'ai même plusieurs éléments HTML d'aller l'un après l'autre:
<span>1</span>
<span>2</span>
<span>3</span>
Je suis à la recherche de la meilleure façon d'ajouter de l'espace ENTRE les éléments à l'aide CSS
[no space] [1] [space 10px] [2] [space 10px] [3] [no space]
En outre:
- S'il vous plaît écrivez la compatibilité du navigateur de vos recettes
Mise à JOUR
Il semble que j'ai été clair. Je ne veux pas d'un BALISAGE HTML comme
<span></span> <span></span> <span class="last_span"></span>
Je ne veux pas utiliser les tables
Je veux que la première et la dernière travée être ciblées automatiquement par le CSS
Je ne veux pas utiliser javascript
Exigence facultative: la dernière travée peut être PAS le DERNIER ENFANT de la balise parent, mais ce sera la DERNIÈRE TRAVÉE de la balise parente. Les travées de ne pas avoir d'autres balises entre eux.
- Peut-être vous devriez envisager d'utiliser un tableau. Dépend de ce que des données va dans le
text
- Est le nombre de
span
variable s? - dernier recours devrait être de tables.
- Le
span
éléments sont générés par le service web je n'ai pas accès. Donc je ne peux pas changer le balisage. Cependant, je peux parfaitement utiliser les CSS - Avec des questions comme cela, vous devez toujours spécifier le navigateur soutien dont vous avez besoin. "J'ai besoin d'IE7 support" recevront des réponses complètement différentes à la "je suis seulement à l'aide de google Chrome".
- pas si les données qu'il a de la saisie est tablar, dans ce cas, c'est la première station.
- Je ne savais pas qu'il n'a jamais été possible dans IE6, IE7
Vous devez vous connecter pour publier un commentaire.
Une bonne façon de le faire est: est-ce
Chaque
span
précédée par unespan
(donc, tous lesspan
l'exception de la première) auramargin-left: 10px
.Voici une réponse plus détaillée à une question similaire: Les séparateurs entre les éléments sans hacks
.sidebar-img + .sidebar-text { margin-left: 40px; }
Suffit d'utiliser la marge ou du rembourrage.
Dans votre cas particulier, vous pouvez utiliser
margin:0 10px
seulement sur le 2ème<span>
.Mise à JOUR
Voici une belle CSS3 solution (jsFiddle):
Éléments avancés de sélection à l'aide des sélecteurs comme
:nth-child()
,:last-child
,:first-of-type
, etc. est pris en charge depuis Internet Explorer 9.span
manuellement? Ce devrait être le CSS du travailmargin-left
sur la dernièrespan
, ce qui n'est pas exactement ce que l'OP voulait.span
s etdiv
s (qui sont les éléments de bloc). Votre solution est valable de toute façon si vous définissezdiv
s comme des éléments inline...Vous pouvez prendre avantage du fait que
span
est un élément inlineCependant, cette solution ne fonctionnera plus si vous avez plus d'un mot du texte de votre durée de
C'est tellement facile.
Vous pouvez les éléments de style, à l'exclusion des premiers juste un, dans une ligne de code:
et de fait, à aucune classe de la manipulation.
Vous pouvez écrire comme ceci:
<span>
est un élément intégré de sorte que vous ne peut pas faire l'espacement sur eux sans en faire bloc.Essayez cette
Horizontale
Verticale
Compatible avec tous les navigateurs.
Vous devez envelopper vos éléments à l'intérieur d'un récipient, puis utiliser les nouvelles CSS3 comme grille css, cours gratuit, et ensuite utiliser
grid-gap:value
qui a été créé pour votre problème spécifiqueCSS:
HTML:
ajouter ces règles pour le conteneur parent:
Bonne référence: https://cssreference.io/
La compatibilité du navigateur: https://gridbyexample.com/browsers/
Ou, au lieu de définir la marge et de les ignorer, vous pouvez la régler correctement la liste déroulante suivantes:
:first-of-type
et:last-of-type
sélecteurs CSS.not
expression de la prise en charge du navigateur