2012-09-26 21 views
6

Tengo una imagen de vector de escala y quiero que llene un contenedor. Hay un par de este tipo de preguntas en SO, aunque son un poco viejas. P.ej. Stretch and scale CSS background¿Cómo hacer que la imagen/imagen de fondo se estire para llenar el contenedor a través de CSS?

Sin embargo, cuando he intentado implementar tales soluciones, los resultados han sido decepcionantes.

Por ejemplo:

body { 

    margin: 0; 
    padding: 0; 
    text-align: center; 
    color: #000; 
    background-color: #000 
    font-family: Verdana, Arial, Helvetica, sans-serif; 
    font-size: 100%; 

} 

... 

.twoColLiqLtHdr #container { 
    width: 80%; 
    margin: 0 auto; 
    border: 2px solid #000000; 
    text-align: left; 
    background-color: #003; 
    background-image: url('background_image.svg'); 
    /*background-position: 80% 80%; */ 

    background-repeat: no-repeat; 
    color: #000; 
    font-family: "Times", cursive; 


    background-attachment:fixed; 
    min-height:100%; 
    /*top: 0; 
    left: 0; */ 



} 

He intentado varios arreglos, pero no puedo hacer que se extienden sin dejar zonas en blanco (la repetición es un éxito de todo tipo, pero se ve horrible).

Sin embargo, dado que estoy trabajando con un svg, me estoy acercando a esto de una manera incorrecta, ¿debería usar una etiqueta svg xmlns en el html? (P. S. Soy consciente de la imposibilidad absoluta de IE8 para manejar IVS)

Respuesta

15

Ha intentado

background-size:cover; 

comprobar algunos examples.

Tuve problemas con webkit, background-size:cover e imágenes de fondo SVG. Lo resuelto añadiendo

-webkit-background-origin:border; 
+0

Gracias. la cubierta cubre con éxito el contenedor. Sin embargo, y curiosamente, la imagen está demasiado 'ampliada', de modo que solo la mitad superior de la imagen es visible. o.O Como tengo la imagen fija, no es posible ver el resto de la imagen ... – user137263

+0

Ya no es necesario 'background-attachment: fixed;', ¡ya que cubrirá toda la altura! – Giona

+0

Me desconcierta un poco, pero la imagen de fondo parece desaparecer por completo cuando ya no está fija. : p – user137263

10

es probable que tenga que añadir preserveAspectRatio = "ninguno" como un atributo del elemento externo <svg> la imagen SVG sí en.

Si no desea modificar el archivo de imagen a continuación, usted podría intentar

Imagen de fondo: url ('background_image.svg # svgView (preserveAspectRatio (ninguno))');

Firefox 15 sería compatible con eso y probablemente con otros UA también.

+0

Bueno, muy útil. ¿Cómo puedo usarlo con SVG en línea codificado en base64, si es posible? – Giona

+0

Agregué el atributo a mi SVG antes de convertir a base64 y funcionó como un amuleto. Gracias @RobertLongson! – shshaw

+0

Gracias mucho. Usted y preserveAspectRatio = "none" salvó mi día. :) –

Cuestiones relacionadas