Autor Zpráva
Ponk Tenk
Profil *
Ahoj, rozhoduji se mezi těmito dvěma hacky pro Mozillu, Firefox, Opera atd.

>, nebo [id]

Jaký doporučujete? Osobně jsem si všiml, že se používá jen tento >, takže možná na tom něco bude.
Plaváček
Profil
Osobně doporučuji hacky pro FF a Operu nepoužívat a jít cestou opačnou. Potřebné konstrukce pro Internet Explorer odsunout na vedlejší kolej nejlépe pomocí podmíněných komentářů, více zde http://www.mraveniste.org/weblog/2006/03/16-msie-komentare.html

Ještě doplním, že toto div>p není žádný hack, ale běžná konstrukce CSS, kterou ovšem Internet Explorer nezvládá.
Ponk Tenk
Profil *
Však já Vám to nevyvracím a naprosto souhlasím s vlastním stylem pro msie. Jenže u mě nastala situace, kdy si nejsem jist co bude lepší použít. Pro hlavni blok, aby se vždy natahl jsem nastavil 100%.

#hlavni {
min-height: 100%; /* pro mozillu, operu, natahneme na 100% */
height: 100%; /* pro msie, rovnez natáhneme tento blok na 100%, ale pro moderni prohlizece ji zas zrusime, viz. dole hack */
}

body>#hlavni {
height: auto; /* protoze mozilla, opera pouzije i vysku height, musime ji zmenit na auto - to nam zajisti, ze pri vetsim obsahu se vyska bloku natahne */
}

Dá se to také napsat takto, podle Vás, což mě také napadlo:
#hlavni {
min-height: 100%; /* pro mozillu, operu, natahneme na 100% */
}

a do podmíněného komentáře pro msie:
#hlavni {
height: 100%; /* pro msie, rovnez natáhneme tento blok na 100% a nemusime zvlaste rusit jeste pro mozillu, operu */
}

což nám úplně vesele samozřejmě stačí! Jenže mě po nocích straší MSIE 7, dočetl jsem se, že tento prohlížeč bude zbaven klasických chyb a dokonce bude pracovat jako moderní prohlížeče dobře ve standartním módu. Tudíž klasickým striktním doctypem bude také ve standartním módu.

Z čehož plyne tento zápis podmíněného komentáře:
<!--[if lte IE 6]><link... /><![endif]-->

Pro IE verze 6 a dolů. IE 7 tento styl nepoužije.

A teď si pokládám otázku, podmíněný komentář, nebo hack pro Mozillu, Operu.... Dle mého názoru > to hack je, stejně jako * html, _podtržítko. Je to věc názoru...
Plaváček
Profil
Ponk Tenk


Dle mého názoru > to hack je,


Mýlíš se, je to standardní konstrukce, více zde http://diskuse.jakpsatweb.cz/index.php?action=vthread&topic=1561&forum =7&page=-1 .

Osobně bych si s IE 7 zatím hlavu nelámal a počkal bych na finální verzi.
Ponk Tenk
Profil *
Plaváček: OK, máte pravdu. Jinak doporučujete spíše tento zápis, nebo ten selektor?

#hlavni {
min-height: 100%;
}

a do podmíněného komentáře, tedy styl pro msie:
#hlavni {
height: 100%;
}
Joker
Profil
Plaváček
Spíš bych argumentoval tímto:
[url=http://www.w3.org/TR/CSS21/selector.html
]http://www.w3.org/TR/CSS21/selector.html
[/url]
">" není hack, ale standardní selektor, popsaný ve specifikaci.

Ponk Tenk
Dal by se v tom použít skutečný hack, a to takhle:

min_height: 100%;
_height: 100%;
Chamurappi
Profil
Reaguji na Jokera:
">" není hack
Ne? A jak definuješ hack?


