Starší komentáře ke článku: Myslete elasticky s CSS

Zpět na článek | Úvodní stránka Interval.cz

Avatar

Autor komentáře: 4

Datum vložení: 9.8.2004 1:42:54

<IMHO>
k clanku len tolko, ze pouzitelny je z neho len nadpis a vec o ktorej pojednava, prakticke rady, ako aj konkretne problemy, ktore autor riesi su v praxi "nepouzitelne".

hack s pouzitim / uprostred nazvu sa mi zda byt viac ako nestastny, ako aj pouzitie casti expression
moje hodnotenie clanku 2/5 ;((((, zeby uhorkova sezona ?
</IMHO>

"_" na zaciatku je standardny hack, a je w3c validny (aj ked validatory pisu ze nie je, lebo splna specifikaciu)

Avatar

Autor komentáře: Vilém Málek

Datum vložení: 9.8.2004 5:13:43

Podtržítkový hack validní není, i když to někteří "guru" tvrdí. Specifikace totiž říká, že z hlediska budoucích verzí a derivací CSS je podtržítko na začátku názvu vlastnosti povoleno, současně ale žádnou takovou vlastnost nezná. A jelikož validita je shoda se specifikací, žádný stylopis, používající podtržítkový hack, nemůže být validní. Takže validátor má tentokrát pravdu ;-)

Avatar

Autor komentáře: 4

Datum vložení: 9.8.2004 5:47:49

"guru" niesom ;) ale Vas povazujem za jedneho(skutocneho). dakujem za opravu.

Avatar

Autor komentáře: Ondra Marek

Datum vložení: 10.8.2004 18:15:28

a neni lepsi pouzivat misto podtrzitkoveho hacku toto:
* html div nebo *html id
napr. pokud chci, aby treba #barva vsechny prohlizece zobrazovaly cervene, akorat MSIE v.5 i v.6 zelene, definuji normalne cervenou barvu pro #barva a potom pridam *html #trida { color:green }
funguje to OK a je to i v pohode validni
viz take <a href='http://centricle.com/ref/css/filters/tests/star_html/' target='_blank'>http://centricle.com/ref/css/filters/tests/star_html/</a>

Avatar

Autor komentáře: scolex

Datum vložení: 1.9.2004 22:15:46

s tim podtrzitkovym hackem jste me zaskocil

pixy pise, ze je validni: <a href='http://interval.cz/__redirect/redirect.asp?what=interval_discussion&url=http://wellstyled.com/css-underscore-hack.html' target='_blank'>http://wellstyled.com/css-underscore-hack.html</a>

Avatar

Autor komentáře: Vilém Málek

Datum vložení: 2.9.2004 8:27:09

<I>Přepis statě pro HL (zkráceno, upraveno):</I>

<B>Podmíněný komentář</B> je metodou danou výrobcem zařízení, kterak pro toto zařízení definovat specifickou funkčnost tak, aby neovlivňovala ostatní zařízení. Je to vestavěná funkčnost, která je v souladu se všemi normami, je přesně popsaná a funkční. Jde přitom o stejný princip, jaký byl použit v XML extenzích.

<B>Podtržítkový hack</B> je zneužitím chyb zařízení. Je nespolehlivý, protože tyto chyby mohou být v budoucnu odstraněny výrobcem nebo mohou zasáhnout zařízení od jiného výrobce. Je v rozporu s normou. Ano, v normě je povoleno použití podtržítka na začátku vlastnosti, ovšem u vlastností potenciálně v budoucnosti definovatelných. Použitím podtržítka u libovolné vlastnosti, jak se to nyní děje, vlastně z definované vlastnosti vytvoříte vlastnost nedefinovanou. Prohlížeče ji jako takovou ignorují, s výjimkou MSIE, který ji v rozporu s požadavky normy zpracuje a nahradí odpovídající definovanou vlastností bez podtržítka. (MSIE se v tomto chová jako typický soft od M$ - myslí za uživatele a "opravuje" jeho chyby.)

<B>Validátor W3C</B> se v případě podtržítkového hacku nemýlí a správně ho označuje za nevalidní. Validita totiž neznamená pouhé zachování gramatiky definičního jazyka, ale přesné a doslovné dodržení všech definovaných pravidel a vlastností. V žádné současné definici CSS neexistuje žádná vlastnost s podtržítkem na začátku a proto žádný styl s takovou zrůdností nemůže být považován za validní ;-)

Avatar

Autor komentáře: Martin Snížek

Datum vložení: 9.8.2004 16:49:54

<I>'prakticke rady, ako aj konkretne problemy, ktore autor riesi su v praxi "nepouzitelne".'</I>

Nevím, jak to myslíte.

<I>"hack s pouzitim / uprostred nazvu sa mi zda byt viac ako nestastny, ako aj pouzitie casti expression"</I>

Zpětné lomítko v názvu vlastnosti je plně validní (každé písmeno v CSS můžete zapisovat pomocí escape-sekvence) a umožňuje nám skrýt deklaraci před IE 5.x; přitom je to kratší a jednodušší než celý Tantekův hack.

Expression můžete zahrnout do speciálního souboru jen pro IE a odkazovat se na něj pomocí podmíněných komentářů, viz článek. Pokud přijdete na nějaký lepší způsob, jak v IE nahradit max-width, sem s ním.

Avatar

Autor komentáře: Adam

Datum vložení: 9.8.2004 2:03:14

Dokud bude nutno kvuli vetsine navstevniku, kteri pouzivaji v soucasne dobe nestandardizovany prohlizec pouzivat ruzne hacky a vkladani expession do css tak do tohodle nejdu :) Podobne jako css layout i tohle je pisen budoucnosti, ktera v soucasnosti spise omezuje tvurce, kteri se to snazi pouzit.

