HTML + CSS: ¿Cómo obligar a los contenidos div a permanecer en una línea?


259

Tengo un texto largo dentro de un divcon definidowidth :

HTML:

<div>Stack Overflow is the BEST !!!</div>

CSS:

div {
    border: 1px solid black;
    width: 70px;
}

¿Cómo podría forzar que la cuerda permanezca en una línea (es decir, que se corte en medio de "Desbordamiento")?

Traté de usar overflow: hidden, pero no me ayudó.


12
white-space: nowrappon esto en tu etiqueta de estilo.
Moshii

Respuestas:


524

Prueba esto:

div {
    border: 1px solid black;
    width: 70px;
    overflow: hidden;
    white-space: nowrap;
}



14

Su código HTML: <div>Stack Overflow is the BEST !!!</div>

CSS:

div {
    width: 100px;
    white-space:nowrap;
    overflow:hidden;
    text-overflow:ellipsis;
}

Ahora el resultado debería ser:

Stack Overf ...

12

¡Todos saltaron sobre este! Yo también hice un violín:

http://jsfiddle.net/audetwebdesign/kh4aR/

RobAgar consigue un punto por señalar white-space:nowrapprimero.

Aquí hay un par de cosas que necesita overflow: hiddensi no quiere ver los caracteres adicionales que aparecen en su diseño.

Además, como se mencionó, podría usar white-space: pre(ver EnderMB) teniendo en cuenta que preno colapsará el espacio en blanco, mientras que lo white-space: nowraphará.


4

Prueba esto. Se usa en prelugar de nowrapcomo supongo que querrías que se ejecute de manera similar, <pre>pero funcionará bien:

div {
    border: 1px solid black;
    max-width: 70px;
    white-space:pre;
}

http://jsfiddle.net/NXchy/11/


4

Salté aquí buscando lo mismo, pero ninguno funcionó para mí.

Hay instancias en las que, independientemente de lo que haga, y dependiendo del sistema (Oracle Designer: Oracle 11g - PL / SQL), los divs siempre irán a la siguiente línea, en cuyo caso debe usar la etiqueta span.

Esto funcionó de maravilla para mí.

<span float: left; white-space: nowrap; overflow: hidden; onmouseover="rollOverImageSectionFiveThreeOne(this)">
    <input type="radio" id="radio4" name="p_verify_type" value="SomeValue"  />
</span> 
Just Your Text || 
<span id="headerFiveThreeOneHelpText" float: left; white-space: nowrap; overflow: hidden;></span>

Enorme ayuda en esto, esto fue todo lo que funcionó para mí, probablemente pasé 30 minutos en esto, jajaja. Curiosamente, no estoy usando nada de lo que mencionaste, css, javascript, bootstrap y algunos css personalizados.
edencorbin


1
div {
    display: flex;
    flex-direction: row; 
}

fue la solución que funcionó para mí. En algunos casos con div-lists esto es necesario.

algunos valores de dirección alternativos son los row-reverse, column, column-reverse, unset, initial, inherit que hacen las cosas que espera que hagan


0

Intente establecer una altura para que el bloque no pueda crecer para acomodar su texto y mantenga el overflow: hiddenparámetro

EDITAR: Aquí hay un ejemplo de lo que le gustaría si necesita mostrar 2 líneas de alto:

div {
    border: 1px solid black;
    width: 70px;
    height: 2.2em;
    overflow: hidden;
}

En su caso, la opción nowrap es probablemente mejor, pero dejé mi respuesta porque a veces necesito un bloque que puede tener algunas líneas ajustadas hasta que se desborde así: jsfiddle.net/NXchy/7 (cambió el enlace de la versión de Stephenmurdoch, gracias!)
Wouter Simons

No es necesario, ¿qué sucede si el usuario desea aumentar el tamaño del texto usando ctrl- +? Mantener la altura flexible es mejor.
Marc Audet

Si el usuario cambia el tamaño del texto con ctrl- + debería funcionar: jsfiddle.net/kpKW3
Wouter Simons

El uso de em's en la heightmantiene flexible, punto clave bien ilustrado aquí en su ejemplo.
Marc Audet
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.