Autor | Zpráva | ||
---|---|---|---|
Mosaic Profil |
#1 · Zasláno: 26. 12. 2004, 16:13:35
Na jakpsatweb.cz som si všimol pozoruhodnú vec, ktorá sa ale nadávala do súvisu s CSS.
<!--[if IE]> obsah téhle poznámky se v Exploreru zobrazí, jakoby to nebyla poznámka <![endif]--> Používanie hackov je nevalidné. Písať ale ďaľší štýl s takýmto komentárom je absolútne validné. Ostatné prehliadače budú správne komentár ignorovať a IE ho ignorovať nebude vďaka [if IE] |
||
Jake Profil |
#2 · Zasláno: 26. 12. 2004, 17:49:42
Mosaic
to, že říkáš, že používání hacků je nevalidní není pravda (alespoň některých). Třeba "hack zpětného lomítka" (nebo jak se to jmenuje)- ten je validní, protože v novějších prohlížečích projde jako kdyby tam to zpětné lomítko nebylo. |
||
izsak Profil |
#3 · Zasláno: 26. 12. 2004, 18:16:46
"Hack" so spätným lomítkom: toto je je hack ani chyba,je to vlastnosť. Ide o zápis znaku pomocou niečoho, čo by sa dalo nazvať escape sekvencia. Lomítko sa nesmie nachádzať prečíslom a znakmi A-F, pretože tieto označujú hexadecimálnu hodnotu. Až použitie lomítka pred inými, ako týmito, znakmi je validné a použiteľné.
Hack ako color: red !important; sú validné. Len využívajú chyby v parsery. Podmienené komentáre neznamenajú koniec hackom pre IE: hack je akákoľvek oprava pre prehliadač, ktorý niečo zle zobrazuje. I keď to validátor neuvidí a neuvidia to ani ostatné prehliadače, stále sú to hacky - niečo, čo obchádza, využíva, zneužíva atď. chyby v prehliadači. A menšia ukážka hacku pre Mozillu, Operu a IE, lebo v tomto prípade všetky robili blbosti: background: transparent url("../images/bg/menu1.jpg") no-repeat 50% 138px; /* Mozilla, not for Opera -> without static */ |
||
Mosaic Profil |
#4 · Zasláno: 26. 12. 2004, 18:26:01
_background: transparent url("../images/bg/menu1.jpg") no-repeat 50% 121px; /* IE*/
No myslím, že práve podtržítko validné nie je. Za validné považujem vlastnosti, ktoré sa nachádzajú v špecifikáciách. _background nie je vlastnosť. Podmienené komentáre zabezpečujú to, že aj pre IE sa dá napísať validná vlastnosť. Myslím, že je to lepšie riešenie. Ak použijete hack s _vlastnost: xxx; už css validné nebude. |
||
Leo Profil |
#5 · Zasláno: 26. 12. 2004, 18:50:15
Podminene komentare maji jednu vadu z pohledu vyvojare, nedaji se pak stranky testovat pokud si na jeden pc nainstalujete vice verzi IE. Leo
|
||
mipo Profil |
#6 · Zasláno: 26. 12. 2004, 19:02:41 · Upravil/a: mipo
2 Mosaic: Hack s podčiarkovníkom je validný v CSS 2.1, via Co je a co není validní CSS.
|
||
izsak Profil |
#7 · Zasláno: 26. 12. 2004, 22:16:50
Mosaic
Žiadna debata o validnosti hackov tu nebola. Je už na každom, či považuje _hack za validný alebo nie a nech ho použije podľa vlastného uváženia. Podľa mňa _hack validný je (viď mipo). Ak použijete hack s _vlastnost: xxx; už css validné nebude. Nebude validný podľa validátora, ktorý je ešte stále vo vývoji a nie je neomylný. W3C si teraz určite nemôže dovoliť "zlegalizovať" použitie _hacku. Keďže CSS je dopredne kompatibilné (CSS 2 parser musí vynechať CSS 3 vlastnosti - a kto mi zaručí, že nebude existovať _vlastnosť - áno, nebude, ale je to validné) a preto _hack je validný. |
||
llook Profil |
#8 · Zasláno: 27. 12. 2004, 01:19:23 · Upravil/a: llook
Trochu to shrnu:
- Podmíněný komentář je podle HTML/XHTML poznámka, kterou parsery HTML/XML podle standardů ignorují. Jako by nebyla. - Vlastnost zapsaná s podtržítkem je podle CSS 2.1 neznámá vlastnost a parsery CSS ji podle standardů ignorují. Jako by nebyla. Otázka validity spočívá v její definici. Důležitější mi připadá oddělení obsahu od vzhledu. A proto věci týkající se vzhledu je lepší hackovat v CSS. Takže i zařazení této diskuze do CSS je nesprávné, spadá spíš do HTML, protože jde o hackování HTML. |
||
Mosaic Profil |
#9 · Zasláno: 27. 12. 2004, 10:16:59
Ak je hack s podčiarkovníkom validný v CSS 2.1, o čom som nevedel, tak je to v poriadku. Chcel som poukázať nato, že normálne prehliadače ignorujú _vlasznost: xxx;, lebo taká vlastnosť nie je (a llook píše, že podľa css 2.1 je to neznáma vlastnosť, tak neviem či má pravdu mipo alebo llook). IE to aj tak nesprávne prečíta. V komentári môže byť trebars aj "vgvfgsvgvgfsvfgsdvfvsdhvfgvdsghvfghvsd", jednoducho čokoľvek a stále to bude validné - to, že IE to ignorovať nebude splní svoj účel a hoci podľa štandartov by to ignorovať mal, kód zostane validný. S hackom s podčiarkovníkom ťažko posúdiť, či validný je alebo nie. Preto uprednostňujem tú komentárovú formu, ktorá je určite validná.
|
||
Mosaic Profil |
#10 · Zasláno: 27. 12. 2004, 10:23:27
Podminene komentare maji jednu vadu z pohledu vyvojare, nedaji se pak stranky testovat pokud si na jeden pc nainstalujete vice verzi IE. Leo
Prečo by sa nedali testovať na viacerých verziách? |
||
izsak Profil |
#11 · Zasláno: 27. 12. 2004, 10:32:39
Nedajú sa testovať na jednom PC s viacerými verziami IE.
Pokiaľ mám WinXP SP2 a spustím v ňom IE 5, tak spracuváva tieto komntáre tak, ako IE 6. Napr. chyby v CSS však spracováva ako IE 5. |
||
Mosaic Profil |
#12 · Zasláno: 27. 12. 2004, 10:37:03
No ešte je možnosť definovať IE verziu - ale to už je asi príliš nepraktické. Takže podtržítko bude asi lepšie riešenie.
|
||
izsak Profil |
#13 · Zasláno: 27. 12. 2004, 11:06:28
Práveže ja používam podmienené konmentáre iba s definovaním verzie IE. Ale ide o to, že sa to ťažko odlaďuje a treba mať niekoľko (Virtual) PC, na ktorých sú samostané verzie IE.
|
||
Leo Profil |
#14 · Zasláno: 27. 12. 2004, 12:39:58
"Pokiaľ mám WinXP SP2 a spustím v ňom IE 5, tak spracuváva tieto komntáre tak, ako IE 6. Napr. chyby v CSS však spracováva ako IE 5."
Jenom podotknu ze to neni jen na XP, ale treba i na Win 2000, Leo |
||
mipo Profil |
#15 · Zasláno: 27. 12. 2004, 13:50:54
2 mosaic: Via citát zo špecifikácie CSS 2.1:
In CSS2.1, identifiers may begin with "-" (dash) or "_" (underscore). Keywords and property names, beginning with "-" or "_" are reserved for vendor-specific extensions. ... An initial dash or underscore is guaranteed never to be used in a property or keyword by any current or future level of CSS. Thus typical CSS implementations may not recognize such properties and may ignore them ... However, because the initial dash or underscore is part of the grammar, CSS2.1 implementers should always be able to use a CSS-conforming parser, whether or not they support any vendor-specific extensions. Z čoho jasne vyplýva, že hack s podčiarkovníkom je validný. |
||
llook Profil |
#16 · Zasláno: 27. 12. 2004, 14:43:42
Heleďte s tou validitou je to sporný. Vlastnost zapsaná s podtržítkem je podle CSS 2.1 tzv. "vendor-specific extension". Všechna klíčová slova a názvy vlastností, který začínaj podtržítkem nebo pomlčkou jsou vyhrazeny právě pro vendor-specific extensions.
Podle specifikace je validní CSS 2.1 takový dokument, který je správně po gramatický stránce a zároveň používá pouze @-pravidla, klíčová slova a vlastnosti definované ve specifikaci CSS 2.1. To o co se všichni hádají tedy spočívá v tom, jestli tím, že je to vyhrazené (reserved), to lze považovat za definované v této specifikaci (defined in this specification). Podle mě jo, protože proč by jinak ve specifikaci byli ty názvy vyhrazené, když by se nesměly použít. Leo nedaji se pak stranky testovat pokud si na jeden pc nainstalujete vice verzi IE. Přesněji: ...pokud si na jedny Windows... Já mám na Linuxu dva konfiguráky WINE a dvojí fake_windows, jeden pro IE 6.0 a druhý pro IE 5.0 a podtržítka běhají jak mají :-) |
||
llook Profil |
#17 · Zasláno: 27. 12. 2004, 14:46:30
Samozřejmě nesporné je, že CSS parser vyhovující specifikaci přeskakuje vlastnosti které nezná, takže používání podtržítek je naprosto bezpečné.
|
||
Yuhů Profil |
#18 · Zasláno: 27. 12. 2004, 15:20:44
Jenom stručná reakce na původní příspěvek. Toto poznámkování kódu pomocí podmínených komentářů se může zdát elegantní, ale v praxi mi pro hackování CSS přijde strašně těžkopádné. Většinou je totiž potřeba udělat pouze řádkový hack nějaké vlastnosti -- málokdo má náladu psát celý další stylopis pro Explorer.
Podtržítkový hack a hack zpětného lomítka řeší většinu věcí. A validita je opravdu otázka její definice. |
||
mipo Profil |
#19 · Zasláno: 27. 12. 2004, 15:28:28
2 Yuhů: Ohľadom tej poznámky naprostý súhlas. Je to veľmi ťažkopádne, aj keď efektívne, radšej používam hack s podtržítkom alebo s lomítkom.
|
||
llook Profil |
#20 · Zasláno: 29. 12. 2004, 02:58:40
Yuhů
Taky už jsem to tady někde psal - podmíněné komentáře jsou vhodné pro hackování HTML (což není skoro nikdy potřeba), podtržítka na hackování CSS. |
||
Časová prodleva: 19 let
|
Toto téma je uzamčeno. Odpověď nelze zaslat.
0