Avatar

Autor komentáře: mr.builder

Datum vložení: 9.8.2004 8:43:02

<I>Podobne jako <B>css layout</B> i tohle je pisen budoucnosti</I>... zrejme nemas hudebni sluch. Pokud delas weby stale s tabulkovym layoutem (rozumej po staru), tak pote chapu ze podobne postupy se ti zdaji trochu mimo :o) za to autor bohuzel nemuze.

mb

Avatar

Autor komentáře: Vermin

Datum vložení: 9.8.2004 14:54:47

No jo IE je SH1T a udelat v nem web jen pomoci CSS aby fungoval spravne ve vsech moznych kombinacich verzi win, IE, instalovanych patchu a rozsireni. Je opravdu silenost. Proto pro IE vytvarim zakladni layout pomoci tabulek, a pro prohlizece ktere umi CSS - CSS "elasticky" layout.

Hacky typu lomitko a podtrzitko se mi zdaji trochu "prasacke" osobne pouzivam dva CSS soubory, a pri nacitani stranky podle user agent v kodu nacitam jeden nebo druhy.

Avatar

Autor komentáře: Petr

Datum vložení: 9.8.2004 21:37:11

No, ale to se mi zdá ještě horší řešení, protože pokud měníš styl (např. barvu pozadí) musíš jej měnit 2x.

Avatar

Autor komentáře: Richard Šerý

Datum vložení: 9.8.2004 17:59:52

Já to používám již delší dobu a není to zas takový problém jak to vypadá. Prostě napíšu stylesheet tak jak má být a pak aplikuju hacky pro MSIE.

Ovšem ten tanteckův hack je teda hnus, ten jsem nikdy nepoužil.
Jinak je ale článek pěkný a ze života, akorát by neškodil trochu akčnější sloh, nerad čtu strohá "manuálovitá" pojednání ;-)

Avatar

Autor komentáře: Plaváček

Datum vložení: 9.8.2004 7:05:42

Rozhodnete-li se použít nastavení min-width nebo max-width pomocí expression pro Internet Explorer, dávejte si dobrý pozor, abyste nevynechali XML deklaraci (kupříkladu <?xml version="1.0" encoding="iso-8859-2"?>). Přesně v okamžiku, kdy na ní zapomenete, nebo jí neuvedete, při změně velikosti okna pošlete do kytek v lepším případě prohlížeč, v horším případě celý uživatelův systém (odzkoušeno na Win98).

