Autor Zpráva
phobos9007
Profil
Zdravím,

Když nastavím např. bloku opacity a na ten blok umístím obrázek, zprůhlední se mi i ten obrázek. Když jsem doteď používal místo opacity průhledný png, tak se ten obrázek na tomhle průhledným pozadí zobrazoval normálně, bez transparentnosti.
Je to takhle správné chování opacity? Nedává to moc smysl.

Díky
ShiraNai7
Profil
Je to správně. Opacity mění vlastnost daného bloku i všeho v něm (stejně jako font-size a tak dále, pokud není přepsána jiným pravidlem).
Chování by mělo jít upravit takto (opacity pro blok, jeho obsah normálně):

#blok {opacity: 0.5;}
#blok > * {opacity: 1;}
phobos9007
Profil
Díky
Bubák
Profil
ShiraNai7:
Chování by mělo jít upravit takto (opacity pro blok, jeho obsah normálně):
Naivní představa, vše, co je v #blok, bude mít opacity 0.5.
Stano
Profil
phobos9007:
background-color: rgba(0, 0, 0, 0.5);

keď zadáš priehľadnosť takto tak sa to neprenáša na vnorené prvky. samozrejme funguje to všade okrem IE. ale je nato jeden hack. ale ten si už nepamätám.
ShiraNai7
Profil
Bubák:
Vyzkoušel jsem to a je tomu skutečně tak, beru tedy zpět. Nevěděl jsem, že opacity je tímto způsobem "speciální".

Naivní představa
To bych si vyprosil. Předpoklad, že se CSS pravidlo chová stejně jako většina ostatních, není hloupá představa.
Bubák
Profil
Stano:
ale je nato jeden hack. ale ten si už nepamätám.
- filter opacity + pozicování vnořeného objektu, stačí relativní porice a novou pozici není nutné deklarovat, takže se objekt zůstane na požadovaném místě

ShiraNai7:
To bych si vyprosil. Předpoklad, že se CSS pravidlo chová stejně jako většina ostatních, není hloupá představa.
Taky jsem podobné chování očekával, použil jsem tenhle výraz hlavně proto, aby si to každý, kdo se s tím doposud nesetkal, zapamatoval.
Chamurappi
Profil
Reaguji na ShiraNaiho7:
Předpoklad, že se CSS pravidlo chová stejně jako většina ostatních, není hloupá představa.
Průhlednost se nedědí, dává to smysl, není to speciální, je to dokonale konzistentní. Je to podobné, jako když nastavíš rodičovskému elementu obrázkové pozadí, a u potomka se rozhodneš, že má být ten jeho rodič průhledný — nemůžeš za tím účelem dát potomkovi background: transparent a nemůžeš ani říct, že potomek zdědil pozadí rodiče.

Kdyby všechny bloky uvnitř něčeho s opacity: 0.5 měly také opacity: 0.5, vypadalo by to jinak — nemohli by se třeba navzájem neprůhledně překrývat.
ShiraNai7
Profil
Chamurappi:
Já už chápu jak to funguje a taky netvrdím, že to není konzistentní. Jen to nemusí být jasné na první pohled.
phobos9007
Profil
Neměl jsem předtím čas to otestovat, ale je pravda, že to takhle nelze. Vyvstává otázka, zda-li je výhodnější používat rgba a hack, nebo png.
IMHO je univerzálnějším řešením png.

EDIT: opravuji se, "zdal-li" neexistuje, správně je zdali

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

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

0