Reaguji na Plaváčka:
Mýlíš se, je to standardní konstrukce
Nemýlí, protože to je zároveň hack. Hack se pozná podle účelu, nikoliv podle syntaxe. Pokud je účelem selektoru přímého potomka rozlišení Explorerů 5 až 6 od ostatních Explorerů, Mozilly a Opery, pak to je hack. Pokud ne, tak není hackem ani žádný z následujících:
1) * html { ... } -- selektor vyhovuje gramatice, je validní a je to specifikací definovaná konstrukce
2) něco { -vlastnost: hodnota; } -- vlastnost vyhovuje (ne dosud standardizované) gramatice dle (návrhu) CSS 2.1, není validní, ale je to definovaná konstrukce
3) <!--[if lte IE 6]><link ...><![endif]--> -- podle specifikace obyčejný SGML komentář, je to definovaná konstrukce
4) <!doctype> jako přepínač režimů -- odkaz na DTD pro validujícící prohlížeče, je to definovaná konstrukce
5) :root něco { ... } -- selektor vyhovuje gramatice, bude (možná někdy) validní v CSS 3, je to definovaná konstrukce

V čem se od výše uvedených liší přímý potomek?
Různé hacky jsou různě spolehlivé, ale obecně lze říci, že většinou nejsou nadčasové, škodí obecnosti a universálnosti výsledné stránky, nezávisle na tom, jestli jsou posvěcené či zapovězené konsorciem.

Osobně bych si s IE 7 zatím hlavu nelámal a počkal bych na finální verzi
Až vyjde finální verze, ukousne si díky Windows Update nemalý tržní podíl během jediného týdne. Není dobrý nápad čekat na poslední chvíli a pak se nechat ukamenovat, ne? Finální verze se od RC1 už snad tolik lišit nebude.


Reaguji na Ponka Tenka:
Tudíž klasickým striktním doctypem bude také ve standartním módu.
To platí i pro šestku. Doporučení HTML 4 něříká, že by před <!doctype> měla být jakási procesní instrukce. Explorer 7 se bude nově přepínat do standardního režimu i tehdy, bude-li na začátku všech procesních instrukcí před standardně-režimovým <!doctype> řetězec „xml “. Což nedává příliš smysl. Skoro bych to nazval prasárnou.

<!--[if lte IE 6]><link... /><![endif]-->
Přebývá ti tam lomítko.

podmíněný komentář, nebo hack pro Mozillu, Operu
Viz pátý příklad hacku v odpovědi pro Plaváčka, pseudotřída „:root“ se vztahuje pouze na kořenové elementy. S její pomocí jde individualizovat pro Mozillu podobně, jako jde pomocí „* html“ v Exploreru.
Ponk Tenk
Profil *
Chamurappi:
Pokud se jedná o xhtml dokument, tak lomítko tam má být.

<!--[if lte IE 6]><link rel="stylesheet" href="styles/ie.css" type="text/css" media="screen, projection" /><![endif]-->

To platí i pro šestku.
Ano, ale ta se díky xml zápisu na začátku přepne do quirku. Navíc MSIE 6 je ve standartním módu velmi chybový, takže docílíme toho čeho jsme chtěli. Na druhou stranu, pokud se IE 7 přepne z výše zmíněného zápisu do standartního módu, jak říkáš je to prasárna, ale je to jediné možné řešení. Jinak všechny stránky ty staré budou sklouzávat v IE 7 do quirku a to by bylo zajímavý...
Pajuc
Profil *
Chamurappi:
Hack se pozná podle účelu, nikoliv podle syntaxe.

Hacky mají různé účely a naopak pro stejný účel lze zvolit více postupů. Podle mě to není hack. Nevyužívá žádnou chybu v programu, standardu, bezpečnosti et cetera.
<!--[if lte IE 6]><link ...><![endif]--> - je hack - chybné zpracování komentáře
<!doctype> jako přepínač režimů - je hack - chybná interpretace
Chamurappi
Profil
Reaguji na Ponka Tenka:
Pokud se jedná o xhtml dokument, tak lomítko tam má být.
Jenže ono se jedná o HTML dokument. Explorer pojme vnitřek komentáře jako kus HTML kódu. Ostatní uvidí obyčejný komentář. Kvůli komu tam má být lomítko?

jak říkáš, je to prasárna
Dle mého názoru by přepínač režimů ovlivňující především pojetí CSS měl být někde v CSS. Takhle mě nutí psát <!doctype>. Ba co víc: budu-li chtít mít Explorer 7 ve standardním režimu, musím psát před <!doctype> něco jako „<?xml nepoužívám?>“.

