Imágenes de fondo CSS responsivas

Resuelto jochemke asked hace 12 años • 19 respuestas

Tengo un sitio web (g-floors.eu) y quiero que el fondo (en CSS he definido una imagen bg para el contenido) también responda. Desafortunadamente, realmente no tengo idea de cómo hacer esto, excepto una cosa que se me ocurre, pero es una gran solución. Crear varias imágenes y luego usar el tamaño de pantalla CSS para cambiar las imágenes, pero quiero saber si hay una forma más práctica de lograrlo.

Básicamente, lo que quiero lograr es que la imagen (con la marca de agua 'G') cambie de tamaño automáticamente sin mostrar menos imagen. Si es posible claro

enlace: g-floors.eu

Código que tengo hasta ahora (parte del contenido)

#content {
  background-image: url('../images/bg.png');
  background-repeat: no-repeat;
  position: relative;
  width: 85%;
  height: 610px;
  margin-left: auto;
  margin-right: auto;
}
jochemke avatar Sep 27 '12 02:09 jochemke
Aceptado

Si desea que la misma imagen se escale según el tamaño de la ventana del navegador:

background-image:url('../images/bg.png');
background-repeat:no-repeat;
background-size:contain;
background-position:center;

No establezca ancho, alto o márgenes.

EDITAR: La línea anterior sobre no configurar el ancho, alto o margen se refiere a la pregunta original de OP sobre la escala con el tamaño de la ventana. En otros casos de uso, es posible que desee establecer el ancho/alto/márgenes si es necesario.

Andrei Volgin avatar Sep 26 '2012 19:09 Andrei Volgin

Con este código, su imagen de fondo va al centro y corrige su tamaño cualquiera que sea el cambio de tamaño de su div, bueno para tamaños pequeños, grandes y normales, lo mejor para todos, lo uso para mis proyectos donde mi tamaño de fondo o tamaño de div pueden cambiar

background-repeat:no-repeat;
-webkit-background-size:cover;
-moz-background-size:cover;
-o-background-size:cover;
background-size:cover;
background-position:center;
Pnsadeghy avatar Nov 16 '2013 20:11 Pnsadeghy

Prueba esto :

background-image: url(_images/bg.png);
background-repeat: no-repeat;
background-position: center center;
background-attachment: fixed;
background-size: cover;
Ashok Dey avatar Mar 17 '2014 22:03 Ashok Dey

CSS:

background-size: 100%;

¡Eso debería hacer el truco! :)

Timothy Miller avatar Sep 26 '2012 19:09 Timothy Miller

Aquí está sass mixin para la imagen de fondo responsiva que uso. Sirve para cualquier blockelemento. Por supuesto, lo mismo puede funcionar en CSS simple, solo tendrás que calcularlo paddingmanualmente.

@mixin responsive-bg-image($image-width, $image-height) {
  background-size: 100%;
  height: 0;
  padding-bottom: percentage($image-height / $image-width);
  display: block;
}


.my-element {
  background: url("images/my-image.png") no-repeat;

  // substitute for your image dimensions
  @include responsive-bg-image(204, 81);
}

Ejemplo http://jsfiddle.net/XbEdW/1/

lanan avatar Nov 25 '2013 15:11 lanan