Evitar saltos de línea después de </div>


95

¿Hay alguna forma de evitar un salto de línea después de un div con css?

Por ejemplo tengo

<div class="label">My Label:</div>
<div class="text">My text</div>

y quiero que se muestre como:

Mi etiqueta: Mi texto

Respuestas:


152

display:inline;

O

float:left;

O

display:inline-block; - Puede que no funcione en todos los navegadores.

¿Cuál es el propósito de usar un divaquí? Sugeriría a span, ya que es un elemento de nivel en línea, mientras que a dives un elemento de nivel de bloque.


Tenga en cuenta que cada opción anterior funcionará de manera diferente.

display:inline;convertirá el diven el equivalente de a span. Será afectado por margin-top, margin-bottom, padding-top, padding-bottom, height, etc.

float:left;mantiene el divcomo un elemento a nivel de bloque. Todavía ocupará espacio como si fuera un bloque, sin embargo, el ancho se ajustará al contenido (asumiendo width:auto;). Puede requerir clear:left;ciertos efectos.

display:inline-block;es la opción "lo mejor de ambos mundos". Se divtrata como un elemento de bloque. Responde a todos los margin, paddingy heightlas reglas como se esperaba para un elemento de bloque. Sin embargo, se trata como un elemento en línea con el fin de colocarlo dentro de otros elementos.

Lea esto para obtener más información.


3
Usé etiquetas div porque fueron generadas automáticamente por una plantilla
Fabiano

Un div con display: inline es básicamente lo mismo que un span. Es un contenedor semánticamente sin sentido. La única diferencia es su modo de visualización predeterminado (bloque vs en línea)
Joeri Hendrickx

Un div con pantalla: en línea no funciona en Safari, se rompe de todos modos. Estoy usando span.
Gustavo

El bloque en línea solo ayudó. ¡Gracias!
Drey

12
.label, .text {display: inline}

Aunque si usa eso, también podría cambiar los div por span.


10

Un DIV es por defecto un elemento de visualización BLOQUE, lo que significa que se encuentra en su propia línea. Si agrega la propiedad CSS display: inline, se comportará de la manera que desee. ¿Pero quizás debería considerar un SPAN en su lugar?


7
<span class="label">My Label:</span>
<span class="text">My text</span>

5

Los divelementos son elementos de bloque, por lo que por defecto ocupan todo el ancho disponible.

Una forma es convertirlos en elementos en línea:

.label, .text { display: inline; }

Esto tendrá el mismo efecto que usar spanelementos en lugar de divelementos.

Otra forma es hacer flotar los elementos:

.label, .text { float: left; }

Esto cambiará la forma en que se decide el ancho de los elementos, por lo que solo será tan ancho como su contenido. También hará que los elementos floten uno al lado del otro, de manera similar a como las imágenes fluyen una al lado de la otra.

También puede considerar cambiar los elementos. El divelemento está destinado a divisiones de documentos, normalmente uso labelun spanelemento y un para una construcción como esta:

<label>My Label:</label>
<span>My text</span>

4

Los div se utilizan para dar estructura a un sitio web o para contener una gran cantidad de texto o elementos, pero parece que los usa como etiqueta, debe usar span, colocará ambos textos uno al lado del otro automáticamente y no necesitará escribir css para ello.

E incluso si otras personas le dicen que flote los elementos, es mejor que cambie las etiquetas.


3

No creo haber visto esta versión:

<div class="label">My Label:<span class="text">My text</span></div>

2
<div id="hassaan">
     <div class="label">My Label:</div>
     <div class="text">My text</div>
</div>

CSS:

#hassaan{ margin:auto; width:960px;}
#hassaan:nth-child(n){ clear:both;}
.label, .text{ width:480px; float:left;}

5
Es posible que desee explicar su respuesta en beneficio del OP
Luca

1

Intente aplicar el clear:noneatributo css a la etiqueta.

.label {
     clear:none;
}

1
Eso no tiene ningún efecto, ya que divtodavía tiene el valor predeterminado width:autoque hace que ocupe todo el ancho disponible.
Guffa

0

intente flotar sus div en css

.label {
float:left;
width:200px;
}
.text {
float:left;
}

1
Recuerde realizar el siguiente elemento clear: left;para devolver el documento al flujo normal.
Pete

0

Muchas veces he logrado obtener div sin saltos de línea después de ellos, jugando con el atributo float css y el atributo width css.
Por supuesto, después de resolver la solución, debe probarla en todos los navegadores, y en cada navegador debe cambiar el tamaño de las ventanas para asegurarse de que funcione en todas las circunstancias.


0

usa este código para div normal display: inline;

use este código si lo usa en la tabla display: inline-table; mejor que en la tabla


0

pruebe esto (en CSS) para evitar saltos de línea en los divtextos:

white-space: nowrap;
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.