Autor Zpráva
Mac
Profil
Je podtržítkový hack validný, napr.: _width: 25em; ?
A ak nie, ako validne odlýšiť IE od ostatných?
quinux
Profil
http://www.mraveniste.org/weblog/2006/03/16-msie-komentare.html
Bubák
Profil
Je podtržítkový hack validný, napr.: _width: 25em; ?
Na validitě podtržítkového hacku se neshodnou ani odborníci.
Ještě jeden odkaz na podmíněné komentáře:
http://interval.cz/clanky/podminene-komentare-v-internet-exploreru/
Joker
Profil
Mac
Tohle je taková sporná otázka.
Z pohledu W3C validátoru je podtržítkový hack nevalidní.
Z pohledu specifikace CSS podtržítkový hack vyhovuje specifikaci.

Nicméně o validním/nevalidním rozhoduje validátor, takže podtržítkový hack je nevalidní.

Přesto by jeho použití mělo být bez rizika, protože specifikaci vyhovuje. Takže můj názor je takový, že pokud z nějakého důvodu nutně nepotřebujete tu ikonku "Valid CSS", klidně bych podtržítkový hack používal.
Chamurappi
Profil
Reaguji na Jokera:
Netuším, co je na validitě tohoto hacku sporného. Validní není. Žádnému W3C doporučení nevyhovuje. A je to úplně jedno.
Joker
Profil
Chamurappi
Vaše výroky neodporují tomu, co jsem napsal já :-)

Podstatná věc je tahle:
V současné době podle validátoru podtržítkový hack validní není. V budoucnu velmi pravděpodobně bude. Je v souladu například se specifikací CSS 2.1 a CSS 3. Prohlížeč, který je v souladu s jakoukoliv specifikací CSS, nesmí mít s podtržítkovým hackem problém.

Čili jak jsem napsal: podle validátoru je to sice nevalidní, ale pokud zrovna nepotřebujete ikonku "Valid CSS", můžete to klidně bez rizika používat.
Všechny existující specifikace CSS totiž definují způsob, jak má prohlížeč takovou deklaraci zpracovat, takže prohlížeč dodržující jakoukoliv z nich nesmí mít s takovou deklarací problém.
Chamurappi
Profil
Reaguji na Jokera:
V současné době podle validátoru podtržítkový hack validní není. V budoucnu velmi pravděpodobně bude.
Stoprocentně nebude.

Je v souladu například se specifikací CSS 2.1 a CSS 3.
Nejsou hotové.

Prohlížeč, který je v souladu s jakoukoliv specifikací CSS, nesmí mít s podtržítkovým hackem problém.
Prohlížeč by neměl mít problém se stylopisem vyhovujícím gramatice. Podtržítko před jménem vlastnosti gramatice nevyhovuje, takže si v souladu s existujícími doporučeními může dělat, co chce. Je to nedefinovaný stav. Kdyby chtěl mít parser problém, může mít problém. Kdyby chtěl podtržítko ignorovat, může ho ignorovat (jako Explorer).

podle validátoru je to sice nevalidní
CSS validátor konsorcia neřešme, je to nevalidní podle specifikace. Vždy bylo a vždy bude.
quinux
Profil
Joker
je to sice nevalidní, ale pokud zrovna nepotřebujete ikonku "Valid CSS", můžete to klidně bez rizika používat
Tím bych si zase tak jist nebyl. Mám dost špatné zkušenosti s hacky v safari.

Pokud už nevím jak nějaký problém řešit nebo nemám čas se tím zabývat tak jednoduše použiji podmíněné komentáře, je to IMHO jednodušší a čistější řešení a pokud se nepletu tak ani neodporuje specifikaci.
Joker
Profil
Kdyby chtěl mít parser problém, může mít problém.
Nemůže. Nesmí. Podle specifikace takovou deklaraci musí ignorovat. edit: Pokud ji nezná, samozřejmě

je to nevalidní podle specifikace. Vždy bylo a vždy bude.
Všechny specifikace CSS po CSS 2 s tím sice počítají a všechny hlavní prohlížeče to podporují, ale když myslíte, nebudu se hádat :-)
Chamurappi
Profil
Reaguji na Jokera:
Nemůže. Nesmí. Podle specifikace takovou deklaraci musí ignorovat.
Podle specifikace musí ignorovat vlastnosti neznámého jména. Jenže jméno vlastnosti podle gramatiky nemůže obsahovat podtržítko => v zápisu „_width: 100%“ je názvem jen známá vlastnost „width“, nikoliv „_width“. Jak zareagovat na podtržítko specifikace nikde neříká.

