Moderní tvorba webových aplikací

O webu

Černobílý styl obrázku

Jak v CSS zajistit černobílý styl běžného obrázku. Napříč prohlížeči stále panují rozdíly.

5 minut

Internet Explorer 6–9

V Explorerech lze od pradávna využít vlastnost filter:

element {filter: gray}

Google Chrome

V Chrome funguje nová prefixovaná vlastnost filter.

-webkit-filter: grayscale(100%)

Firefox

Ve Firefoxu pro změnu funguje zadání filtru jako SVG:

element {
filter: url("data:image/svg+xml;utf8,<svg xmlns=\'http://www.w3.org/2000/svg\'><filter id=\'grayscale\'><feColorMatrix type=\'matrix\' values=\'0.3333 0.3333 0.3333 0 0 0.3333 0.3333 0.3333 0 0 0.3333 0.3333 0.3333 0 0 0 0 0 1 0\'/></filter></svg>#grayscale")
}

Funkční v IE 6-9, Firefox, Chrome

Internet Explorer 10 a Opera

Paradoxní situace nastává u IE 10, kde už staré dobré filtry nefungují. A nové filtry ještě nefungují (ani s prefixem -ms-). Jedno řešení je shodit Explorer do režimu 9 (gray filtr je jeden z mála, spolu s průhledností, co takto funguje), druhé použít na stránce <svg>.

V Opeře pochopitelně zbývá jen druhá možnost. Taktéž řešení pomocí SVG bude funkční i v Chromu a Firefoxu (ne ale v IE 9 a starších).

Řešení pomocí <svg> v HTML

  1. Vytvoří se <svg> kontejner,
  2. vytvoří se nějaké ty filtry (lze použít generátor),
  3. vloží se obrázek jako <image>, na který se použije výše vytvořený filter.

Ukázka

Pseudo černobílost

Lehce podobný efekt lze vytvořit překrytím obrázku průhledným elementem s černým pozadím.

Hudba budoucnosti

V budoucnu by ideálně mělo v prohlížečích fungovat prosté filter: grayscale(100%), jak nyní (byť s prefixem) funguje v Chrome. Případně alespoň s prefixem pro daný prohlížeč.

Zdroje a odkazy

Související články

Převod písmen na VELKÁ a malá

Převedení textu na velká nebo malá písmena.

12 minut

Možnosti stylování <iframe>

Co lze a nelze u <iframe> ovlivnit pomocí CSS a jak na změnu textu nebo barev.

10 minut

Zvýraznění aktivní sekce při rolování

Moderní způsoby zvýraznění aktivní položky navigace podle aktuální sekce – CSS i IntersectionObserver.

5 minut

CSS funkce random()

Jak v CSS generovat náhodné hodnoty pomocí random() a kdy ji použít.

6 minut

Web jecas.cz píše Bohumil Jahoda, kontakt
Seznam všech článků
2013–2025