TOPlist

Pixylophone - komentáře

Komentáře (od nejstarších po nejnovější)

Komentáře k příspěvku Šířka stránek: fixní, natahovací, nebo jiná? Jaká jiná?


[1] Vložil(a): Frantisek Augusztin [web], 2004-05-17, 16:04 Solo | MuteČtenáři: ---

> podtržítkový "MSIE-only" hack

Skusal som inac aj ine znaky a IE v pohode zozerie akykolvek nealfanumericky znak (otestovane so znakmi -, $ a !, urcite ale funguju aj ine). To len ako dodatok k tomu hacku. Objavil som to, ked som si skusal nadefinovat vlastne property v CSS v tvare "-nazov-property" a vedel som sa k tomu dostat cez JavaScript len pomocou "nazov-property".

Frantisek Augusztin

[2] Vložil(a): pixy [web], 2004-05-17, 16:53 Solo | MuteČtenáři: ---

ad [1] > Jojo. To je chyba MSIE. Ale jen znaky "-" a "_" jsou korektní podle sytaxe CSS - identifikátor může začínat znaky [_\-a-zA-Z0-9].

[3] Vložil(a): JohnyB [web], 2004-05-17, 17:04 Solo | MuteČtenáři: ---

Pekny clanek, v podstate jsem rad, ze se s nim mohu ztotoznit, diky Pixy.

[4] Vložil(a): Roj [web], 2004-05-17, 17:14 Solo | MuteČtenáři: ---

BRAVO!!!

[5] Vložil(a): Joker, 2004-05-17, 17:15 Solo | MuteČtenáři: ---

chtěl bych se zeptat - co je lepší: s pomocí CSS hacků apod. vyrobit kód, který bude univerzální a bude "nějak" fungovat všude anebo pomocí server-side skriptu předhodit každému prohlížeči optimalizovaný kód (v praxi teda dvě verze - W3C a IE)?

[6] Vložil(a): pixy [web], 2004-05-17, 17:18 Solo | MuteČtenáři: ---

ad [5] > Těžko říct. Hlavní je otázka "co je lepší PRO KOHO". Pro správce je nejspíš nejjednodušší mít jeden jediný CSS soubor, kde je vše pohromadě (ale je to dvakrát víc práce, dvakrát víc souborů) - pro uživatele je lepší mít co nejjednodušší a nejmenší CSS na míru (samozřejmě za předpokladu, že je dobře udělaná ta server-side rozbočka)...

[7] Vložil(a): TimJ, 2004-05-17, 17:51 Solo | MuteČtenáři: ---

Moc hezkej článek Pixy. Podepisuju se.

[8] Vložil(a): Pavel Jansa, 2004-05-17, 19:57 Solo | MuteČtenáři: ---

Mám předplacený Computer a poté, co změnili od čísla 7/2004 vzhled aplikace na vloženém cd mi to nedalo a napsal jsem na webu časopisu svou připomínku:

"Na CD computeru mi vždy trochu vadilo, že se hlavní obrazovka otevírá v okně
640x480. Dobrá, vždy jsem si ho ručně zvětšil na celou obrazovku 1024x768 (a to mám
prohlížeč nastaven na automatické otevírání přes celou obrazovku). Ale že
hlavní okno CD (v novém kabátě 7/2004) se nedá zvětšit vůbec mi vadí moc a
moc a moc a moc. Mohli byste naprogramovat prohlížení CD tak, aby si okna
převzala velikost podle aktuálního nastavení prohlížečů nezávisle na různém
rozlišení obrazovky, čili ne tak jak to chcete vy, ale tak jak má každý
uživatel nastavený prohlížeč html?"

Odpověděl mi Pavel Nygrýn:
"Zvětšovat okno nechceme, držíme se typografického pravidla, které praví, že
více jak 80 znaků na řádku je zločin. Okno samozřejmě samo o sobě zvětšit
jde, nicméně texty stále budou zabírat je úzký prostor."