Všechny specifikace CSS po CSS 2 s tím sice počítají a všechny hlavní prohlížeče to podporují
Každý jinak. Explorer ignoruje podtržítko a (možná) zbytek světa ignoruje celou vlasnost.

ale když myslíte, nebudu se hádat :-)
Já se nehádám, já válcuji.

Je „filter“ validní? Není. Proč není? Protože není výslovně uveden ve specifikaci. Vadí to něčemu? Nevadí. Smí to vadit? Nesmí.
CSS 2.1 rozšíří gramatiku o tu možnost, aby názvy začínaly pomlčkou či podtržítkem. To snad učiní všechny vlastnosti, které začínají pomlčkou či podtržítkem, validními? Tedy „filter“ validní nebude, ale „_ředkvička“ ano? Nesmysl. Změna v gramatice má právě zaručit to, co tvrdíš, že je zaručeno již nyní -- a sice definovanou odolnost parseru proti vlastnostem s podtržítkem/pomlčkou na začátku. Takové vlastnosti sice můžou být v souladu se specifikací, ale validní nikdy nebudou.

Kdo vymyslel tu hloupou pseudodefinici, že vše, co je v souladu se specifikací, je validní? Validní a správné, to jsou dvě různé věci.
Joker
Profil
Já se nehádám, já válcuji.
Když myslíte :-)

„(...)hlavní prohlížeče to podporují“
Každý jinak. Explorer ignoruje podtržítko a (možná) zbytek světa ignoruje celou vlasnost.

Ano, člověku to přijde podivné, pokud bude ignorovat existenci CSS 2.1. Mimochodem, CSS 2.1 má v postupu z "kandidát doporučení" na "doporučení" danou i podmínku existence dvou nezávislých implementací. Už z toho je jasné, že někdo bude muset CSS 2.1 podporovat dřív, než se stane doporučením.

Pokud připustíte existenci CSS 2.1 a její částečnou implementaci v prohlížečích, pak na tom nic divného není.
IE bere _width jako svou proprietární deklaraci v souladu s CSS 2.1
Ostatní prohlížeče to ignorují v souladu s CSS 2.1, CSS 2 a CSS.

Je „filter“ validní? Není. Proč není? Protože není výslovně uveden ve specifikaci. Vadí to něčemu? Nevadí. Smí to vadit? Nesmí.
Vadí mi filter? Nevadí. Říkal jsem něco proti němu? Neříkal :-)

Kdo vymyslel tu hloupou pseudodefinici, že vše, co je v souladu se specifikací, je validní?
Samotný ten validátor:
http://jigsaw.w3.org/css-validator/
Welcome to the W3C CSS Validation Service; a free service that checks Cascading Style Sheets (CSS) in (X)HTML documents or standalone for conformance to W3C recommendations.
Vítejte v CSS validační službě W3C; služba poskytovaná zdarma, která kontroluje kaskádové styly (CSS) v (X)HTML dokumentech nebo samostatně zda jsou v souladu s doporučeními W3C
quinux
Profil
Joker
Já se nehádám, já válcuji.
Když myslíte :-)

Neříkám, že s Chamurappim ve všem souhlasím, ale v tomhle bych se s ním nehádal. ;o)


že někdo bude muset CSS 2.1 podporovat dřív, než se stane doporučením.
Ano, a proto vznike spousta chybných implementací a stejně, když dodnes všechny prohlížeče pořádně nechápou ani CSS 1 a 2 tak CSS 2.1 či dokonce 3 je otázkou spíše let něž měsíců.

IE bere _width jako svou proprietární deklaraci v souladu s CSS 2.1
Osobně si myslím, že IE bere potržítko jako normální text proto si neuvědomuje, že je to špatně. Pokud vím tak IE 7 již podržítko ignoruje.

Samotný ten validátor:
Doufám, že sám nevěříš tomu, že nějaký "stroj" dokáže odhalit všechny chyby. Bral bych tu větu spíše s nadhledem.
Railbot
Profil
IE bere _width jako svou proprietární deklaraci v souladu s CSS 2.1
Osobně si myslím, že IE bere potržítko jako normální text proto si neuvědomuje, že je to špatně. Pokud vím tak IE 7 již podržítko ignoruje.


