Quiero que mi imagen de fondo se estire y escale dependiendo del tamaño de la ventana de visualización del navegador.
He visto algunas preguntas sobre Stack Overflow que hacen el trabajo, como Estirar y escalar fondo CSS, por ejemplo. Funciona bien, pero quiero colocar la imagen usando background
, no con una img
etiqueta.
En ese img
se coloca una etiqueta, y luego con CSS hacemos un homenaje a la img
etiqueta.
width:100%; height:100%;
Funciona, pero esa pregunta es un poco antigua, y afirma que en CSS 3 cambiar el tamaño de una imagen de fondo funcionará bastante bien. Probé este ejemplo el primero , pero no funcionó para mí.
¿Hay un buen método para hacerlo con la background-image
declaración?
css
background
Fábio Antunes
fuente
fuente
Respuestas:
CSS3 tiene un pequeño y agradable atributo llamado
background-size:cover
.Esto escala la imagen para que el área de fondo quede completamente cubierta por la imagen de fondo mientras se mantiene la relación de aspecto. Toda el área estará cubierta. Sin embargo, parte de la imagen puede no ser visible si el ancho / alto de la imagen redimensionada es demasiado grande.
fuente
background-size: 100vw 100vh;
funciona bien.background-size: cover; -ms-background-size: cover; -o-background-size: cover; -moz-background-size: cover; -webkit-background-size: cover;
background-size: 100% auto;
stackoverflow.com/questions/41025630/…Puede usar la propiedad CSS3 para hacerlo bastante bien. Cambia el tamaño a la proporción para que no haya distorsión de la imagen (aunque sí aumenta las imágenes pequeñas). Solo tenga en cuenta que todavía no está implementado en todos los navegadores.
fuente
background-image
e incluya la propiedad anterior. Como se mencionó, el soporte del navegador aún no es bueno y hay versiones específicas de este, es decir.-webkit-background-size
etc. Vea el módulo W3C CSS3: background-size y css3.info: background-sizeauto
para preservar la relación de aspecto.Usando el código que mencioné ...
HTML
CSS
Eso produce el efecto deseado: solo se desplazará el contenido, no el fondo.
La imagen de fondo cambia de tamaño a la ventana del navegador para cualquier tamaño de pantalla. Cuando el contenido no se ajusta a la ventana gráfica del navegador y el usuario necesita desplazarse por la página, la imagen de fondo permanece fija en la ventana gráfica mientras se desplaza el contenido.
Con CSS 3 parece que esto sería mucho más fácil.
fuente
background : url("example.png");
) y luego usar el atributo CSSbackground-size:100%;
debajo de él para, con suerte, escalar la imagen al ancho de la pantalla. Esto no funcionará, ¿verdad? Si desea poner una imagen de fondo para el cuerpo, entonces se debe agregar un atributo de imagen a la etiqueta del cuerpo como<body background="example.png">
. Luego usa cssbackground-size:100%;
para escalarlo.CSS:
fuente
html, body {...}
lugar debody {...}
.estira el fondo para llenar todo el elemento en ambos ejes.
fuente
La siguiente parte de CSS debería estirar la imagen con todos los navegadores.
Hago esto dinámicamente para cada página. Por lo tanto, uso PHP para generar su propia etiqueta HTML para cada página. Todas las imágenes están en la carpeta 'imagen' y terminan en 'Bg.jpg'.
Si solo tiene una imagen de fondo para todas las páginas, puede eliminar la
$pic
variable, eliminar las barras diagonales de escape, ajustar las rutas y colocar este código en su archivo CSS.Esto se probó con Internet Explorer 9, Chrome 21 y Firefox 14.
fuente
-webkit-background-size
,-moz-background-size
y así sucesivamente. Ver developer.mozilla.org/en-US/docs/CSS/… O puede incluirlo a prueba de futuro en propiedades abreviadas comobackground: url(img/bg-home.jpg) no-repeat center center / cover fixed;
De hecho, puede lograr el mismo efecto que una imagen de fondo con la etiqueta img. Solo tiene que establecer su índice z más bajo que todo lo demás, establecer la posición: absoluta y usar un fondo transparente para cada cuadro en primer plano.
fuente
Usa este CSS:
fuente
Se explica por trucos CSS: imagen de fondo de página completa perfecta
Demostración: https://css-tricks.com/examples/FullPageBackgroundImage/progressive.php
Código:
fuente
Puede agregar esta clase en su archivo CSS.
Funciona en:
background-size
, pero no las palabras clave)fuente
Para escalar sus imágenes adecuadamente según el tamaño del contenedor, use lo siguiente:
fuente
Yo uso esto, y funciona con todos los navegadores:
fuente
¡Gracias!
Pero entonces no estaba trabajando para el Google Chrome y Safari navegadores (estiramiento funcionado, pero la altura de las imágenes fue sólo 2 mm!) , Hasta que alguien me dijo lo que le falta:
Así que cambia eso para tu
height:100%;
línea, da:Justo antes de ese código recién agregado, tengo esto en mis temas de Drupal Tendu
style.css
:Luego tengo que hacer un nuevo bloque dentro de Drupal con la imagen mientras agrego
class=stretch
:Simplemente copiar una imagen con el editor en ese bloque Drupal no funciona; uno tiene que cambiar el editor a texto sin formato.
fuente
Estoy de acuerdo con la imagen en div absoluta con 100% de ancho y alto. Asegúrese de establecer el 100% de ancho y alto para el cuerpo en el CSS y establecer los márgenes y el relleno a cero. Otro problema que encontrará con este método es que al seleccionar texto, el área de selección a veces puede abarcar la imagen de fondo, lo que tiene el desafortunado efecto de hacer que la página completa tenga el estado seleccionado. Puede solucionar esto utilizando la
user-select:none
regla CSS, de esta manera:Nuevamente, Internet Explorer es el malo aquí, porque no reconoce la opción de selección de usuario; ni siquiera la vista previa de Internet Explorer 10 lo admite, por lo que tiene la opción de usar JavaScript para evitar la selección de imágenes de fondo (por ejemplo, http : //www.felgall.com/jstip35.htm ) o usando el método CSS 3 background-stretch.
Además, para SEO , pondría la imagen de fondo en la parte inferior de la página, pero si la imagen de fondo tarda demasiado en cargarse (es decir, con un fondo blanco inicialmente), puede pasar a la parte superior de la página.
fuente
Quería centrar y escalar una imagen de fondo, sin extenderla a toda la página, y quería mantener la relación de aspecto. Esto funcionó para mí, gracias a las variaciones sugeridas en otras respuestas:
IMAGEN EN LÍNEA: ------------------------
CSS ----------------------------------
fuente
Utilicé una combinación de las propiedades CSS de background-X para lograr la imagen de fondo de escala ideal.
Esto hace que el fondo siempre cubra toda la ventana del navegador y permanezca centrado al escalar.
fuente
Use el complemento Backstretch . Incluso podría tener varias imágenes de diapositivas. También funciona dentro de contenedores. De esta manera, por ejemplo, se podría cubrir solo una parte del fondo con una imagen de fondo.
Dado que incluso podría hacerlo funcionar, demuestra que es un complemento fácil de usar :).
fuente
Si desea tener el contenido centrado horizontalmente, use una combinación como esta:
Esto se verá hermoso.
fuente
Usa este CSS:
background-size: 100% 100%
fuente
Puede usar la
border-image : yourimage
propiedad para escalar la imagen hasta el borde. Incluso si proporciona la imagen de fondo, la imagen del borde se dibujará sobre ella.La
border-image
propiedad es muy útil si su hoja de estilo se implementa en algún lugar que no sea compatible con CSS 3. Si está utilizando Google Chrome o Firefox, le recomiendo labackground-size:cover
propiedad en sí.fuente
¿Quieres lograr esto simplemente usando una imagen? Porque en realidad puedes hacer algo similar a un fondo de estiramiento usando dos imágenes. Imágenes PNG por ejemplo.
He hecho esto antes, y no es tan difícil. Además, creo que el estiramiento dañaría la calidad del fondo. Y si agrega una imagen enorme, ralentizaría la velocidad de las computadoras y los navegadores.
fuente
Lo siguiente funcionó para mí.
que funcionó para cubrir todo el fondo en diferentes dimensiones
fuente