ale je to jediné možné řešení
Není jediné. Je možné nechat všechny prohlížeče v quirku. Ten je na rozdíl od standardního režimu dopředně kompatibilní.

Jinak všechny stránky ty staré budou sklouzávat v IE 7 do quirku a to by bylo zajímavý
Fungovaly by (přibližně) stejně jako v šestce. To by bylo funkční.


Reaguji na Pajuce:
Hacky mají různé účely a naopak pro stejný účel lze zvolit více postupů
Účelem hacku je vždy především individualizace.

Nevyužívá žádnou chybu v programu
Využívá nepodpory. Z hlediska CSS 2 je nepodpora chybou.

Podle mě to není hack.
Užije-li někdo selektor „body>menu“ záměrně k tomu, aby nastyloval jen a pouze ta menu, která jsou přímo zanořená v <body>, nejde o hack. Užije-li někdo tentýž selektor záměrně k tomu, aby rozlišil Explorery 5 až 6, jde o hack.
=> Selektor přímého potomka je standardní konstrukce, ale využívá se většinou jako hack.
Pajuc
Profil *
Chamurappi

Účelem hacku je vždy především individualizace.
Mi většinou hacky pomáhají k univerzalizaci - k jednotnému vzhledu stránky pro dominantní prohlížeče.

Pokud bychom použili tvoji logiku, tak by vlastně celé CSS 2 byl jeden velký hack. Když totiž píšu stylopis, beru v úvahu i to, že starší prohlížeče leccos nebudou podporovat a úmyslně volím takové konstrukce, které by ve starších prohlížečích dělaly co nejmenší problém. Předpokládám, že i ty postupuješ podobně.

Smiř se s tím, že CSS konstrukce, které ty považuješ za hack, obecně za hack považovány nejsou.

Jenže ono se jedná o HTML dokument. Explorer pojme vnitřek komentáře jako kus HTML kódu. Ostatní uvidí obyčejný komentář.
Internet Explorer si může XHTML kód interpretovat třeba jako čínskou pohádku, ale čínská pohádka to stejně nebude. To lomítko je tam momentálně zbytečně, ale kdo ví - třeba za 50 let už IE9 XHTML podporovat bude.
Chamurappi
Profil
Reaguji na Pajuce:
Mi většinou hacky pomáhají k univerzalizaci
Takové hezké slůvko existuje? :-)
Tobě nenapomáhají k rozlišení jednotlivých prohlížečů? Neslouží ti k tomu, abys mohl ladit individuálně? Výsledek není nikdy universální, jelikož budoucí prohlížeč může z té dvojice nedostatků, která je nedílnou součástí každého hacku, opravit právě jeden.

Pokud bychom použili tvoji logiku, tak by vlastně celé CSS 2 byl jeden velký hack
Opakuji: Nejde o syntaxi, jde o použití. Ano, spousta částí CSS 2 je využitelná jako hack. Ve srovnání se SGML/XML je CSS velmi stupidní formát, který si o používání hacků koleduje odjakživa.

Smiř se s tím, že CSS konstrukce, které ty považuješ za hack, obecně za hack považovány nejsou.
Popularita názoru je malicherný důvod k jeho zatřídění mezi fakta. Krom toho je i mé pojetí často zmiňované.
Jak definuješ hack? Nebo spíše: Jak je obecně definován hack?


Internet Explorer si může XHTML kód interpretovat třeba jako čínskou pohádku, ale čínská pohádka to stejně nebude.
Bude-li Ponk Tenk všem říkat, že to čínská pohádka je, tak to čínská pohádka bude. Byť Číňanům špatně srozumitelná.

třeba za 50 let už IE9 XHTML podporovat bude
Bohužel ho bude plně podporovat asi už osmička. To lomítko tam i tak bude zbytečně, jelikož je stylopis podmíněn [if lte IE 6]. (A také kvůli MIME typu „text/html“.)
Dmagician
Profil
Theory of sign v praxi... slovo hack ma mnoho vyznamov ale co sa tyka programovania tak vzdy islo o urcite rychle a nie velmi ciste riesenie problemu... zvycajne docasne (teda ak sa nan nezabudlo).. .. v pripade exploreru teda pouzitie > je hackom a zaroven z globalneho hladiska to hack nie je..

dufam ze som sa vyjadril zretedelno...