Odpověděl jsem mu:
"Dovoluju si odporovat - typografické pravidlo 80 znaků má význam při tisku textu na A4, nikoliv při zobrazení textu na obrazovce. Na CD 9/2004 okno opět roztáhnout nejde. DVD 8/2004 posoudit nemůžu, nemám mechaniku DVD. Používám pouze WinXP IE6, nemám důvod instalovat si nějaký další prohlížeč."

A přišla další reakce:
"80 nzaků se netýká žádného formátu, je to doporučený stadard, při kterém je možno číst "po řádcích" nikoliv po jednotlivých slovech. Používá se u malých i velkých formátů - tam se ovšem řeší pomocí sloupců, které na obrazovku zavádět nechceme."

Kdo má vlastně správnější názor? Já jako zákazník neboli "režisér, maminka a zákazník má vždy pravdu" a nebo pan Nygrýn, který tvrdí "my jsme autoři a html stránka bude taková jak chceme my" a nedá čtenáři možnost změny?

[9] Vložil(a): Martin Kopta [web], 2004-05-17, 22:24 Solo | MuteČtenáři: ---

Ad [2] -- jenže, Pixy, width není identifikátor, takže je to tak jako tak invalidní kód. ;-)

Mně se prostě ty hacky a míchání CSS s javascriptem ne a ne a nelíbí.

Ad [8] -- to už je druhý případ, kdy se někdo odvolává na nějaké pravidlo 80 znaků. Jelikož mám tíživý pocit, že to ti lidé vyčetli ode mě, tak se velmi omlouvám. Není to pravidlo, špatně četli.

[10] Vložil(a): wolf, 2004-05-17, 23:56 Solo | MuteČtenáři: ---

[8][9] co ta sebestřednost pane kopto? 80 znaků platilo v typografii už v době, kdy jste chodil po houbách. Bohužel dneska už umí číst "po řádcích" málokdo, takže je to fuk.

mimochodem, jestli někoho zajíma sloupcová sazba na webu, pak mu musím doporučit http://www.iht.com.. jsou tam i jiné nevídané vychytávky

[11] Vložil(a): pixy [web], 2004-05-18, 00:42 Solo | MuteČtenáři: ---

ad [9] > Tak to jsem asi slepý, Martine: http://www.w3.org/TR/CSS21/syndata.html#tokenization

- deklarace je property S* ':' S* value;
- property je IDENT
- IDENT je [-]?{nmstart}{nmchar}*
- nmstart je [_a-zA-Z]|{nonascii}|{escape}

Řekl bych, že se pleteš. Tenhle hack JE - a to jako jeden z mála - validní (nesmíš samozřejmě brát ohled na validátor W3C, který ještě CSS2.1 nezná...)

[12] Vložil(a): dgx [web], 2004-05-18, 01:45 Solo | MuteČtenáři: ---

[9] [11]: Pixy má recht.

Od odpůrců tohoto hacku jsem slyšel argument, že není dopředně kompatibilní. Co když jednou vznikne identifikátor _width, se kterým bude kolidovat?

Na to říká specifikace: In CSS2.1, identifiers may begin with '-' or '_'. Keywords and property names, beginning with -' or '_' are reserved for vendor-specific extensions.

No a Microsoft bug v podstatě vendor-specific extension je, že? :-)

Tím pádem padá i námitka, že je nevalidní.

Vzhledem ke geniální jednoduchosti tohoto hacku nevidím důvod, proč ho nepoužívat.

[13] Vložil(a): dgx [web], 2004-05-18, 02:57 Solo | MuteČtenáři: ---

[5] >> vyrobit univerzální CSS anebo pomocí server-side skriptu předhodit každému prohlížeči optimalizovaný?

pěkná otázka. Není to tak dávno, co jsem nad tím váhal, a rozhodlo off-line brouzdání. První řešení totiž nebude fungovat, když si stránku v jednom prohlížeči uložíte na disk (např v Opeře, která to umí velmi šikovně) a pak chcete prohlédnout v IE.

[14] Vložil(a): Honza Hučín [web], 2004-05-18, 08:34 Solo | MuteČtenáři: ---

