una toda que poner pantalla ocupe imagen fondo expandir div con completa como ajustar css html background background-image

css - toda - Cómo estirar la imagen de fondo para completar un div



imagen de fondo html (9)

Quiero establecer una imagen de fondo para diferentes divs, pero mis problemas son:

  1. El tamaño de la imagen es fijo (60px).
  2. Variando el tamaño de div

¿Cómo puedo estirar la imagen de fondo para llenar todo el fondo del div?

#div2{ background-image:url(http://s7.static.hootsuite.com/3-0-48/images/themes/classic/streams/message-gradient.png); height:180px; width:200px; border: 1px solid red; }

Verifica el código aquí.


CSS3 moderno (recomendado para el futuro y la mejor solución)

.selector{ background-size: cover; /* streches background WITHOUT deformation so it would fill the background space, it may crop the image if the image''s dimensions are in different ratio, than the element dimensions. */ }

Max. estirar sin recorte ni deformación (puede no rellenar el background-size: contain; ) : background-size: contain;
Fuerza el estiramiento absoluto (puede causar deformación, pero no cosecha) : background-size: 100% 100%;

"Viejo" CSS "siempre funciona"

Imagen de posicionamiento absoluto como primer hijo del padre (en posición relativa) y estirándolo al tamaño principal.

HTML

<div class="selector"> <img src="path.extension" alt="alt text"> <!-- some other content --> </div>

Equivalente de background-size: cover; de CSS3 background-size: cover; :

Para lograr esto dinámicamente, debería usar la alternativa al método contrario de contener (ver a continuación) y si necesita centrar la imagen recortada, necesitaría un JavaScript para hacerlo de forma dinámica, por ejemplo, usando jQuery:

$(''.selector img'').each(function(){ $(this).css({ "left": "50%", "margin-left": "-"+( $(this).width()/2 )+"px", "top": "50%", "margin-top": "-"+( $(this).height()/2 )+"px" }); });

Ejemplo práctico:

Equivalente de background-size: contain; de CSS3 background-size: contain; :

Éste puede ser un poco complicado: la dimensión de su fondo que desborda al padre tendrá CSS configurado en 100% y el otro en automático. Ejemplo práctico:

.selector img{ position: absolute; top:0; left: 0; width: 100%; height: auto; /* -- OR -- */ /* width: auto; height: 100%; */ }

Equivalente de background-size: 100% 100%; de CSS3 background-size: 100% 100%; :

.selector img{ position: absolute; top:0; left: 0; width: 100%; height: 100%; }

PD: Para hacer los equivalentes de cubrir / contener de la manera "antigua" completamente de forma dinámica (para que no tenga que preocuparse por los desbordamientos / proporciones) tendría que usar javascript para detectar las proporciones y establecer las dimensiones como se describen. ..


Añadir

background-size:100%;

a su CSS debajo de la imagen de fondo.

También puede especificar dimensiones exactas, es decir:

background-size: 30px 40px;

Aquí: JSFiddle


Para esto puede usar la propiedad de background-size CSS3. Escribe así:

#div2{ background-image:url(http://s7.static.hootsuite.com/3-0-48/images/themes/classic/streams/message-gradient.png); -moz-background-size:100% 100%; -webkit-background-size:100% 100%; background-size:100% 100%; height:180px; width:200px; border: 1px solid red; }

Mira esto: http://jsfiddle.net/qdzaw/1/


Para mantener la relación de aspecto, use background-size: 100% auto;

div { background-image: url(''image.jpg''); background-size: 100% auto; width: 150px; height: 300px; }


Pruebe algo como esto:

div { background-image: url(../img/picture1.jpg); height: 30em; background-repeat: no-repeat; width: 100%; background-position: center; }


Puedes añadir:

#div2{ background-image:url(http://s7.static.hootsuite.com/3-0-48/images/themes/classic/streams/message-gradient.png); background-size: 100% 100%; height:180px; width:200px; border: 1px solid red; }

Puedes leer más sobre esto aquí: css3 background-size


Puedes usar:

background-size: cover;

O simplemente usa una gran imagen de fondo con:

background: url(''../images/teaser.jpg'') no-repeat center #eee;


mediante el uso de la propiedad CSS:

background-size: cover;


body{ margin:0; background:url(''image.png'') no-repeat 50% 50% fixed; background-size: cover; }