Jistě. Podrtžítkový hack využívá hlouposti Exploreru, který nedokáže rozpoznat, že se jedná o chybný zápis. V IE 7 už je to ošetřeno.
Joker
Profil
quinux
To já se s ním zas klidně hádat budu, dokud si myslím, že mám pravdu :) I to o čem si myslím že je pravda je potřeba neustále podrobovat pokusům o vyvrácení ;-)

K tomu validátoru, já reagoval na tohle:
Kdo vymyslel tu hloupou pseudodefinici, že vše, co je v souladu se specifikací, je validní?
Tak já říkám: Sami tvůrci validátoru říkají, že jejich program má kontrolovat soulad dokumentu se specifikací. Pokud by dělal něco jiného, chová se program jinak než bylo zamýšleno, což se označuje jako chyba programu.

Railbot
Zdrojáky IE jsem sice neviděl, ale nejspíš to tak nějak bude. Nicméně stejně na to můžete koukat tak jak jsem napsal já- jako na proprietární vlastnost Internet Exploreru... ono to taky je proprietární chování IE, protože ostatní se tak nechovají ;)
AlešD
Profil
Railbot:
Podrtžítkový hack využívá hlouposti Exploreru, který nedokáže rozpoznat, že se jedná o chybný zápis. V IE 7 už je to ošetřeno.

Jéžišmarjá! To bude zmatek! :-))
quinux
Profil
AlešD
Jéžišmarjá! To bude zmatek! :-))
Pokud děláš weby, alespoň trochu kvalitně tak nebude. Testoval jsem pár svých posledních prací a všechny vypadají v IE 7 tak jako ve Firefoxu. Jen pár chybek jsem objevil, ale nic co by nešlo rychle ošetřit ;o)

Joker
To já se s ním zas klidně hádat budu, dokud si myslím, že mám pravdu
Je to jako boj s větrnými mlýny. Takže pokud máš chuť a čas tak do toho :-D

Sami tvůrci validátoru říkají
Sami tvůrci čehokoliv toho nakecají hodně, ale skutečnost je většinou jiná. V dnešním světě je třeba brát už snad úplně vše s nadhledem ;o)
Chamurappi
Profil
Reaguji na Jokera:
člověku to přijde podivné, pokud bude ignorovat existenci CSS 2.1
Hromada dnešních „chyb“ v Exploreru je způsobena tím, že se řídil pracovními návrhy specifikací. Dokud doporučení CSS 2.1 neexistuje, není důvod brát jej v úvahu.

Mimochodem, CSS 2.1 má v postupu z "kandidát doporučení" na "doporučení" danou i podmínku existence dvou nezávislých implementací.
Ta specifikace již přes rok kandidátem není.

IE bere _width jako svou proprietární deklaraci v souladu s CSS 2.1
Ne, bere „_width“ stejně jako „width“, podtržítko prokazatelně ignororuje. V souladu se současným návrhem CSS 2.1 mají mít proprietální vlastnosti kromě podtržítka/pomlčky na začátku i prefix identifikující výrobce následovaný pomlčkou. I kdyby se ta vlastnost jmenovala „-ms-width“, tak nebude podle CSS 2.1 validní, ačkoliv bude vyhovovat.

Ostatní prohlížeče to ignorují v souladu s CSS 2.1, CSS 2 a CSS.
Opakuji ještě jednou: CSS 2 a starší neříkají, jak má prohlížeč s podtržítkem před jménem (známé) vlastnosti naložit. Není totiž součástí toho jména.

Samotný ten validátor
Kecá. I HTML validátor tvrdí, že kontroluje soulad s doporučeními, což zjevně není pravda.


Reaguji na Railbota:
Podrtžítkový hack využívá hlouposti Exploreru, který nedokáže rozpoznat, že se jedná o chybný zápis.
Vtip je v tom, že on to nejspíš rozpozná, tedy že hack využívá jeho záměrného zotavovacího mechanismu. Někde uvnitř Exploreru je napsáno „hledej začátek názvu vlastnosti -- najdi první znak [a-zA-Z]“ (ignoruje nejen podtržítko), což není v rozporu s CSS 2. Až CSS 2.1 definuje, že podtržítko může být součástí názvu. Až CSS 2.1 definuje, jak se má se zmrzačenými deklaracemi zacházet.
Radim24
Profil *
Jokere,
nevím jestli si nezapoměl, mohl by si mi prosímtě odpovědět na tohle: http://diskuse.jakpsatweb.cz/index.php?action=vthread&forum=4&topic=34 086&page=-1#4
Díky. R.
Toto téma je uzamčeno. Odpověď nelze zaslat.

0