Když už se tu narazilo na problém rozlišování prohlížeče (třeba kvůli podstrčení optimalizovaného CSS), dovolím si upozornit na tzv. podmíněné komentáře (http://interval.cz/clanek.asp?id=896), s nimiž mám velmi dobré zkušenosti.

<!--[if gte IE 5]>
<link rel="stylesheet" media="screen" type="text/css" href="styl_ie.css">
<![endif]-->
<![if lt IE 5]>
<link rel="stylesheet" media="screen" type="text/css" href="styl_nonie.css">
<![endif]>

Pokud se nemýlím, toto řešení nevyžaduje server-side skript, je to jeden kód a každý prohlížeč si ho přebere podle svého. Samozřejmě za cenu toho, že délka kódu trochu naroste, ale pokud je to jen v definici stylu, dá se to skousnout.

[15] Vložil(a): jiri, 2004-05-18, 09:24 Solo | MuteČtenáři: ---

Hm. Osobně chyby v IE ignoruju. Vím, že si něco takového nemůžu dovolit, pokud dělám nějaký důležitý web. Ale pokud to jen trochu jde, použiju jen min-width a max-width. Že uživatelé dinosauřího IE mají příliš dlouhé řádky je mi jedno. Svůj prohlížeč si mohou svobodně zvolit.

[16] Vložil(a): Roj [web], 2004-05-18, 10:53 Solo | MuteČtenáři: ---

[13] To je ale velmi specificky pripad a kdo neco takoveho dela, asi ho takova malickost nerozhodi.

[15] Delam to taky tak :-)

[17] Vložil(a): dgx [web], 2004-05-18, 13:23 Solo | MuteČtenáři: ---

[16] ale takovým offline brouzdanim jsou i podnikove cache!

[18] Vložil(a): Roj [web], 2004-05-18, 14:53 Solo | MuteČtenáři: ---

V podnicich zase maji urcitou sitovou politiku, takze je pravdepodobne, ze pouzivaji jednotny prohlizec. Ale argument to je.

[19] Vložil(a): Michal Kubeček, 2004-05-18, 17:06 Solo | MuteČtenáři: ---

Ad [17]: v případě cache to řeší hlavička 'Vary' v odpovědi.

[20] Vložil(a): kvezt [web], 2004-05-18, 17:48 Solo | MuteČtenáři: ---

tak já vám nevím kde mám chybu ale zkusil jsem jednodušší konstrukci a "vyhnívá" mi na tom jak IE5 tak i IE6 :(
Přičemž nevim kde je problém. Poradíte prosím?

zdroj:
<html>
<head>
<style>
#page {
   border:1px solid #f00;
   width:58em;
   min-width:700px;
   _width:expression( document.getElementById("page").offsetWidth < 700 ? "700px" : "58em" );
}
</style>
</head>

<body>

<div id="page">
   <h4>div id="page"</h4>   
</div>

</body>
</html>

[21] Vložil(a): pixy [web], 2004-05-18, 17:58 Solo | MuteČtenáři: ---

ad [20] > a jsi si stopro jistý, že těch "58em" je větších než 700px? Pokud by to totiž bylo méně (a při nějakém 10pt základním písmu si myslím, že klidně mohlo), tak tam vznikne docela legrační nekonečná smyčka...

[22] Vložil(a): Zázračný Element, 2004-05-18, 19:43 Solo | MuteČtenáři: ---

[15] & [16] - já nejsem mrkvosoftí zastánce (snad kromě excelu), ale není pravda, že si každý může v klidu a svobodně vybrat prohlížeč (dokonce si myslím, že těch, co mohou, je menšina - taky proto ma MSIE převahu) ať už z jakýchkoli důvodů (klidně i nevědomost, nebo omezená práva, a mnoho mnoho dalších).
A já si právě myslím, že to je tvůrce webu, který by s tím měl počítat a dělat stránky pro všechny (MSIE nediskriminujíce) - koneckonců od něj očekávám, že ví čí se prohlížeče různí a jak co zobrazují - uživatel, který to neví má o důvod míň hledat jiny proh. a tak za nezobrazenou korektně stránku bude přičítat vinu tvůrcům.