;-)
Pajuc
Profil *
to Chamurappi

Takové hezké slůvko existuje?
Asi ano, Word mi jej neopravuje, má jej tedy ve slovníku.
To, co ty nazýváš individualizací je pro mě prostředkem. Účelem takového postupu může být to, čemu říkám univerzalizace.

Výsledek není nikdy universální,
span {cursor: pointer; _cursor: hand;} Tohle mi přijde jako univerzální řešení pro všechny prohlížeče, které podporují vlastnost cursor.

Bude-li Ponk Tenk všem říkat, že to čínská pohádka je, tak to čínská pohádka bude. Byť Číňanům špatně srozumitelná.
Bude-li Ponk Tenk všem říkat, že se mu tam to lomítko líbí, tak přebytečné nebude. Byť bude pro zastaralý IE špatně srozumitelné.

Bohužel ho bude plně podporovat asi už osmička.
Hurá. A odkud pochází tahle informace? Z IEblogu?

to Dmagician
Zřetelně a logicky, pokud mohu soudit. Já jsem stejně tušil, že můj názor nebude zcela rigorozní, spíš jsem upozorňoval na přílišnou obecnost pseudopravidla, že hack se pozná podle účelu. Pokud dám za účelem kompatibility přednost nevalidnímu řešení před normálním (Poloprůhledné PNG v Exploreru), tak beru, že je to hack. Ale pokud dám za tímtéž účelem přednost normálnímu řešení před jiným normálním (např. pro průhledné obrázky formát GIF místo PNG), tak se mi vůbec nezdá, že by "islo o urcite rychle a nie velmi ciste riesenie problemu... zvycajne docasne". Jenže účel je ve všech zmiňovaných příkladech stejný a podle Chamurappiho logiky (hack se pozná podle účelu), je právě třeba účelové používání průhledných GIFů, jednoznačně hack. O tomhle se tady celou dobu zuřivě hádám.
Dmagician
Profil
Pajuc Jasne chapem.
quinux
Profil
Pajuc
Hurá. A odkud pochází tahle informace? Z IEblogu?
Spousta chyb je opraveno v sedmičce IE, takže není nereálné, aby osmička byla i na lepší úrovni než současný firefox či opera ;o)

Nahrazování png gifem mi teda jako hack vůbec nepříjde. I kdyby IE průhledné png uměl tak bych stejně zůstal u gifu jelikož gif má menší datový objem a rozdíl v kvalitě prakticky nepoznáš.

<!--[if lte IE 6]><link ...><![endif]--> - je hack - chybné zpracování komentáře
Pokud Chamurappi píše, že je to normální konstrukce, která je ve specifikaci, tak to hack není a nehádal bych se s ním o tom. Možná, že ten komentář nezpracovává chybně IE, ale ostatní prohlížeče ;o)

Jinak souhlasím s tím, že hack se pozná podle účelu a né syntaxe. Tedy až na výjimky.
Bubák
Profil
quinux
jelikož gif má menší datový objem
U pidiobrázků do velikosti asi 20px x 20px. Pokud máš při stejné barevné hloubce PNG větší, než GIF, použij nějaký optimalizátor. Já optimalizaci PNG obrázků používám ;-)
www.root.cz/clanky/pravda-a-myty-o-gifu/
quinux
Profil
Bubák
Optimalizátor, to se ti řekne lehce, ale hledal jsem a žádný free jsem nenašel. Vše ukládám ve photoshopu a výsledek byl téměř vždy kladný pro gif.
Bubák
Profil
quinux
Já PNG progáním přes IrfanView, musí být s pluginy. Jeden z pluginů je PNGOUT, stačí ho zapnout při ukládání do PNG.

PNGOUT je i jako samostatný program, ale ovládání z příkazové řádky používám jen v nouzi nejvyšší.
Chamurappi
Profil
Reaguji na Pajuce:
To, co ty nazýváš individualizací je pro mě prostředkem. Účelem takového postupu může být to, čemu říkám univerzalizace.
Účelem hacku je individualizace, účelem vhodné individualizace je univerzalizace. Při téhle úvaze se ptám: „Proč tam ten selektor přímého potomka dávám?“ -- a odpovídám buď „chci jen tak vybrat přímého potomka, bez postranních úmyslů“ nebo „chci rozlišit prohlížeče“. Ta odpověď poukazuje zároveň na elementární účel onoho počínání.