Avatar

Autor komentáře: Jméno a příjmení

Datum vložení: 9.8.2004 16:21:05

odkdy je psx 98 system? :))), jinak pokud pouziji xml deklaraci v php generovanych strankach, tak to zas bude kolidovat s tim php... kaslat na expression, proc vsechno musi delat tak slozite a jinak, kdyz to jde normalne a jednoduse?

Avatar

Autor komentáře: Vilém Málek

Datum vložení: 9.8.2004 16:23:05

S PHP to kolidovat nebude, stačí, když se PHP naučíte správně zapisovat. Tato chyba prozrazuje nezvládnutí základů PHP ;-)

Avatar

Autor komentáře: Pedro

Datum vložení: 14.8.2004 23:38:19

<B>A jak prosím vás?</B>

Avatar

Autor komentáře: Jan Renner

Datum vložení: 15.8.2004 4:00:35

echo"<?xml version=\"1.0\" encoding=\"iso-8859-2\"?>\n";

Avatar

Autor komentáře: Vilém Málek

Datum vložení: 15.8.2004 9:03:19

Jde to i bez escapování a zdržování s analýzou řetězců ;-)

echo '<?xml version="1.0" encoding="iso-8859-2"?>';

Avatar

Autor komentáře: Orion

Datum vložení: 16.8.2004 16:34:51

Nebo:
echo <<<END <?xml version="1.0" encoding="iso-8859-2"?> END;

A to se hodi i jinde, pac tam muzete psat ' i " zaroven.

Avatar

Autor komentáře: Vilém Málek

Datum vložení: 16.8.2004 16:44:30

To je ovšem jednak zbytečně komplikované, druhak potenciálně nebezpečné a, do třetice všeho dobrého, plýtvá to výkonem interpretoru ;-)

Avatar

Autor komentáře: Martin Snížek

Datum vložení: 9.8.2004 16:51:41

Mně se to taky stávalo, u IE 6 na Win98. Pak jsem ale změnil nerovnosti v expression z ostrých (<) na neostré (=<) a už to přestalo. XML deklaraci jsem k tomu ani nepotřeboval.

Avatar

Autor komentáře: Jan Renner

Datum vložení: 12.8.2004 17:15:23

XML deklarce přepne IE6 do quirk modu. Dvouřádkový JS vložený do kódu před </body> je zatím nejlepší náhrada expression, na jakou jsem přišel.

Avatar

Autor komentáře: Kvetos

Datum vložení: 9.8.2004 9:47:19

K hl. prvkům patří též <strong>html</strong>, nazývaný kořenový prvek, který CSS uplatňuje. Tímto prvkem ovlivňujeme rozměry dokumentu. Avšak ten, jestli se nepletu, nezmíňujete, resp. nepočítáte u něj s využitím vlastností width ani height. Tudíž automaticky se použijí výchozí rozměry. Není nutné html ve stylopisu definovat

Důsledek. Prohlížeč prostě vybere (zobrazí) takovou šířku průzoru, jakou má uživatel nastavenou, nu a váš popis toto základní nastavení mění. Rozumím tomu dobře?

Avatar

Autor komentáře: Martin Snížek

Datum vložení: 9.8.2004 16:53:18

<I>"Důsledek. Prohlížeč prostě vybere (zobrazí) takovou šířku průzoru, jakou má uživatel nastavenou, nu a váš popis toto základní nastavení mění. Rozumím tomu dobře?"</I>

Ano, takhle nějak to je. Jen nedefinujeme šířku prvku <html>, ale prvků uvnitř stránky.

Avatar

Autor komentáře: Vícha

Datum vložení: 9.8.2004 18:24:11

Přesně! Díky!

Avatar

Autor komentáře: Ales

Datum vložení: 10.8.2004 10:39:59

