2011-12-19 7 views
8

¿Cómo establecería el color de fondo de un texto que no se expande al ancho de su elemento primario div? Usé h1{background color:white;} y envolví h1 alrededor del texto que quiero, pero el fondo blanco simplemente se extiende más allá del texto. Es casi como si estuvieras resaltando las palabras.css color de fondo se extiende tan lejos como el texto?

+0

por qué no cambiar el color del texto y crea el background-color: transparente? No estoy exactamente seguro de lo que estás tratando de hacer aquí. –

+0

¿Ha intentado agregar el color de fondo en el div en lugar del elemento h1? – Rondel

Respuesta

15

h1 es un elemento de bloque, por lo que utilizará toda el área disponible. por lo que cambiar este elemento de línea, para utilizar solamente su anchura

h1 { 
    display: inline; 
    background-color: white; 
} 

http://jsfiddle.net/wxNQR/

+1

Esto lo resolvió. Tristemente tengo 5 minutos hasta que pueda verificar esto ... – Matt

+1

¿Por desgracia? xD ...... – eveevans

3

El problema es que h1 es un elemento de nivel de bloque y, por defecto, los elementos de nivel de bloque se expandirán para llenar todo el ancho disponible del elemento principal.

La forma más fácil de resolver esto es el elemento float:

h1 { 
    background-color: white; 
    float: left; 
} 

A continuación, tendrá el estilo del párrafo siguiente, de modo que no fluye alrededor del elemento de encabezado:

p { 
    clear: left; 
} 

Si se siente cómodo al no soportar IE7 y las siguientes, puede usar el selector de hermanos adyacente para hacer que esta selección sea más nítida, de modo que solo los elementos p directamente después de los elementos h1 tengan ese estilo:

h1 + p { 
    clear: left; 
} 
+1

Honestamente, considero que los flotadores son un PITA importante, y no estoy de acuerdo con que los flotadores presenten la solución _easiest_. ¿Por qué no simplemente envolver el texto en un ''? –

+0

@ MДΓΓБДLL OK, la "mejor solución semántica". Introducir un 'lapso 'solo por el estilo es desordenado, IMO. – lonesomeday

+1

@ MДΓΓБДLL porque H1 podría ser el elemento semánticamente correcto para usar. Visualización IMO: el bloque en línea sería la mejor manera de resolver esto, si solo fuera compatible con IE7 ... – ptriek

Cuestiones relacionadas