span sobre sirve significado que para lista etiquetas estructura estilos descargar codigos css layout receipt

css - sobre - span html significado



Agregar espacio entre elementos HTML solo con CSS (10)

Tengo varios elementos HTML iguales que van uno tras otro:

<span>1</span> <span>2</span> <span>3</span>

Estoy buscando la mejor manera de agregar espacio ENTRE los elementos usando solo CSS

[no space] [1] [space 10px] [2] [space 10px] [3] [no space]

Adicionalmente:

  • Por favor anote la compatibilidad del navegador de sus recibos

ACTUALIZAR

Parece que no estaba claro. No quiero usar CUALQUIER MARCA HTML ADICIONAL como

<span></span> <span></span> <span class="last_span"></span>

No quiero usar tablas

Quiero que el primer y el último tramo sean dirigidos automáticamente por CSS

No quiero usar javascript

Requisito opcional: el último lapso no puede ser ÚLTIMO HIJO de la etiqueta principal, pero será el ÚLTIMO SPAN de la etiqueta principal. Los palos no tienen otras etiquetas entre ellos.


Debería envolver sus elementos dentro de un contenedor, luego usar las nuevas características de CSS3 como css grid , free course , y luego usar grid-gap:value que fue creado para su problema específico

span{ border:1px solid red; } .inRow{ display:grid; grid-template-columns:repeat(auto-fill,auto); grid-gap:10px /*This add space between elements, only works on grid items*/ } .inColumn{ display:grid; grid-template-rows:repeat(auto-fill,auto); grid-gap:15px; }

<div class="inrow"> <span>1</span> <span>2</span> <span>3</span> </div> <div class="inColumn"> <span>4</span> <span>5</span> <span>6</span> </div>


Eso es tan fácil.

Puede diseñar elementos con la exclusión del primero, solo en una línea de código:

span ~ span { padding-left: 10px; }

y hecho, sin manipulación de clase.


O bien, en lugar de establecer el margen y reemplazarlo, puede configurarlo correctamente de inmediato con el siguiente combo:

span:not(:first-of-type) { margin-left: 5px; } span:not(:last-of-type) { margin-right: 5px; }


Puede aprovechar el hecho de que span es un elemento en línea

span{ word-spacing:10px; }

Sin embargo, esta solución se romperá si tiene más de una palabra de texto en su extensión


Puedes escribir así:

span{ margin-left:10px; } span:first-child{ margin-left:0; }


Solo use margen o relleno.

En su caso específico, puede usar margin:0 10px solo en el 2do <span> .

ACTUALIZAR

Aquí hay una buena solución CSS3 ( jsFiddle ):

span { margin: 0 10px; } span:first-of-type { margin-left: 0; } span:last-of-type { margin-right: 0; }

La selección avanzada de elementos utilizando selectores como :nth-child() :last-child :first-of-type , etc. es compatible desde Internet Explorer 9.


Una buena forma de hacerlo es esta:

span + span { margin-left: 10px; }

Cada span precedido por un span (por lo tanto, cada span excepto el primero) tendrá margin-left: 10px .

Aquí hay una respuesta más detallada a una pregunta similar: Separadores entre elementos sin hacks


<span> es un elemento en línea, por lo que no puedes hacer espacios entre ellos sin hacerlo bloquear el nivel. Prueba esto

Horizontal

span{ margin-right: 10px; float: left; }

Vertical

span{ margin-bottom: 10px; }

Compatible con todos los navegadores.


span.middle { margin: 0 10px 0 10px; /*top right bottom left */ } <span>text</span> <span class="middle">text</span> <span>text</span>


span:not(:last-child) { margin-right: 10px; }