Pomoci toho hacku s / jsem udelal stranky ktere vypadaji stejne vsude krome IE6, takze to zase muzu vyhodit.
Nenapsal by nekdo o hacich podrobneji? Nekdo tady mam dojem psal ze pouziva i jine.

Avatar

Autor komentáře: Vilém Málek

Datum vložení: 10.8.2004 11:26:17

Hacky může používat jen zkušený XHTML/CSS kodér, který ví, jaký budou mít v konkrétní situaci efekt. K tomu Vám nepomůže žádný návod, protože nikdo nezná konkrétní kód, který zrovna píšete ;-)

Avatar

Autor komentáře: pif

Datum vložení: 10.8.2004 20:35:37

o tom nikdo nepochybuje, jen tady chybi uceleny prehled vsech hacku, ktere clovek spatril ;) + jejich popis a na ktere prohlizece apod. maji vliv

Avatar

Autor komentáře: Vilém Málek

Datum vložení: 10.8.2004 20:52:04

Viz <a href='http://centricle.com/ref/css/filters/' target='_blank'>http://centricle.com/ref/css/filters/</a> ;-)

Avatar

Autor komentáře: Honza Hučín

Datum vložení: 11.8.2004 12:11:54

<a href='http://www.pixy.cz/blog/2004_06_archiv.html#1088438627' target='_blank'>http://www.pixy.cz/blog/2004_06_archiv.html#1088438627</a>

Avatar

Autor komentáře: Marek

Datum vložení: 29.8.2004 23:32:31

Sice se o tom v clanku pise, ale stejne jsem moc nepochopil, proc proste nestaci zadat jednodusse napr.

width : expression(document.body.clientWidth > (parseInt(document.body.currentStyle.fontSize) * 50 * 4/3)? "50em": "auto" );
}

- Tohle mi funguje, sice ne uplne presne, ale jakz takz to funguje...

Pouzil jsem zapis presne podle autora s upravenymi sirkami a proste mi to nejak nefunguje...

Nemohl by autor odkazat na nejakou funkcni ukazku v ems ?

Avatar

Autor komentáře: Martin Snížek

Datum vložení: 29.8.2004 23:46:07

Předně máme pro <body> nastavenou velikost small, takže document.body.currentStyle.fontSize vrací právě to small. Velká část výrazu řeší tenhle problém. Další problémy podle mých zkušeností způsobuje vlastnost offsetWidth, narozdíl od clientWidth, která se dá použít jen pro okno dokumentu. A zbytek výrazu řeší situaci, kdy máme nastavenou width pro případ, že jsou v IE vypnuté skripty.

Takže, klidně můžete používat váš výraz (pokud definujete výchozí šířku v pixelech, nenastavujete šířku pro případ vypnutých skriptů a používáte clientwidth) -- ten v článku vychází z podmínek, které jsou v něm dány.

Avatar

Autor komentáře: Marek

Datum vložení: 30.8.2004 2:09:01

Uz vim, co mi na tom Vasem nefungovalo... Ono to fungovalo(funguje, pouzil jsem to :D), akorat mi nedoslo, ze kdyz to delam pres sirku primo toho elementu a ne pres document.body.clientWidth, tak pri zmenseni okna prohlizece se uz ten pozadovany element nezmensi... Jsem hlava derava ;-)...

Jinak dekuji za pekny clanek a intervalu zdar :-)...

Avatar

Autor komentáře: Pavel

Datum vložení: 16.9.2004 11:12:38

Ten trik s expression je sice pěkný, ale nefunguje. Zkopíroval jsem text z článku (bez změn). Používám WinXP a IE 6.0. Pokud ten dokument otevřu, v malém okně, tak se nic nestane. Když okno zvětším (nad tu nastavenou hodnotu), tak se prohlížeč kousne.

Zkoušel jsem na začátek přidat "<?xml version="1.0" encoding="windows-1250"?>", jak to tu někdo radil, ale nic.

Avatar

Autor komentáře: Petr SLADEK