[23] Vložil(a): brn, 2004-05-18, 20:36 Solo | MuteČtenáři: ---

Diky pixy, pekny clanek. Mam na to velice podobny nazor. Jenom bych upozornil, ze pouziti expressions muze byt nestabilni. Pri nekterych kombinacich (slozity design, hodne vnorenych prvku) IE spadne, pravdepodobne kdyz uzivatel okno postupne zmensuje a ty dve sirky (300px a 30em nebo kolik) na sebe "nenavazuji". Mozna i jindy.

Rozhodne bych se to ale nebal vesele pouzivat na online webu, pro offline prezentaci ulozenou na CD to nepouzivam (kdyz by to v nejake silene verzi IE nefungovalo, tak tezko prepalim vsechna CDcka, zatimco online web zmenim behem sekundy). Misto toho pouzivam hack s tabulkou (spini to ale HTML kod):

<!--[if IE]><table><tr><td class="maxwid_hack"><![endif]-->
... NECO NECO NECO ...
<!--[if IE]></td></tr></table><![endif]-->

Take bych doporucoval podminene komentare, rad je pouzivam (napriklad i misto matrjoska hacku), proste v jednom kratkem css souboru "msie-specific.css" opravim vsechny mouchy Microsoftiho prohlizece.

Ale na neco bych se chtel zeptat: Moc nechapu proc porad rikas, ze underscore hack je validni. To ze "_width" neodporuje konvencim pro tvorbu jmen vlastnosti CSS jeste validitu nezarucuje. Zadna vlastnost "_width" totiz neexistuje. Je to neco, jako kdybys mel HTML dokument, ktery by byl z hlediska XML well-formed, ale byly by tam tagy jako: <jsem><blazen></blazen></jsem>. Cili je sice well-formed, ale neni validni.

A k tomu prispevku o "vendor-specific extension" - to by za uvodni pomlckou muselo nasledovat nekolik indentifikacnich znaku a pak dalsi pomlcka a pak az jmeno vlastnosti. Tedy napriklad "-moz-janevimco".

[24] Vložil(a): Lumpy [web], 2004-05-18, 20:39 Solo | MuteČtenáři: ---

[30]
1. KAŽDÝ si může vybrat prohlížeč, který mu vyhovuje. Kromě IE si může vybrat z několika lepších (bezpečnějších, rychlejších a modernějších) technologií s lepším uživatelským rohraním než má IE, např. z Mozilly/Firefoxu, které fungují na všech hlavních operačních sstémech a platformách, nebo také Operu. Všechny zmíněné produkty jsou několikanásobně menší než IE, a přitom toho umí více. Podle řady globálních statistik lidé zjišťují, že je taky něco lepšího než IE, a jeho podíl postupně klesá.
A jde se na to dívat ještě z druhé strany. Uživatelé Mac OS X si novou (lepší) verzi IE již nikdy nenainstaluje (nebude), uživatelé Linuxu si nenaistalují žádnou (nefunguje).
2. Jistě, že tvůrce webu by měl počítat s tím, že návštěvníci mohou mít různé prohlížeče. Jenže žádný webmaster nikdy nebude vědět všechny finty a obezličky, jak si poradit s každým problémem IE (a někdy to vůbec nejde), a proto je jednodušší udělat dobře funkční web pro IE a uživatelům moderních prohlížečů nabídnout něco navíc - lepší komfort. PROČ BY SI TO NEZASLOUŽILI, když to jejich prohlížeče bezproblémů umožní? Uživatelé IE si prostě nemůžou stěžovat, že jim tam něco nejde tak jako v Gecku/Opeře/Safariv, jelikož nejde o neschopnost tvůrce webu, ale o neschopnost prohlížeče správně interpretovat daný kód podle jasně specifikovaných webových standardů.

[25] Vložil(a): Michal Kubeček, 2004-05-18, 21:13 Solo | MuteČtenáři: ---

Ad [23]: a jak jste vlastně přišli na to, že identifikátor s podtržítkem na začátku je v CSS korektní? Ať koukám do specifikace, jak chci, identifikátor musí začínat písmenem anglické abecedy, znakem s kódem nad 127 nebo escape sekvencí. Uvnitř může být navíc ještě pomlčka. Podtržítko, tj. znak s kódem 95 tam nemá vůbec co dělat.

