2009-01-26 6 views
24

Tengo un DIV que contiene texto dinámico. Digamos que sé el texto y el tamaño de la fuente, pero no sé el tamaño de la DIV. Me gustaría que la visualización del texto en el DIV sea lo suficientemente inteligente como para mostrar una sangría cuando el texto se ajusta.¿Cuál es la mejor manera de sangrar texto en un DIV cuando se envuelve?

decir que mi texto original se veía algo como esto:

 
Lorem ipsum dolor sit amet, 
consectetur adipisicing 
elit, sed do eiusmod 
tempor incididunt 

En cambio, quiero que se vea como esto:

 
Lorem ipsum dolor sit amet, 
    consectetur adipisicing 
    elit, sed do eiusmod 
    tempor incididunt 

Cuál es la mejor manera de hacer esto si yo no sé el tamaño de la DIV a priori? ¿Y cuál es la mejor manera de hacerlo si sé el tamaño?

Gracias!

Respuesta

36

Si entiendo lo que estás pidiendo, esto funciona para mí:

div { 
    padding-left: 2em; 
    text-indent: -2em; 
} 
+2

También he tenido que añadir "display: inline-block;" para que esto funcione para mí – Robert

+1

Esta debería ser la respuesta aceptada. – WebWanderer

+0

OP no ha vuelto desde 2010. Puede que no suceda ... –

0

Esto debería funcionar igual de bien para ambos DIVs de tamaño variable y fija.

<div style="width: 150px; text-indent: -2em; padding-left: 2em;"> 
    Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor 
    incididunt. 
</div> 
+0

He probado el código en Firefox 3 e IE7 y parece funcionar perfectamente en ambos. – Noldorin

5

No está seguro del soporte multi-navegador, pero se puede usar la first-line pseudo-element:

p {padding:10px;} 
p:first-line {padding-left:0px;} 

<p>Hello World, I'm Jonathan Sampson</p> 

¿Hay que hacer diplayed como

Hello World estoy
        Jonathan
        Sampson

Aparte de eso, puede dar al elemento left-padding, y luego un texto-sangría negativo.

6

W3C dice que solo tiene que usar la propiedad del texto-sangrado.

source

.indentedtext 
{ 
    text-align:start; 
    text-indent:5em; 
} 
+0

Compatible con IE6? –

+0

W3Schools dice que funciona desde IE4 fuente: http://www.w3schools.com/css/css_text.asp Algunos sitios en la web sugieren hacer texto-sangría correctamente aunque en IE6 necesitas aplicarlo con text-align: izquierda; y pantalla: bloque; –

Cuestiones relacionadas