¿Cuál es la mejor manera (si la hay) de hacer que una imagen aparezca "atenuada" con CSS (es decir, sin cargar una versión de la imagen atenuada por separado)?
Mi contexto es que tengo filas en una tabla que tienen botones en la celda más a la derecha y algunas filas deben verse más claras que otras. Entonces, por supuesto, puedo aclarar la fuente fácilmente, pero también me gustaría aclarar las imágenes sin tener que administrar dos versiones de cada imagen.
Use la propiedad de filtro CSS3:
El soporte del navegador es un poco malo pero es 100% CSS. Un buen artículo sobre la propiedad de filtro CSS3 que puede encontrar aquí: http://blog.nmsdvid.com/css-filter-property/
fuente
contrast(x%)
propiedad, por ejemplograyscale(100%) contrast(30%)
.img { filter: grayscale(100%); opacity: 0.4; }
Tu aqui:
Css gris:
Desagradable:
Lo encontré en: http://zkiwi.com/topic/chuyen-hinh-mau-thanh-trang-den-bang-css-nhu-the-nao
Editar: IE10 + no admite filtros DX como IE9 y anteriores lo han hecho, ni admite una versión prefijada del filtro de escala de grises. Puede solucionarlo, use una de las dos soluciones a continuación:
<meta http-equiv="X-UA-Compatible" content="IE=9">
fuente
Si no le importa usar un poco de JavaScript, el fadeTo () de jQuery funciona bien en todos los navegadores que he probado.
fuente
Es mejor admitir todos los navegadores:
fuente
Aquí hay un ejemplo que le permite establecer el color del fondo. Si no desea utilizar flotante, es posible que deba establecer el ancho y la altura manualmente. Pero incluso eso realmente depende del CSS / HTML circundante.
fuente
Para atenuar:
"Para lograr".
"Para llenar de gris".
Notas útiles
¿Cuál es la diferencia entre CSS3 filter grayscale y saturate?
https://www.w3.org/TR/filter-effects-1
fuente
Puede usar
rgba()
en css para definir un color en lugar dergb()
. Me gusta esto:style='background-color: rgba(128,128,128, 0.7);
Te da el mismo color que
rgb(128,128,128)
pero con una opacidad del 70%, por lo que las cosas detrás solo muestran hasta el 30%. CSS3 pero ha funcionado en la mayoría de los navegadores desde 2008. Lo siento, no hay sintaxis #rrggbb que yo sepa. Juega con los números: puedes lavar con blanco, sombrear con gris, con lo que quieras diluir.OK, entonces haces un rectángulo en gris semitransparente (o cualquier color) y lo colocas encima de tu imagen, tal vez con posición: absoluta y un índice z mayor que cero, y lo pones justo antes de tu imagen y el valor predeterminado la ubicación del rectángulo será la misma esquina superior izquierda de su imagen. Deberia trabajar.
fuente
Teniendo en cuenta filter: expression es una extensión de Microsoft para CSS, por lo que solo funcionará en Internet Explorer. Si desea atenuarlo, le recomendaría que configure su opacidad al 50% con un poco de javascript.
http://lyxus.net/mv sería un buen lugar para comenzar, porque discute un script de opacidad que funciona con Firefox, Safari, KHTML, Internet Explorer y navegadores compatibles con CSS3.
También es posible que desee darle un borde gris.
fuente