Datum vložení: 5.11.2004 0:57:35

Ano, v XHTML 1.0 Strict se opravdu MSIE (alespoň 6-ka) zakousne. Problém je totiž v tom, že hodnota <B>document.body.clientWidth</B> se při nastavování šířky vnitřních elementů chová v hraničních stavech trochu jinak.
Řešením je dát tam malou rezervičku, konkrétně spojeno dohromady pro min-width a max-width to vypadá např. takto:

<B>width: expression(document.body.clientWidth<604 ? "600px" : (document.body.clientWidth>900 ? "900px" : "auto" ) );</B>

Avatar

Autor komentáře: MiSa

Datum vložení: 9.11.2004 18:02:10

Ano, přesně tenhle problém jsem řešil cca hodinu, než sem se opět dostal k internetu a přečetl komentář. Mimochodem, víte někdo, jaké existuje potencionální riziko mát uvedená konstrukce do budoucna? (Například IE6 evidentně nebyla v článku testnuta)

Avatar

Autor komentáře: Martin Snížek

Datum vložení: 10.11.2004 18:44:59

Mýlíte se, IE 6 byla testována bez problémů.

Avatar

Autor komentáře: Richie

Datum vložení: 18.10.2004 1:11:40

Po trojhodinovom hladani (prevazne na nete) riesenia mojho problemu s css layoutom a jeho nekompatibilitou som narazil na tento clanok a diskusiu k nemu... Velmi mi to pomohlo, teda najma v tom, ze mi to pripomenulo, ako som kedysi fungoval na tabulkovych layoutoch... a zrazu som to mal vyriesene - dal som to do tabulky - a v kazdom prehliadaci to vyzera skvele... a bez hackov... :-) CSS je skvele, ale proste niekedy sa bez tabuliek neda... :-) Nebudem tu rozpisovat, aky problem som tym vyriesil, to je jedno, ale verte mi... cez css to neslo... aspon ja som na to neprisiel... :-)

Avatar

Autor komentáře: hz

Datum vložení: 11.2.2005 21:35:56

Ale urcite to slo, ja jsem mel nedavno taky na male, ale reseni jsem nasel.. Nejhorsi ze vseho je ladeni IE :(

Avatar

Autor komentáře: dfr

Datum vložení: 9.12.2006 9:49:14

Jo? Tak mi napriklad reknete, jak bez tabulky udelat 3-sloupcovy layout s pevne danou sirkou PRAVEHo sloupce a tak, aby tok dat byl levy-stredni-pravy. Tedy aby pri vypnuti CSS bylo nejdrive leve menu, pak stredni obsah a prave detaily az na konci... Diky!

Avatar

Autor komentáře: wiki

Datum vložení: 24.11.2004 8:36:43

Sakra lidi vy me bavite. Pod pojmem elasticky web sem si teda predstavoal neco uplne jineho nez tohle trapne implementovani max-width do iecka.

Myslim ze je cas na VZPOURU. Kdyz se nevzeprou iecku ti co tomu rozumi a budou se poslusne prizpusobovat diktatu M$, tak kdo?

Avatar

Autor komentáře: Václav Prokop

Datum vložení: 15.7.2005 10:06:59

LINUX LINUX LINUX :-)

Avatar

Autor komentáře: franto

Datum vložení: 13.9.2005 20:25:44

Ahoj !, Viem, ze tento prispevok je z pred roka a prave preto reagujem. Mnoho komentarov k tomuto clanku bolo kritickych, avsak cas ukazal, ze kritika bola neopravnena. Tabulky su uz v zabudnuti a na rad prichadza nova era, era elementov, kde svoju podstatnu ulohu zohrava aj elastickost. Vid napr. www.yahoo.com. Este raz !, vdaka za skvely prispevok. Frantisek.

Avatar

Autor komentáře: Honza

Datum vložení: 7.12.2006 11:52:33

No, nejvetsi sranda ze uz zase nemas pravdu :) Cas bezi.....

Zpět na článek | Úvodní stránka Interval.cz