2011-11-20 23 views
201

que tienen una imagen de fondo en el siguiente div, pero la imagen se corta:imagen de fondo Ajustar a div

<div style='text-align:center;background-image: url(/media/img_1_bg.jpg);background-repeat:no-repeat;width:450px;height:900px;' id="mainpage" align="center"> 

¿Hay una manera de mostrar la imagen de fondo sin cortarla?

+0

es la imagen más grande que el div? – grc

+0

sí la imagen es más grande que el div – Rajeev

Respuesta

454

Puede lograrlo con la propiedad background-size, que ahora es supported by most browsers.

para escalar la imagen de fondo para caber dentro del div:

background-size: contain; 

Para escalar la imagen de fondo para cubrir todo el div:

background-size: cover; 

JSFiddle example

También existe una filter for IE 5.5+ support , así como vendor prefixes for some older browsers.

+4

Creo que 'background-repeat: round' tiene el mejor resultado. Pero, lamentablemente, solo funciona en Chrome (hasta hoy). – Sertage

+0

Funcionó muy bien! ¡Gracias! – khailcs

+0

gracias @Sertage. no sabía que background-repeat también tiene una opción redonda :) gracias amigo. –

-5

Cambia el ancho y alto de su div o establece el tamaño del fondo.

3

también puede usar este:

background-size:contain; 
height: 0; 
width: 100%; 
padding-top: 66,64%; 

No sé sus valores div, pero vamos a suponer que tienes esos.

height: auto; 
max-width: 600px; 

Una vez más, esos son solo números aleatorios. Podría ser bastante difícil hacer la imagen de fondo (si lo desea) con un ancho fijo para el div, así que mejor use el ancho máximo. Y en realidad no es complicado llenar un div con una imagen de fondo, solo asegúrate de darle un estilo al elemento padre de la manera correcta, para que la imagen tenga un lugar al que pueda acceder.

Chris

53

Si lo que necesita es la imagen tiene las mismas dimensiones de la div, creo que esta es la solución más elegante:

background-size: 100% 100%; 

Si no es así, la respuesta es el por @grc lo más apropiado.

Fuente: http://www.w3schools.com/cssref/css3_pr_background-size.asp

+1

exactamente lo que estaba buscando, gracias :) –

+0

Finalmente encontré la solución para encajar todo div con el fondo. ¡Gracias! –

+0

funcionó para mí. gracias :) –

Cuestiones relacionadas