Používejte media = ‘screen, projection’ !
Technologie
18.04.04
Proč? No, pokud si dám v Opeře zobrazení na celou obrazovku (fullscreen), tedy stisknu klávesu F11, tak, pokud linkujete stylesheet jen přes media=’screen’, zobrazí se fullscreen bez stylů!
Jak má vypadat správný zápis?
<link rel='stylesheet' type='text/css' href='my.css' media='screen,projection' title='default' />
nebo:
<style type='text/css' media='screen,projection' title='default' /> @import 'my.css'; </style>
Tak to už používám, protože si mě o tom informoval jinde a jindy. Zatím ale jen v blogu. Musím to ještě dodělat na hlavní stránky.
Dovolil bych si namítnout, že je to nesmysl. Media type projection je totiž stránkové médium, zatímco screen je kontinuální médium (asi jako jablka a hrušky - obojí je ovoce, ale každé je jiné). Opera se tedy v tomto případě chová naprosto správně.
Cituji ze specifikace CSS2:
"projection
Intended for projected presentations, for example projectors or print to transparencies.
Please consult the section on paged media for information
about formatting issues that are specific to paged media."
Koukám jako blázen. Doteď jsem používal Operu 7.11 a mám pocit, že se stránka ve fullscreenu zobrazovala nastylovaná i bez "projection". Ve verzi 7.23 vidím, že tomu tak není - musím to opravit. díky
[2] a na koho ten komentář je, Pavle? Já neříkám, že Opera zde má chybu, ale ať si lidi opraví web ;)
Než používat jen media='screen', to už je rovnou lepší media='all', pokud nemám tiskovou verzi, nebo vůbec nic (pak se chápe media='all'), jinak, pokud tiskovou verzi mám, je nutné používat media='screen,projection', já osobně používám fullscreen v 90% případů..
[4] Ale na to (chybné) doporučení přece reaguji.
Na např. http://www.webface.cz/omeze... najdete jednoduché (laické) vysvětlení rozdílu mezi stránkovým a průběžným (kontinuálním) médiem.
Nejtypičtějším stránkovým médiem je print - pro výstup na tiskárnu přece také nepoužijete tentýž stylesheet jako pro screen. Proč to tedy dělat v případě příbuzného média - projection? Jen proto, že jej podporuje Opera ve fullscreenu? To IMHO není dobrý důvod a principiálně popírá jednu z primárních výhod CSS - tedy účelné formátování pro daný typ média.
Reaguji na tento spot především proto, že některé čtenáře zmátl [1] :-)
[5] na to je triviání odpověď Pavle, zde se mýlíte respektive, díváte se na to černo-bíle.
Dělat 2 styly, jeden pro screen a druhý pro projection je pro většinu webů nesmysl!!
Proto je vhodné, tedy, nutné, používat media='screen,projection' (popřípadě tam raději nedávat nic), jinak lidi, co browsují fullscreen, jako já, mají smůlu (pokud si neudělají v Opeře vlastní CSS) :idea:
[6] Nemohu souhlasit se závěrem, že je *nutné* používat shodný stylesheet pro dvě naprosto odlišná média (průběžné a stránkové) kvůli lidem, kteří používají prohlížeč fullscreen.
Závěr má znít: Opera při fullscreen zobrazení ignoruje medium screen a místo něj se v takovém případě řídí předpisem pro media projection. Žádný z dalších dvou důležitých "hráčů" se takto nechová (testováno na IE5, IE5.5, IE6 a FF0.8 - IE6.05.4051 zatím fullscreen neumožňuje).
Můj názor: Chcete-li, aby uživatel s Operou 7.x (bylo by nutné vyzkoušet buildy) viděl při fullscreen vaši stránku ostylovanou, tak aplikaci formátování media screen rozšiřte i na medium projection. Mějte však na paměti, že tím provádíte *optimalizaci* pro jedno konkrétní nastavení jednoho konkrétního prohlížeče a riskujete, že na skutečném zařízení pracujícím s médiem projection může dojít k nekorektnímu zobrazení. (Osobně bych to nikomu nedoporučil.)
-- jasně, ona je větší pravděpodobnost, že na mém blogu někdo bude potřebovat skutečný device projection, než to, že jede ve fulscreen, že? ;) Jen ať se to tomu blbci, co používá fullscreen, zobrazí bez stylů, že? ;) --
[7] [doplněno] Moje [/doplněno] Finální doporučení: nepoužívejte buď media=... vůbec, nebo použijte media='screen,projection', pokud nemáte speciální styly pro různá zařízení, rozhodně ne pouze media='screen'!
[8] Pokud nespecifikujete media type vůbec, pak se stylesheet bude aplikovat globálně. Třeba takoví majitelé inkoustových tiskáren za to budou neskonale vděčni ;-)
Ani na té druhé radě se tutově neshodneme.
(Přesto: People are people, so why should it be, You and I should get along so awfully? So we're different colours and we're different creeds and different people have different needs... Depeche Mode, 1984.)
[7]
Napsal jsem následující = "Finální doporučení by tedy bylo: Chcete-li, aby uživatel s Operou..."
Vy jste to změnil na = "Můj názor: Chcete-li, aby uživatel s Operou..."
--jasně, že jsem tu úvodní větu změnil Pavle, je to Váš názor, a ne "obecné, objektivní, finální doporučení", já za něj děkuji, ale, není to usnesení Vlády ČR, jen názor.. Pokud vkládám komentář na sovavsiti.cz, tak je taky občas editován.. Co Vám na té mojí změně 5 slov tak vadí? Podle mě se jedná o vhodné upřesnění pro ostatní... Publikuji, jak vidíte, veškeré nesouhlasné komentáře, ale tak 2% komentářů mírně redakčně upravuji. Opět, podobně jako sovavsiti.cz...Pokud si o tom chcete více promluvit, pošlete mi prosím email :) --
[5] A jak zmátl? Mám-li verzi pro tisk, tak nemůžu použív all, ale musím rozčlěnit na print, screen atd ... A blbne-li tu Opera, tak musím (nechci-li odradit operisty ve full-screenu) dát ke screen za čárku ještě projection. To přece není o stylu pro projektory (nebo pro co to má být), ale ošetření chyby Opery. Nevím, jestli to je chyba, ale mě to tak přijde.
[8] ten song Depeche Mode je perfektní :D Jinak, já zde, kromě stylu pro tisk, používám zvláštní plugin pro tisk (a pro email), umožňuje poněkud komfortnější práci, než print preview (například změna fontů, řezů, a jejich velikosti..).
[11] není to "chyba" Opery, Opera se zde drží specifikace..
[12] Mohu vědět, které specifikace se v tomto případě Opera drží? Také jsem přesvědčen, že je to její bug. Bavíme-li se například o Opeře pro Windows, pak se jedná o webový prohlížeč, určený k interpretaci stránek na monitoru/displeji osobního počítače. Toto zařízení je průběžným typem média a měl by teda na něj být aplikován pouze stylový předpis pro screen.
Specifikace CSS2 hovoří celkem jasně:
"7.3 Recognized media types
A CSS media type names a set of CSS properties. A user agent that claims to support a media type by name must implement all of the properties that apply to that media type..."
Opera na osobním počítači musí použít předpis pro media type screen - i v zobrazení fullscreen - a při tisku, resp. tiskovém náhledu, ještě stylesheet pro print. V opačném případě se jedná o bug.
[13] no, ona vlastní W3C specifikace je zde velice vágní...
viz:
http://www.w3.org/TR/html40...
A důvod proč to Opera dělá?
viz Opera Show:
http://www.opera.com/suppor...
a viz Opera Show Presentation Generator
http://people.opera.com/how...
Každopádně, ať už si specifikaci W3C vykládáme jakkoliv, uživatelů, co na blogu potřebují device projection je řádově méně, než těch, co používají fullscreen, na tom se shodneme, ne? ;) Takže, zcela pragmaticky, je vhodné používat media='screen,projection'.
Podle mého názoru je postup Opery správný, minimálně nám umožňuje vyzkoušet i na běžném monitoru, jak bude "projection" prezentace vypadat ;)
[14] To jo. To asi jo.
Takže je počítáno, že když jede Opera ve fullscreenu, že se zobrazuje přes projektor (nebo jak to napsat), aby ovládací prvky a panely nerušily. Jo? To zní logicky. Bohužel to v kombinaci s neznalostí autora WWW způsobuje chybu.
[15] no, takto, Pavel má samozřejmě pravdu v tom, že media='screen' je něco zcela jiného, než media='projection'. O tom spor není, to uvádím od počátku.
Nicméně, Opera fullscreen chápe jako device projection, a drží se navíc striktně W3C specifikace, kdy, je-li uveden stylesheet jen pro screen, zobrazí fullscreen bez stylů.
Jiné browsery (Mozilla, MyIE2) umí fullscreen taky, ale chápou jej jako screen, například zobrazují address bar a ikony. Opera ne! Jiné browsery, dle mého názoru, device projection prostě nepodporují.
Je fakt, že by to Opera mohla udělat ústupek normě, a když už takto funguje, podporuje projection, mohla by, při neexistenci stylesheetu pro projection, použít stylesheet pro screen, ale.... tak to není.
Takže, IMO, pokud nepotřebujeme media projection (jako že skoro nikdo ne), je lepší, pragmaticky, používat media='screen,projection'.
[14] Pokud by byla Opera v tomto smyslu natolik developersky vstřícná, že by věrně simulovala jiné typy médií, pak by například v režimu simulace PDA použila stylesheet pro media type handheld. Ale zkuste si do stylesheetu přidat:
@media handheld {
* {
font-style: italic;
font-weight: bold;
text-decoration: underline;
text-transform: uppercase;
}
}
Samozřejmě, že Opera tuhle definici ignoruje. Proč se tedy chová ve fullscreenu jinak? Navíc - fullscreen je naprosto standarním módem zobrazení viewportu, narozdíl od simulace PDA...
BTW specifikace pro CSS2 je (logicky) trochu "ukecanější" než ta pro HTML4.01; ovšem uznávám, že o tolik moc zase ne.
[15] Jiří, zástupcem (stránkového) media type projection je například transparentní fólie pro projektory - opravdu byste na ní chtěl mít veškeré vizuální prvky jako na monitoru/displeji?
[16] Souhlas! Je to lepší.
[18] Nechtěl, ale zase nechci mít ve fullscreenu na monitoru nějaký web bez stylů jen proto, že jeho autor nevzal na vědomí zvláštní chování Opery (zvláštní oproti konkurenci).
Myslím, že tady by opravdu mohla udělat Opera ústupek specifikaci (vyžaduje-li to), ale neudělala ji a tak je na nás tvůrcích WWW, abychom to ošetřili screen,projection. Pokud samozřejmě nechceme mít speciální stylopis pro projection nebo nemůžeme-li použít all (používáme-li např. print). Zde se snad shodneme. Doufám.
Je to stejné, jako když někdo jen nadává na rozdílné pozicování v IE a zbytku browserovské scény, místo aby se s tím smířil a optimalizoval svůj web.
Jen bych se optal - IE4 udajne ignoruje styly pri media='screen,projection' , mate to nekdo overene? Verze z http://www.skyzyx.com/downl... to nezvlada simulovat.
[17] - Opera pri SSR akceptuje handheldove styly.