[26] Vložil(a): pixy [web], 2004-05-18, 22:11 Solo | MuteČtenáři: ---

ad [25] > přečti si znovu pořádně [11]. Korektní to je, validní to je (ale až podle CSS 2.1, podle předchozího CSS 2 ne - nicméně CSS 2.1 odpovídá realitě víc než CSS 2).

ad [23] > Ukažte mi, prosím, ve specifikaci CSS to místo, kde se říká, že se nesmí použít nějaká specifikací nedefinovaná vlastnost. Pokud já vím, tak nic takového tam není - je tam jen a) formální gramatika, jíž musí název vlastnosti odpovídat (tomu _width vyhovuje); b) popis chování, jak musí být naloženo se známými vlastnotmi; c) pravidlo, že pokud prohlížeč nějakou vlastnost nezná, musí ji ignorovat. Čemu z toho podle vás vlastnost _width nevyhovuje? Proč je to podle vás nevalidní? To by mě OPRAVDU zajímalo.

A ten příklad s tím <jsem><blazen> je zcestný, protože specifikace jazyků (X)HTML narozdíl od jazyka CSS přesně určují, které identifikátory jsou povolené a které nejsou. V jazyce CSS takové omezení není. Howgh.

[27] Vložil(a): Michal Kubeček, 2004-05-18, 22:58 Solo | MuteČtenáři: ---

Ad [26]: v tom bude problém, vycházel jsem z CSS Level 2. Moje hodnocení CSS 2.1 je trochu jiné, vidím ho spíš jako krok zpět, který vznikl ve snaze dát autorům prohlížečů něco, co by mohli zkusit implementovat, když už bylo vidět, že o kompletní podporu CSS Level 2 se nikdo nehodlá ani pokusit. Z tohoto pohledu nelze než hodnotit CSS 2.1 jako slepou uličku, protože s jeho podporou to není o moc lepší.

Ale stejně nesouhlasím s tvrzením o validitě. To, že je nějak definováno, jak si má parser poradit se syntaktickými chybami, přeci neznamená, že všechny nekorektní syntaktické konstrukce, ze kterých se má parser předepsaným způsobem vzpamatovat, jsou validní. Ano, napsal jsem "chybami" - všimněte si, jak se jmenuje ona sekce 4.2, kde je tento mechanismus definován, a přečtěte si její první odstavec. Nebo snad za validní považujete i ty příklady, které jsou ve stejné sekci pod nadpisem "Malformed declarations"? S těmi si parser také musí poradit a nejsou od těch vymyšlených properties nijak odlišeny. Takže '_width' je formálně korektní z hlediska gramatických základ CSS verze 2.1 (a možná i budoucích verzí, uvidíme), ale stylesheet s touto property není validním CSS 2.1 stylesheetem.

[28] Vložil(a): dgx [web], 2004-05-19, 01:10 Solo | MuteČtenáři: ---

[27] >> stylesheet s touto property není validním CSS 2.1 stylesheetem

"The question is what is mahnamahna?"
"The question is who cares!"

aneb dalo by se nad tím jistě dlouze debatovat, ale proč? :-)

[29] Vložil(a): jiri, 2004-05-19, 08:20 Solo | MuteČtenáři: ---

[22] Souhlasím, že někteří uživatelé (hlavně v podnikových sítích) si svůj prohlížeč vybrat nemohou. Ačkoliv jsem stejně přesvědčen, že sysadmin, který dobrovolně upřednostní používání starého, děravého, pomalého prohlížeče před novějším a mnohem dokonalejším, uvažuje nějak divně. Ovšem nemůžu souhlasit, že nevědomost je omluvitelným důvodem.
Pro upřesnění: samozřejmě tady nemluvíme o nějakých klíčových věcech. Nikdy nedopustím, aby můj web byl v Opeře a Gecko_based v pořádku a v IE se nějak rozsypal, nebo něco. Jde o maličkosti, jako je například ta délka řádku. Kvůli takové hlouposti si nebudu zaneřáďovat kód nějakými "hacky", protože IE uživatelé nijak neutrpí, jen jejich čtecí komfort bude snížen.

