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

Fabiano
fuente

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.

Jeff Rupert
fuente
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.

mikemerce
fuente
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?

David M
fuente
7
<span class="label">My Label:</span>
<span class="text">My text</span>
Miguel
fuente
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>
Guffa
fuente
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.

Christophe
fuente
3

No creo haber visto esta versión:

<div class="label">My Label:<span class="text">My text</span></div>
Maxhirez
fuente
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;}
Hassaan
fuente
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;
}
ellos llaman la memoria
fuente
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;
}
Tim
fuente
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.

yoel halb
fuente
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

Mes.
fuente
0

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

white-space: nowrap;
gustavz
fuente