Si necesita agrandar la imagen, debe editarla en un editor de imágenes.
Si usa la etiqueta img, puede cambiar el tamaño, pero eso no le daría el resultado deseado si necesita que la imagen sea fondo para algún otro contenido (y no se repetirá como parece).
CSS3 desata los poderes
Esto es posible hacer en CSS3 con background-size.
Todos los navegadores modernos admiten esto, por lo que, a menos que necesite admitir navegadores antiguos, esta es la forma de hacerlo. Navegadores compatibles:
Mozilla Firefox 4.0+ (Gecko 2.0+), Microsoft Internet Explorer 9.0+, Opera 10.0+, Safari 4.1+ (webkit 532) y Chrome 3.0+.
.stretch{/* Will stretch to specified width/height */background-size:200px150px;}.stretch-content{/* Will stretch to width/height of element */background-size:100%100%;}.resize-width{/* width: 150px, height: auto to retain aspect ratio */background-size:150px Auto;}.resize-height{/* height: 150px, width: auto to retain aspect ratio */background-size: Auto 150px;}.resize-fill-and-clip{/* Resize to fill and retain aspect ratio.
Will cause clipping if aspect ratio of box is different from image. */background-size: cover;}.resize-best-fit{/* Resize to best fit and retain aspect ratio.
Will cause gap if aspect ratio of box is different from image. */background-size: contain;}
En particular, me gustan los valores covery containque nos dan un nuevo poder de control que no teníamos antes.
Redondo
También puede usar background-size: roundque tenga un significado en combinación con repetir:
.resize-best-fit-in-repeat{/* Resize to best fit in a whole number of times in x-direction */background-size: round auto;/* Height: auto is to keep aspect ratio */background-repeat: repeat;}
Esto ajustará el ancho de la imagen para que se ajuste varias veces en el área de posicionamiento del fondo.
Nota adicional
Si el tamaño que necesita es un tamaño de píxel estático, sigue siendo inteligente cambiar el tamaño físico de la imagen real. Esto es tanto para mejorar la calidad del cambio de tamaño (dado que su software de imagen hace un mejor trabajo que los navegadores) como para ahorrar ancho de banda si la imagen original es más grande de lo que se muestra.
Tenga en cuenta que también está la cuestión de las pantallas de retina en iPad y iPhone y probablemente otros dispositivos de alta resolución por venir. Esto significa que puede valer la pena cambiar el tamaño de las imágenes más grandes usando CSS y usar múltiples archivos CSS y otros trucos para servir imágenes específicas. Buena introducción aquí: webmonkey.com/2012/03/…
Leo
Esta es la peor solución por ahora, ya que no todas las tiendas de comercio electrónico cambiarán el tamaño de la imagen como se sugiere. En 2009, lo más probable es que estuviera cerca de la mejor opción, ahora solo use los atributos de tamaño como se muestra a continuación.
ShaunOReilly
332
Solo CSS 3 admite eso,
background-size:200px50px;
Pero editaría la imagen en sí, para que el usuario necesite cargar menos, y podría verse mejor que una imagen reducida sin antialias.
tamaño de fondo: 100%; posición de fondo: centro; - esto funciona en IE6 ejecutándose en mi máquina virtual en XP Home.
InnateDev
77
IE 6,7,8 no es 'la mayoría de los navegadores'.
Mahmoodvcs
1
Incluso en 2013, si bien el comentario "IE6,7,8 no es 'la mayoría de los navegadores'" podría ser en parte cierto con respecto a IE6; Desafortunadamente, IE7 e IE8 todavía tienen una participación de mercado bastante dominante. La mejor manera que he encontrado para hacer esto es usar Javascript en combinación con modernizr (u otro medio de etiquetar 'OLDIE').
AndrewPK
19
No es posible . El fondo siempre será tan grande como sea posible, pero puede evitar que se repita background-repeat.
background-repeat:no-repeat;
En segundo lugar, el fondo no entra en el área de margen de un cuadro, por lo que si desea que el fondo solo esté en el contenido real de un cuadro, puede usar margen en lugar de relleno.
En tercer lugar, puede controlar dónde comienza la imagen de fondo. De forma predeterminada, es la esquina superior izquierda de un cuadro, pero puede controlar eso con background-position, de esta manera:
background-position: center top;
o quizás
background-position:20px-14px;
El posicionamiento negativo se usa mucho con los sprites CSS .
No, no es tan grande como puedo ser. Siempre es del mismo tamaño, pero necesito hacerlo más grande.
Johan
Bueno, eso no es posible. Puede haber opciones para hacerlo en futuras versiones de CSS, pero eso está muy lejos.
mikl
Esta respuesta es incorrecta. CSS3 tiene la propiedad de tamaño de fondo que es compatible con IE9 +.
Downpour046
3
Echa un vistazo a la marca de tiempo. En 2009, el tamaño del fondo no era más que un brillo en los ojos de WebKit. Si lo desea, puede actualizarlo, pero ya hay muchas otras respuestas que describen el tamaño del fondo.
mikl
12
No es demasiado difícil, si no tienes miedo de profundizar un poco :)
Hay un argumento olvidado :
background-size: contain;
Esto no estirará su background-imagecomo lo haría con cover. Se estiraría hasta que el lado más largo alcanzara el ancho o la altura del contenedor exterior y, por lo tanto, conservara la imagen.
Editar: También hay -webkit-background-sizey -moz-background-size.
La propiedad de tamaño de fondo es compatible con IE9 +, Firefox 4+, Opera, Chrome y Safari 5+.
En apoyo de la respuesta que dio @tetra, quiero señalar que si la imagen es un SVG, entonces no es necesario cambiar el tamaño de la imagen real.
Dado que un archivo SVG es solo XML, puede especificar el tamaño que desee que aparezca dentro del XML.
Sin embargo, si está utilizando la misma imagen SVG en diferentes lugares y necesita que sea de diferentes tamaños, entonces usar background-sizees muy útil. De todos modos, los archivos SVG son inherentemente más pequeños que las imágenes ráster y cambiar el tamaño sobre la marcha con CSS puede ser muy útil sin ningún costo de rendimiento que conozca, y ciertamente poca o ninguna pérdida de calidad.
body {
background-image: url(images/bg-body.png);
background-size:100%;/* size the background image at 100% like any responsive img tag */
background-position: top center;
background-repeat:no-repeat;}
Esto ajustará el tamaño de una imagen de fondo al 100% del ancho del elemento del cuerpo y luego cambiará el tamaño del fondo en consecuencia a medida que el elemento del cuerpo cambie el tamaño para resoluciones más pequeñas.
put the below code in the body of you css file
background-image: URL('../images/wave-green-plain-colour.jpg');-webkit-background-size: cover;-moz-background-size: cover;-o-background-size: cover;
background-size: cover;
width:100px;
Utilizo imágenes de fondo para botones, pero solo muestra la imagen del mismo tamaño que el texto, incluso si configuro el ancho y la altura. En cambio, relleno mi texto con caracteres (espacios que no se rompen). Bofeteé tantas veces como sea necesario, básicamente, hasta que aparece todo el fondo del botón. Entonces podría tener un código como este:
Otra forma es establecer el tamaño del enlace al tamaño de la imagen de fondo. En la hoja de estilo, (bajo # v2menu-home en el ejemplo anterior) use display: block y configure la altura y el ancho allí. Eso realmente funciona. No hay necesidad de caracteres espaciales que no se rompan entonces.
Martin Thompson, el
0
Por ejemplo: la
imagen de fondo siempre se ajustará al tamaño del contenedor (ancho 100% y altura 100px).
CSS de navegador cruzado:
Respuestas:
CSS2
Si necesita agrandar la imagen, debe editarla en un editor de imágenes.
Si usa la etiqueta img, puede cambiar el tamaño, pero eso no le daría el resultado deseado si necesita que la imagen sea fondo para algún otro contenido (y no se repetirá como parece).
CSS3 desata los poderes
Esto es posible hacer en CSS3 con
background-size
.Todos los navegadores modernos admiten esto, por lo que, a menos que necesite admitir navegadores antiguos, esta es la forma de hacerlo.
Navegadores compatibles:
Mozilla Firefox 4.0+ (Gecko 2.0+), Microsoft Internet Explorer 9.0+, Opera 10.0+, Safari 4.1+ (webkit 532) y Chrome 3.0+.
En particular, me gustan los valores
cover
ycontain
que nos dan un nuevo poder de control que no teníamos antes.Redondo
También puede usar
background-size: round
que tenga un significado en combinación con repetir:Esto ajustará el ancho de la imagen para que se ajuste varias veces en el área de posicionamiento del fondo.
Nota adicional
Si el tamaño que necesita es un tamaño de píxel estático, sigue siendo inteligente cambiar el tamaño físico de la imagen real. Esto es tanto para mejorar la calidad del cambio de tamaño (dado que su software de imagen hace un mejor trabajo que los navegadores) como para ahorrar ancho de banda si la imagen original es más grande de lo que se muestra.
fuente
Solo CSS 3 admite eso,
Pero editaría la imagen en sí, para que el usuario necesite cargar menos, y podría verse mejor que una imagen reducida sin antialias.
fuente
background: url('resized_image.png')\9;
Si sus usuarios usan solo Opera 9.5+, Safari 3+, Internet Explorer 9+ y Firefox 3.6+, entonces la respuesta es sí. De otra manera no.
La propiedad de tamaño de fondo es parte de CSS 3, pero no funcionará en la mayoría de los navegadores.
Para sus propósitos, solo agrande la imagen real.
fuente
No es posible . El fondo siempre será tan grande como sea posible, pero puede evitar que se repita
background-repeat
.En segundo lugar, el fondo no entra en el área de margen de un cuadro, por lo que si desea que el fondo solo esté en el contenido real de un cuadro, puede usar margen en lugar de relleno.
En tercer lugar, puede controlar dónde comienza la imagen de fondo. De forma predeterminada, es la esquina superior izquierda de un cuadro, pero puede controlar eso con
background-position
, de esta manera:o quizás
El posicionamiento negativo se usa mucho con los sprites CSS .
fuente
No es demasiado difícil, si no tienes miedo de profundizar un poco :)
Hay un argumento olvidado :
Esto no estirará su
background-image
como lo haría concover
. Se estiraría hasta que el lado más largo alcanzara el ancho o la altura del contenedor exterior y, por lo tanto, conservara la imagen.Editar: También hay
-webkit-background-size
y-moz-background-size
.- Fuente: Escuelas W3
fuente
En apoyo de la respuesta que dio @tetra, quiero señalar que si la imagen es un SVG, entonces no es necesario cambiar el tamaño de la imagen real.
Dado que un archivo SVG es solo XML, puede especificar el tamaño que desee que aparezca dentro del XML.
Sin embargo, si está utilizando la misma imagen SVG en diferentes lugares y necesita que sea de diferentes tamaños, entonces usar
background-size
es muy útil. De todos modos, los archivos SVG son inherentemente más pequeños que las imágenes ráster y cambiar el tamaño sobre la marcha con CSS puede ser muy útil sin ningún costo de rendimiento que conozca, y ciertamente poca o ninguna pérdida de calidad.Aquí hay un ejemplo rápido:
(Nota: esto funciona para mí en OS X 10.7 con Firefox 8, Safari 5.1 y Chrome 16.0.912.63)
fuente
tamaño de fondo: 200px 50px cámbielo a 100% 100% y escalará según las necesidades de la etiqueta de contenido como ul li o div ... lo probé
fuente
Puedes hacerlo totalmente con CSS3:
Esto ajustará el tamaño de una imagen de fondo al 100% del ancho del elemento del cuerpo y luego cambiará el tamaño del fondo en consecuencia a medida que el elemento del cuerpo cambie el tamaño para resoluciones más pequeñas.
Aquí está el ejemplo: http://www.sccc.premiumdw.com/examples/resize-background-images-with-css/
fuente
Solo tengo divs anidados para ser compatibles con el navegador cruzado
fuente
Puedes usar dos
<div>
elementos:Uno es un contenedor (es el que originalmente quería que apareciera la imagen de fondo).
El segundo está contenido dentro. Establece su tamaño al tamaño de la imagen de fondo (o el tamaño que desea que aparezca).
El div contenido se configura para ser posicionado
absolute
. De esta manera, no interfiere con el flujo normal de elementos en el div que contiene.Le permite usar imágenes de sprites de manera eficiente.
fuente
No puede establecer el tamaño de su imagen de fondo con la versión actual de CSS (2.1).
Sólo se puede establecer:
position
,fix
,image-url
,repeat-mode
, ycolor
.fuente
fuente
Has escrito
pero solo verá el fondo según el tamaño del contenedor.
Si tiene un contenedor vacío con la URL de fondo y sea cual sea el tamaño del fondo, no verá el bg.gif.
Si establece el tamaño del continuo en
combinado con el código que escribió anteriormente, podrá ver el archivo bg.gif.
fuente
background-size
funciona en Chrome 4.1, pero hasta ahora no pude hacerlo funcionar en Firefox 3.6.fuente
Utilizo imágenes de fondo para botones, pero solo muestra la imagen del mismo tamaño que el texto, incluso si configuro el ancho y la altura. En cambio, relleno mi texto con
caracteres (espacios que no se rompen). Bofeteé tantas veces como sea necesario, básicamente, hasta que aparece todo el fondo del botón. Entonces podría tener un código como este:En la hoja de estilo:
En el documento HTML:
fuente
Por ejemplo: la
imagen de fondo siempre se ajustará al tamaño del contenedor (ancho 100% y altura 100px).
CSS de navegador cruzado:
}
fuente
Esto es posible hacerlo en CSS3 con tamaño de fondo
fuente
Si desea establecer
background-size
la mismabackground
propiedad, puede usar:fuente