2009-12-19 9 views
9

Tengo el siguiente código HTML;¿Cómo puedo evitar que la nueva línea agregue un espacio entre mis elementos de lista en HTML

li 
{ 
    list-style: none; 
    border: solid 1px blue; 
    display: inline; 
    margin: 0px 0px 0px 0px; 
} 
... 
<ul> 
    <li>Item 1</li> 
    <li>Item 2</li> 
    <li>Item 2</li> 
</ul> 

Cuando agrego los elementos de la lista en su propia línea, aparecen con un espacio horizontal entre ellos, pero cuando lo hago como;

<li>Item 1</li><li>Item 2</li><li>Item 2</li> 

they dont.

¿Hay alguna forma de evitar que la nueva línea aparezca como espacio en blanco, o necesito usar un margen negativo?

Respuesta

9

La razón hay espacio entre ellos es porque no hay espacio entre ellos. :-)

Puede flotar los li 's hacia la izquierda y que va a deshacerse de él:

li { float: left; } 

Ciao!

+0

Para aclarar el "... porque hay espacio entre ellos ...": HTML colapsará todo el espacio en blanco en un elemento de espacio único entre palabras o elementos. No eliminará por completo todos los espacios en blanco o las cosas serían un desastre. :-) –

+0

Esto es bueno, pero ¿hay alguna otra solución sin usar float? –

2

Aplicar float propiedad a Li y el uso de CSS reset o al menos:

* { 
margin:0; 
padding:0; 
} 
4

Ese espacio es correcto con contenido en línea. Tiene dos alternativas:

  1. Colóquelos en la misma línea como lo hace; o
  2. Use flotadores.

Por ejemplo:

ul { overflow: hidden; } 
li { float: left; border: solid 1px blue; margin: 0px; } 

El overflow: hidden asegura la <ul> que contiene no se derrumbe. Compare la diferencia con y sin ella si agrega un borde rojo al <ul>.

18

puede eliminar dicho espacio mediante el uso de comentarios HTML:

<ul> 
    <li>Item 1</li><!-- 
--><li>Item 2</li><!-- 
--><li>Item 2</li> 
</ul> 

También hay una propiedad CSS con el apoyo de los nuevos navegadores, pero no puedo recordar lo que se llama (se trata de una consulta de búsqueda duro).

+1

Esta es una alternativa única para desorganizar el código como todo el mundo sugiere. –

+2

Usted puede estar refiriéndose a ['text-space-collapse: descarte;'] (https://drafts.csswg.org/css-text-4/#propdef-text-space-collapse) que no se ha implementado en cualquier navegador todavía. –

2

Para evitar estos espacios puede utilizar flex propiedad CSS

ul { 
    display: flex; 
} 

Ver example.

+0

¡Funcionó muy bien, gracias! –

Cuestiones relacionadas