[30] Vložil(a): brn@seznam.cz, 2004-05-19, 20:25 Solo | MuteČtenáři: ---

pixy: Ok, ja jsem tu specifikaci necetl, ale predpokladal jsem, ze tam je seznam povolenych vlastnosti (a ostatni ze jsou zakazane). Asi tam neni a vazne mate pravdu! :-)

[31] Vložil(a): Jirka, 2004-05-27, 23:18 Solo | MuteČtenáři: ---

Hmm... Tak u nás na univertitě se počítače připojené k internetu počítají na stovky. Možná na tisíce. Uživatelé určitě na tisíce. Ale počet lidí, kteří si můžou zvolit prohlížeč? I když pominu nevědomost a beru v úvahu práva uživatele - kolik - sto? Dvě stě? A jak na jiných školách? A internetové kavárny? Běžte do ... s vašimi naivními představami, že každý má internet doma a instaluje si co chce!

[32] Vložil(a): Yagi, 2004-06-09, 15:00 Solo | MuteČtenáři: ---

hele me IE tuhne i pri tomhle:
  width:100%;
   min-width:700px;
   _width:expression( document.getElementById("data").offsetWidth < 700 ? "700px" : "100%" );

[33] Vložil(a): Sviňák, 2004-08-05, 20:56 Solo | MuteČtenáři: ---

K nastavení max-width a min-width používám JavaScript (v kódu nebo externí, to už je jedno). Horší, než validita nebo nevalidita CSS je, že při použití expression MSIE občas tuhne nebo padá, viz [23] Brn, [32] Yagi.

[34] Vložil(a): lenka, 2004-08-06, 18:16 Solo | MuteČtenáři: ---

Dostala jsem se sem omylem ale muze Vam rict, ze vsechny ty Vase styly jsou stejne povedene :)
sikovny!

[35] Vložil(a): pa3k, 2004-11-02, 14:19 Solo | MuteČtenáři: ---

Výborný článok, vďaka.

[10] http://www.iht.com - ten pekný stlpcový layout by som veru oželel, hlavne cez Mozillu mi trhajú oči nejaké psie kusy, čo sa dejú pri rolovaní. Nehovoriac o tom, že text sa dá ľahko nechtiac odrolovať jeho označením a pri zväčšení písma je to tiež k ničomu... ale pekné to je ;)

[36] Vložil(a): Jaja, 2005-01-21, 06:39 Solo | MuteČtenáři: ---

Doufam, ze jeste neni pozde a nekdo mi odpovi.
mam uplne stejnou konstrukci jako [32] a IE pri zmmenseni okna padne. A to tak, ze pomuze jen Ctrl-alt-del. Mohu si oci ukoukat, ale nevim proc to dela.

[37] Vložil(a): radyg, 2005-04-25, 11:12 Solo | MuteČtenáři: ---

V MSIE 6 konstrukce uvedená v komentáři [32] opravdu padá a to i se šířkou uvedenou v pixelech. Problém nečiní omezení maxima, ale pouze minima. Řešením je zadat podmínku minima s určitou rezervou a to třeba následně:

div#main1
{width: 995px;
    min-width: 770px;
    max-width: 995px;
    _width: expression(
      document.body.offsetWidth < 780 ? "770px" : (
         document.body.offsetWidth > 995 ? "995px" : "auto"
         )
      );
}


Váš názor

Přidat nový komentář

Váš komentář

Přidávání komentářů k tomuto příspěvku již bylo ukončeno.

Chcete-li autorovi přesto sdělit nějakou podstatnou informaci, která se příspěvku týká, kontaktujte jej e-mailem.



 RSS 0.9x  Export  RDF  Export  RSS 0.9x  Komentáře  TXT  Komentáře  XHTML 1.0  Validate  W3C  CSS 2.1  Em-web  Resizable  W4D  90% dogmatic

Vygenerováno: [stránka generována dynamicky]