Autor Zpráva
Allonsy
Profil *
Už měsíc se snažím vymyslet jak v IE na poloprůhledné pozadí DIVu. Chrome,Opera a Firefox podporují zápis barvy i s alpha kanálem rgba, jenže IE ne. A bohužel jak jsem zjistil, když nastavím divu opacity nebo alpha filtry aby to brala i IE tak se zpoloprůhlední absolutně vše, ne jen pozadí. Doporučuje se na pozadí používat poloprůhledné gify jenže já bych radši něco jako background: rgba(0,0,0,0.5), prostě zápis pro poloprůhlednost kterou by vzal i IE, jenže nic takového zřejmě neexistuje a mě se vážně nechtějí použít obrázky, tak mě ještě napadlo, že udělat divy normálně s opacity a filtr alpha a nad ně pomocí pozicování umístit průhledné divy s obsahem, jenže to se mi zdá jako prasárna, protože to znepřehlednuje kód atd...
Chamurappi
Profil
Reaguji na Allonsyho:
mě se vážně nechtějí použít obrázky
Tomuhle nerozumím. Vyhlédneš si nějaký špatně podporovaný nesmysl a pak měsíc naříkáš, jak je to strašné, že není podporovaný, místo toho, abys sáhl po naprosto triviálním řešení, které se mnoho let osvědčeně používá. Proč se ti nechtějí použít obrázky?

zápis pro poloprůhlednost kterou by vzal i IE, jenže nic takového zřejmě neexistuje
Špatně hledáš.
Allonsy
Profil *
Popravdě řečeno protože vůbec netuším jak takový obrázek má vypadat a jak celé to pozadí má být nakódované. Ano IE bere filtry a v devítce i opacity, jenže já myslím zápis jen pro pozadí, abych si jak jsem již psal nemusel vytvářet nejdřív divy určené jako pozadí a pak až divy s obsahem.
Medvídek
Profil
Allonsy:
netuším jak takový obrázek má vypadat
http://www.picnik.com/picnikbox/lightbox_overlay.png

jak celé to pozadí má být nakódované
background: url(pozadi.png);
Allonsy
Profil *
Zapomněl jsem na zaoblené rohy, které také nemám řešené pomocí obrázků a v tomhle případě by tedy byl problém s nimi. Takže opravdu neexistuje jiné řešení pro IE než ta prasárna s překrýváním DIVů?
Medvídek
Profil
Allonsy:
zaoblené rohy, které také nemám řešené pomocí obrázků
Ale jde - ukázka zde: http://filez.party-akce.cz/djpw/pruhledne-pozadi.html
Allonsy
Profil *
Tak to je super :) Jestli to takto funguje i v IE tak není co řešit.
Chamurappi
Profil
Reaguji na Allonsyho:
netuším jak takový obrázek má vypadat
Třeba takhle:
— zmačkáno na 113 bajtů.

Ano IE bere filtry a v devítce i opacity, jenže já myslím zápis jen pro pozadí
Já mám také na mysli filtr vztahující se jen na pozadí.

Takže opravdu neexistuje jiné řešení pro IE než ta prasárna s překrýváním DIVů?
To není prasárna, ale naprosto obyčejné universální řešení. Kde to žiješ, že ti normální postupy připadají zvrácenější než ty, které nefungují spolehlivě?
Allonsy
Profil *
Moc děkuju a omlouvám se, netušil jsem, že je to s těmi obrázky tak jednoduché :) Ještě bych poprosil o typy jak snížit co nejvíc jejich datovou velikost? Obrázek 50x50 mi zabírá 160 bajtů, takže je chvíli pozadí průhledné než se web načte, což vidím jako jedinou nevýhodu... Chamurappi: Teď už spíš pro zajímavost, případně někdy do budoucna, jaký je teda ten zápis filtru prosím?
Darker
Profil
Allonsy:
A proč padesát na padesát? Stačí přece jediný poloprůhledný pixel, pokud má být pozadí homogení...
Já jsem si vytvořil PHP skript který mi vždy generuje pixel s danou aplhou (průhledností) a barvou. Ten se pak dá uložit, nebo přímo nalinkovat. Pokud tě zaujme tohle řešení, můžu ti ho poslat.
A ještě jsem našel tenhle pěkný článek o průhlednosti barev.
Chamurappi
Profil
Reaguji na Allonsyho:
Obrázek 50x50 mi zabírá 160 bajtů
Jednotky bajtů už u takhle malých velikostí nehrají moc roli, stejně se přenos kvantuje po paketech.
Ten můj obrázek jsem zmačkal programem OptiPNG a ještě jsem z něj vyházel zbytečné chunky programem TweakPNG.

jaký je teda ten zápis filtru prosím?
div.polo-cerna { filter: progid:DXImageTransform.Microsoft.Gradient(startcolorstr=#80000000, endcolorstr=#80000000); }
Upozorňuji, že použití jakéhokoliv filtru vypíná v sedmičce a osmičce vyhlazování písma ClearType, takže písmo vypadá hranatější.


Reaguji na Darkera:
A proč padesát na padesát? Stačí přece jediný poloprůhledný pixel
Protože jeden opakující se pixel zbytečně brzdí vykreslování. Čím větší, tím lepší.
Kdyby měl ten mnou ukázaný obrázek 1000×1000 pixelů, zabíral by 230 bajtů — datově by byl menší než (průměrná) HTTP hlavička.

ještě jsem našel tenhle pěkný článek o průhlednosti barev
Trochu zavádějící, namlouvá, že se opacity dědí.
Darker
Profil
Chamurappi:
Protože jeden opakující se pixel zbytečně brzdí vykreslování.
To jsem nevěděl, asi ten svůj skript ještě upravím.

Vaše odpověď


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0