span {cursor: pointer; _cursor: hand;} Tohle mi přijde jako univerzální řešení
Podtržítko je tam zbytečně. S ním to universální není, stále mohou existovat prohlížeče, které po přijetí CSS 2 hand na pointer nepřejmenovali a které nepřehlížejí podtržítko. Žádný takový neznám, ale v historii pro něj je místo, existovat by mohl. Čistší řešení je bez podtržítka.

Pokud dám za účelem kompatibility přednost nevalidnímu řešení před normálním
Takže rozhodující je validita? Znamená to, že hack může v budoucnu přestat býti hackem? Je vlastnost text-shadow hackem? V CSS 1 hackem byla, v CSS 2 jím není, v CSS 2.1 jím bude, v CSS 3 jím zase nebude -- tak?

Jenže účel je ve všech zmiňovaných příkladech stejný
A účelem je ta tvá univerzalizace, ovšem bez individualizace.

podle Chamurappiho logiky (hack se pozná podle účelu), je právě třeba účelové používání průhledných GIFů, jednoznačně hack
Ne. Podle mé logiky je účelem hacku individualizace, tudíž posílání stejného průhledného GIFů místo PNG všem prohlížečům hackem není.

Tys mi z té mé definice nejprve vytrhnul individualizaci, zasadil místo ní univerzalizaci, vložils mi tuto upravenou protézu do úst a vyvrátil ji s tím, že hack je pak všechno, jelikož veškeré snažení webmastera směřuje (mělo by směřovat) k universálnímu řešení. Příště tě při podobném manévru kousnu.

Bude-li Ponk Tenk všem říkat, že se mu tam to lomítko líbí, tak přebytečné nebude.
Co se mu líbí a nelíbí je irelevantní, podstatné je deklarovaný typ. Při „text/html“ vidí vše HTML. Včetně mě. A já vidím, že je tam lomítko navíc.

Hurá. A odkud pochází tahle informace? Z IEblogu?
Ne. Z důvěryhodného zdroje. Matně si vzpomínám, že to zmiňovali i někde na chatu, jehož přepis odkazují z IEblogu. Možná to nebude přímo verze 8.0, ale prostě nějaká „next release“. Pak teprve začnou lidé zjišťovat, co je XHTML zač. Tipuji, že nebudou provolávat „hurá“.
Pajuc
Profil *
Chamurappi
Už nemám sílu se dál přít. Kromě toho mám dojem, že v principu se shodujeme a celá debata byla jen o slovíčkách hack, účel, individualizace a tak. Jen bych se chtěl ohradit proti tomu, že bych něco na tvé definici upravoval. Dovol, abych se citoval: "To, co ty nazýváš individualizací je pro mě prostředkem." V této větě zřetelně prozrazuju své vnímání individualizace jakožto prostředku k nějakému účelu a zcela transparentně jej odděluji od tvého pojímání individualizace jakožto účelu. Od této chvíle už úprava není možná a už vůbec ne záměna za univerzalizaci, jejíž pojetí jsem také vysvětlil naprosto nedvojsmyslně. Onou "protézou", kterou ti vkládám do úst je tedy účel a ty s hrůzou zjišťuješ, že tvoje definice už s konkrétním účelem neplatí. Co tedy zbývá? Jedině kousat? Snad ne.

quinux

Jinak souhlasím s tím, že hack se pozná podle účelu a né syntaxe. Tedy až na výjimky.
Znovu bych namítl, že hacky mají spoustu účelů a naopak jednoho účelu jde dosáhnout více způsoby.
Vím, můžeš vysvětlit, že účelem hacku je individualizace, nebo že účelem hacku je rychlé, nepříliš čisté řešení, nebo si vymyslet jinou definici zakládající se na obecné pravdě, jenže to se dostaneme znovu na začátek.
K individualizaci stylopisu přistupuju ohromě nerad, chápu to jako nutné zlo, nedokážu to brát jako svůj účel či záměr, pouze jako prostředek či nástroj. Kéž mi Ch. odpustí.
Toto téma je uzamčeno. Odpověď nelze zaslat.