Jaki jest najlepszy sposób (jeśli w ogóle), aby obraz wyglądał na „wyszarzony” za pomocą CSS (tj. Bez ładowania osobnej, wyszarzonej wersji obrazu)?
Moim kontekstem jest to, że mam wiersze w tabeli, z których wszystkie mają przyciski w najbardziej prawej komórce, a niektóre wiersze muszą wyglądać jaśniej niż inne. Oczywiście mogę łatwo rozjaśnić czcionkę, ale chciałbym również rozjaśnić obrazy bez konieczności zarządzania dwiema wersjami każdego obrazu.
Użyj właściwości filtru CSS3:
Obsługa przeglądarki jest trochę zła, ale w 100% CSS. Fajny artykuł na temat właściwości filtra CSS3 można znaleźć tutaj: http://blog.nmsdvid.com/css-filter-property/
źródło
contrast(x%)
właściwość, npgrayscale(100%) contrast(30%)
.img { filter: grayscale(100%); opacity: 0.4; }
Ty tutaj:
Css Gray:
Ungray:
Znalazłem to na: http://zkiwi.com/topic/chuyen-hinh-mau-thanh-trang-den-bang-css-nhu-the-nao
Edycja: IE10 + nie obsługuje filtrów DX, podobnie jak IE9 i wcześniejsze, ani nie obsługuje prefiksowanej wersji filtra w skali szarości. Możesz to naprawić, użyj jednego z dwóch poniższych rozwiązań:
<meta http-equiv="X-UA-Compatible" content="IE=9">
źródło
Jeśli nie masz nic przeciwko użyciu odrobiny JavaScript, fadeTo () jQuery działa dobrze w każdej przeglądarce, której wypróbowałem.
źródło
Lepiej obsługiwać wszystkie przeglądarki:
źródło
Oto przykład, który pozwala ci ustawić kolor tła. Jeśli nie chcesz używać pływaka, może być konieczne ręczne ustawienie szerokości i wysokości. Ale nawet to naprawdę zależy od otaczającego CSS / HTML.
źródło
Aby wyszarzyć:
„Achromatyzować”.
„Wypełnić szarym”.
Przydatne notatki
Jaka jest różnica między skalą szarości filtra CSS3 a nasyceniem?
https://www.w3.org/TR/filter-effects-1
źródło
Możesz użyć
rgba()
w css, aby zdefiniować kolor zamiastrgb()
. Lubię to:style='background-color: rgba(128,128,128, 0.7);
Daje ci ten sam kolor,
rgb(128,128,128)
ale z 70% kryciem, więc rzeczy za nim pokazują tylko 30%. CSS3, ale działa w większości przeglądarek od 2008 roku. Niestety, nie znam żadnej składni #rrggbb. Graj liczbami - możesz myć bielą, cień szarością, czymkolwiek chcesz rozcieńczyć.OK, więc utworzysz prostokąt w półprzezroczystej szarości (lub dowolnym innym kolorze) i położysz go na obrazie, być może z pozycją: absolutną i wskaźnikiem Z wyższym niż zero, i umieścisz go tuż przed obrazem i domyślnym lokalizacja prostokąta będzie tym samym lewym górnym rogiem obrazu. Powinno działać.
źródło
Biorąc pod uwagę filtr: wyrażenie jest rozszerzeniem Microsoft CSS, więc będzie działać tylko w Internet Explorerze. Jeśli chcesz to wyszarzyć, zalecam ustawienie jego krycia na 50% za pomocą odrobiny javascript.
Dobrze byłoby zacząć od http://lyxus.net/mv , ponieważ omawia on skrypt krycia, który działa z przeglądarkami Firefox, Safari, KHTML, Internet Explorer i CSS3.
Możesz także nadać mu szarą ramkę.
źródło