Komentáře k článku

Podmíněná pravidla v CSS

Předvedeme si běžné strategie, jimiž se webdesigneři při kódování designu vypořádávají s rozdíly v implementaci kaskádových stylů mezi webovými prohlížeči. Seznámíme vás i s možností méně známou, a tou jsou podmíněná pravidla v kaskádových stylech. Představíme vám její dvě ukázkové implementace.

Zpět na článek

56 komentářů k článku Podmíněná pravidla v CSS:

  1. yacht

    pouziti podminenych komentaru
    Co je spatne na reseni pouzit spolecne vlastnosti ne-IE prohlizecu a pak pro IE prohlizecce vlozit podminkou styl pro IE, ktery styl doupravi pro IE?

    Mozna se mylim, mam jen pocit ze mezi ne-IE prohlizeci zas takove rozdily nejsou a spolecna mnozina vlastnosti je dostacujici. Oproti rozdilum IE a ne-IE svet.

    1. Martin HassmanAutor příspěvku

      Re: pouziti podminenych komentaru
      Co je spatne na reseni pouzit spolecne vlastnosti ne-IE prohlizecu a pak pro IE prohlizecce vlozit podminkou styl pro IE, ktery styl doupravi pro IE?

      Hlavní problém je to, co bylo napsáno v článku, a to je horší údržba takového designu. Vlastnosti, které patří k sobě, mají také být zapsány u sebe a nikoliv v oddělených souborech. Při jednorázovém návrhu designu to příliš nevadí, ale pokud se takový design dále udržuje a vyvíjí (třeba i několik let, a to nemluvím o tom, když by část pravidel byla sdílena několika sesterskými weby), rostou náklady na údržbu a s tím i počet chyb, kterých se může vývojář dopustit.

      Někdo si na to už možná zvykl a bere to jako samozřejmost, ale do ideálního řešení má takový způsob opravdu daleko.

      1. Hoween

        Re: pouziti podminenych komentaru
        Podle mých zkušeností je to podstatně menší problém, než různé hacky nacpat přímo do hlavního CSS souboru. Pro normální prohlížeče mám jeden čistý a přehledný CSS soubor, a konkrétní opravy mám v souboru mimo, o kterém podle podmíněného komentáře přesně vím, pro co je určený.

        Samozřejmě mám CSS knihovnu, kterou sdílím mezi více weby, mám ji napsanou tak, že hacky nepotřebuje a s menšími úpravami mi funguje už tři roky. Opět jsem si nevšiml nějakých chyb, nebo vícenákladů při její údržbě.

        1. f4bian

          Re: pouziti podminenych komentaru
          Take mi vice vyhovuje mit styly pro IE v oddelenych souborech. Pokud mi v tom pitomem IE neco nefunguje, tak to muzu ladit v tom samostatnem souboru a vim, ze nerozdrbu styly pro ostatni prohlizece.

          1. Dundee5

            Re: pouziti podminenych komentaru
            Já jsem si celkem zvykl na nevalidní filtry. Když blbne IE 7, přidám previdlo s rovnítkem. Když blbne IE 6, přidám pravidlo s podtržítkem. A je to :)

            Je to sice nevalidní, ale co. Implementace CSS v IE 6 je také "nevalidní" :) Nemusím tak rozdělovat styly do více souborů a jsem pak schopen rychleji měnit design.

            (Nejsem grafik ani webdesignér, spíše pragmatický programátor, který se s tím moc nemaže)

      2. Plaváček

        Re: pouziti podminenych komentaru
        Ideální řešení ve webdesignu neexistují. Existují praktické ochcávky. To je historicky daný fakt. Autor tohoto jinak dobrého článku možná nebyl schopen najít nevýhody podmíněných pravidel v CSS, já ale objevil jedno velmi podstatné.

        Do CSS patří výhradně definice odpovídající specifikaci CSS. A nic víc. Komentář má zůstat komentářem. Definice definicí. Její správnou aplikaci má zajistit prohlížeč, což je problém výrobce a nikoliv kodéra.

        Zanášení cizorodých prvků do stylového předpisu je cestou do pekel. Ostatně výrobci prohlížečů mají už tak dost starostí, aby alespoň na sto procent zvládli podporu CSS 2.1 (o CSS 3 nemluvě, ale to sem nechci tahat).

        Z mých dlouholetých zkušeností navíc vím, že podmíněný komentář v HTML je sice tak trochu nutné zlo, ale ničemu a nikomu nevadí a ani u větších projektů jsem nikdy neměl problém s jeho použitím. Ostatně je určen výhradně dnes už jenom jedné verzi jednoho postaršího prohlížeče a těch pár drobností, které v podstatě neznamenají nic jiného, než zapnutí hasLayoutu, lze ve většině případů eliminovat geniální Pixyho matrjoškou.

        Navíc IE 7 už je tak daleko, že pro něj prakticky žádné extra hacky nepotřebujeme a nejpozději do dvou let bude tyran IE 6 definitivně pohřben stejně jako jeho předchozí verze.

        IE 8 má pak našlápnuto k tomu, aby se stal prohlížečem moderním stejně jako konkurence.

        Závěr? Podmíněná pravidla v CSS ani náhodou. O spoustě jiných vymyšleností, po kterých především zahraniční webdesigneři volají, se ale dá ještě diskutovat a některé nápady vypadají dobře.

        Možná by se další článek mohl věnovat právě tomu.

          1. Plaváček

            Re: pouziti podminenych komentaru
            Podmíněně souhlasím s výhradou, že "media queries" jsou určena k trochu jinému účelu, než k oblafnutí implementačních chyb jednotlivých prohlížečů. Ale i to může být cesta.

            Nicméně vzhledem k tomu, jak se vývojáři Microsoftu (dalo by se říci konečně) postavili postavili ke kritice webdesignerské komunity, doufám, že jednou v životě, dříve než okusím webdesignerský důchod, prostě napíšu jeden jediný stylový předpis a ten bude správně a bez chyb fungovat všude :)

        1. Marv

          Re: pouziti podminenych komentaru
          Pokud se ale použije ta serverové verze, tak prohlížeč dostává vygenerované čisté CSS. Komentáře se použijí jen na straně serveru pro zpracování a odstraní se.

    2. Anonym

      Re: pouziti podminenych komentaru
      Naprostý souhlas. Všechno vyjma standardního zápisu a k němu podmíněný komentář pro IE s fixací chyb dnes nedává smysl. Ostatně těch oprav je od MSIE7 o dost méně a šestka pomalu ale jistě mizí.

      výhody podmíněných komentářů:
      -soubor se styly je pak maximálně čistý a čitelný, člověk nemusí přemýšlet, proč zrovna tento hack je použit, jak funguje v této verzi a pod.
      -bezproblémový chod na všech existujících prohlížečích dnes i do budoucna
      -snadné ladění díky funkční validaci (nepřehlédnu problémový zápis uvnitř shluku hacků, prostě zelená znamená OK)
      -kdykoliv lze snadno odpojit stylopis pro starší MSIE, aniž bych musel čistit css nebo nechávat kostlivce

      nevýhody hacků:
      -nepřehledný zápis
      -nelze odstřihnout styl pro starý MSIE, který již nemá být podporován (třeba díky novým modulům, které již nebudu chtít pro něj stylovat)
      -řešení ignoruje možnost, že nějaký minoritní prohlížeč hacky přečte podobně jako IE, ale interpretuje podle jiného modelu
      -totéž platí pro budoucí verze MSIE

      nevýhody detekce prohlížeče:
      -autor asi nikdy neslyšel o proxy serverech, které při detekci prohlížeče ztrácí smysl či přínosy pro uživatele

    3. Radek Hulán

      Re: pouziti podminenych komentaru
      Některé problémy se vyřeší jejich dlouhodobým ignorováním, a tento je jeden z nich :-)

      Za prvé – jako "IE" obecně rozhodně není problém. IE, ve své době vydání, to byl téměř vždy naprosto nejlepší prohlížeč, co existoval. V roce 2001 prostě nebyl na trhu lepší prohlížeč než IE6. V roce 2006 toho také nebylo moc výrazně lepšího než IE7 (ano, byl zde FF2 a Opera 8, ale ty nejsou výrazně lepší, a pokud ano, jen v některých bodech; IE7 zase měl pěkné ergonomické GUI, a ne to staré, co FF obšlehl od IE6). A ke konci roku 2008 to nejde o moc lépe než to dělá dnešní IE8 Beta 2, s web slices či activities, podobně dobrý je i Webkit a Gecko a Prsto jako jádra se hodně snaží. Je tu zdravá, ale zcela srovnatelná, konkurence.

      IE prohlížeče jsou obecně dobré. Naprostý průser ale je, že jejich uživatelé jsou s nimi spokojeni a neupgradují. Zatímco 7 roků stará Opera či 7 roků starý Firefox (pokud se v té době nejmenoval ještě Firebird či Phoenix) se nikde nevyskytuje, uživatelé kdysi alternativních prohlížečů dělají upgrade nejpozději po 6 měsících. Starý prohlížeč existuje jen u IE.

      Dokud se nenalezne řešení, jak donutit spokojené uživatele IE6 aby změnili prohlížeč na IE7 či lepší (IE8), bude to pro webdesign špatné. Na druhou stranu, když si vezmu IE7, IE8, Opera 8, Opera 9, FF2, FF3 a dám jim jeden společný stylopis, bude to fungovat velice dobře. Jen 7 roký starý (přesto na svoji dobu nejlepší!) IE6 bude mírně odporovat, ale i tohoto různými hacky (validními * html {}) přinutím k poslušnosti. Nakonec je až neuvěřitelné, co ten staříček z roku 2001 umí :-)

      No a pak je ještě potřeba dávat pozor, aby se nestal staříček z dosud hodně dobrého IE7, aby jej nemělo 50% lidí na PC v roce 2012-2013, ale aby tam byl nejhůře IE8 či ještě lépe IE9, ale už snad nenastane, protože nové verze IE se upgradují podobně jako Opera či FF – tedy velice často.

      1. Hoween

        Re: pouziti podminenych komentaru
        A nebyl jste to náhodou Vy, kdo možná ještě před rokem vyřvával, jak je Opera pro profesionály a všechno ostatní je odpad pro socky a závistivce? A najednou už Opera není nejlepší, nejlepší je IE7.

        Už jste **** co říct.

        Mimochodem, pokud podle Vás FF obšlehl GUI od IE6, možná si zajděte k očaři, aby vaši pidlookost něčím korigoval. Návštěvou **** pokračovat.

        18. 10. 2008 8:17 redakčně upravil Martin Hassman, důvod: Názor obsahoval urážky. Názory takové podobě na Zdroják NEPATŘÍ!
      2. Anonym

        Re: pouziti podminenych komentaru
        IE jsou všeobecně k posrání (a ne, že ne!). Je sice pravda, že je IE7 o kapku lepší, než IE6, ale pořád je to v některých oblastech naprostá katastrofa (hlavně implementace javascriptových metod, např. DOM aj.). Už se mi stokrát stalo, že skript odladěný ve FF bezproblému fungoval ve všech moderních prohlížečích, jenom kvůli dementí chybě IE jsem jej musel naprosto překopat (a to způsobem 5x tak složitějším)… Takže si ty kecy nech pro svoje přitroublý fanynky!

  2. vozice_09

    Muj nazor
    Dobry den, zajimave shrnuti nekolika metod. Osobne se snazim pouzivat jen hacky, ale jen ty ze skupiny validnich (matrjoska apod). Podtrzitkovemu hacku a dalsim nestandardnim se snazim vyhnout (kdo vi ktery hack vyvojari zariznou z dalsi verzi prohlizece).

  3. Hoween

    "Hacky" v dnešní době?
    Tenhle článek by měl smysl tak před čtyřmi lety, kdy situace na trhu prohlížečů byla ještě rozhádaná a byly mezi námi takové CSS paskvily, jako IE5, nebo Opera 7. Dnes, kdy je trh v podstatě konsolidovaný na neproblémové prohlížeče a jeden problémový, mi stačí jeden podmíněný komentář, přes který IE6 vnutím konkrétní opravy a mám CSS hotové. Matrjošky, vendor-specific vlastnosti, ksindly typu Tantek Celik hack, nebo zrůdnosti typu javascriptové detekce prohlížeče, už jsou dnes absolutně nepotřebné a zbytečné.

    Mete, při vší úctě mi tenhle článek přijde jako zbytečnost, kterou jsi napsal jen proto, že si neměl jiné téma a nějaký článek si podle redakčního plánu napsat musel. Nemyslím si, že pro Zdroják je tlačení velkého počtu článků tou správnou cestou.

    1. Martin HassmanAutor příspěvku

      Re: "Hacky" v dnešní době?
      Já jsem přesvědčen, že tenhle článek odpovídá stavu dnešního webdesignu. Tvé domněnky o tlačení článku jsou, Pepo, zcela liché (mám tu v šuplíku celkem dost témat a mám občas problém v nich vybírat), snad nebudeš chápat jako výhrůžku, když prozradím, že pár podobných článků tu ještě čeká a že jsem nejen přesvědčen, že mají spatřit světlo světa, ale že je i většina čtenářů uvítá.

      1. pcs

        Re: "Hacky" v dnešní době?
        Já to také nevidím jako zbytečný článek. Možná pro profíky, kteří se webdesignem živí, ale pro nás co občas sesmolíme nějaký ten web je tenhle fundovaný souhrn v článku a komentáře uživatelů podnětný.

        1. Hoween

          Re: "Hacky" v dnešní době?
          A proto než se to CSS naučit pořádně, abych podobné hacky nepotřeboval (a to včetně dopředné a zpětné kompatibility), tak to CSSS prostě zprasím hacky pro každý prohlížeč zvlášť a s každou verzí nějakého prohlížeče se budu modlit, aby se to zobrazovalo správně.

          Tohle je bohužel typicky amatérský postoj, který celému webdesignu škodí nejvíc. Když "tydlencty vebový stránky" dělá každý jouda, nemůžeme se těm prasečinám, co člověk potkává na webu, divit. Amatéři degradují webdesign na večerní kratochvíli, co se dá dělat za pár stovek a profíci mají problém, protože i ten zámečník co má na rohu dílnu, si radši nechá udělat hnus za 2, než pořádně vypadající a fungující web za 10.

          1. mofo

            Re: "Hacky" v dnešní době?
            bohužel bez nastylování některých prvků specielně pro ten který prohlížeč stále nejsi schopen splnit všechna zákazníkova přání. můžeme si popovídat třeba o blbých políčkách formuláře. na druhou stranu není až tak velký problém udělat validní web (skoro) stejně vypadající od msie 5.5+, ff2+, safri/chrome i třeba operu. ale nějaký ten hack potřeba bude.

            1. Marv

              Re: "Hacky" v dnešní době?
              No formulářové prvky jsou kapitola sama pro sebe. V některých prohlížečích s některými formulářovými prvky nic nenaděláš, ani kdyby ses pokrájel. Leda si ten prvek celý sám vytvořit, ale to je ještě větší prasárna.

              1. Plaváček

                Re: "Hacky" v dnešní době?
                Tvůj komentář moc nesouvisí s tématem článku.

                Jde prostě jenom o to, že vykreslování většiny formulářových prvků má na svědomí operační systém uživatele a nikoliv prohlížeč. CSS jsou prostě často mimo.

                I proto doporučuje devět z deseti kodérů se stylování těchto prvků zdaleka vyhnout, i když to grafikům (a také klientům) nejde moc pod nos. To je ale věc, kterou jednou možná vyřeší Xforms.

                Prozatím vzdálená budoucnost.

    2. Láďa

      Re: "Hacky" v dnešní době?
      Nebudu komentovat dohady o důvodech vzniku článku, ale s první částí souhlasím. Spousta IE6 bugů se navíc dá odstranit CSS pravidly, které jsou sémanticky správné a ostatní prohlížeče neovlivní (dvojitý margin u plovoucích prvků, peek-a-boo bug), takže ani není potřeba je vkládat do zvláštního souboru.

    3. urso

      Re: "Hacky" v dnešní době?
      Ve výpočetní technice se vyvíjí vše velice rychle. Co platilo včera, to již neplatí dnes. Takže ti dávám za pravdu až na ten IE 6,7,8. Stačí psát podle standardu a ne pro dnes již menšinový prohlížeč IE.
      Takže jeden standardní styl pro WEB, ne pro každý prohlížeč. A ten problémový se bude muset přizpůsobit, nebo ho bude používat ještě méně lidí, ale je potřeba jim to nějak sdělit, že používají zmetek, třeba takto: http://zmsoft.cz/clanky/p2p.php

      1. M.

        Re: "Hacky" v dnešní době?
        Toto je podla mna velmi radikalny nazor. Predsa Vy chcete, aby Vam chodili ludia na tie stranky, nie? Pokial si robite web pre svoje vlastne potesenie a pre kamaratov, tak je Vas nazor podla mna v poriadku.

      2. Hnidopich

        Re: "Hacky" v dnešní době?
        No, abych rekl pravdu, moje zvedavost neni natolik silna, abych spustil jiny prohlizec a zjistoval, jake skvosty autor tech stranek vyplodil. Ba prave naopak…

        1. Hnidopich

          Re: Podminena pravidla v CSS + podminene bloky v JS
          "Nize uvedene prohlizece, u kterych je striktni dodrzovani webovych standardu naprostou samozrejmosti…" Hned mam lepsi naladu, diky. :-)

          1. --==[FReeZ]==--

            Re: Podminena pravidla v CSS + podminene bloky v JS
            Tato veta, vytrzena z kontextu, se vztahuje prinejmensim na uvede standardy v chybovem hlaseni, jako napr. XHTML 1.1

    4. obrys

      Re: "Hacky" v dnešní době?

      Já si myslím, že v dnešní době tento článek MÁ SMYSL, ale mělo tam být více řečeno, co je faktprasárna (CSS hacky typu podtržítka před vlastností) a co je celkem ok (podmíněné komentáře).

      Už několik let mi funguje následující postup:

      • Používat nekonfliktních konstrukcí a odladění pro Gecko
      • Odladění na Opeře, Webkitu a IE7 (kupodivu se dá odladit web pro tyto prohlížeče, aniž by to rozhodilo layout pro Gecko)
      • Odladění pro IE6 pomocí podmíněného komentáře – vloženého CSS na konec inkluzí, který přiohne chování zbytku (toto bývá zpravidla nejnáročnější část, protože IE6 je fakt zmetek)

      Toť moje zkušenost.

      1. Hoween

        Re: "Hacky" v dnešní době?
        Jenže z článku vyplývá přesný opak – jakékoli hacky a "filtry" přímo v CSS jsou dobré, standardní podmíněné komentáře jsou špatné.

        Vůbec nejsou zmíněné klasické podmíněné komentáře, které jsou dnes nejpoužívanější a hlavně, 100% funkční.

      2. karf

        Re: "Hacky" v dnešní době?
        Používám téměř výhradě a zásadně podtržítové (resp. rovnítkové pro IE7) hacky. Ať si to kdo chce považuje za faktprasárnu, neznám lepšího způsobu, jak se vypořádat s odlišnostmi IE6 a IE7. V zásadě má většina hacků za účel přepnutí do hasLayout módu. Podmíněné komentáře jsou sice na první pohled elegantnější řešení, ale drasticky zhoršují orientaci v CSS (dvojí-trojí pravidla ve dvou souborech namísto jednoho dpolněného hackem), Za druhé je to pro většinové prohlížeče request navíc. A za třetí, podmíněné komentáře nejsou o nic "standardnější" než podtržítkový hack. Otázky validity se řešily před X lety. Dneska je už nějaká validita v podstatě bezpředmětná, používá se to, co prostě funguje. Stejně si dneska do specifikace HTML5 každej přidává, co ho zrovna napadne.

        1. Hoween

          Re: "Hacky" v dnešní době?
          95%-98% mého CSS je stejné pro všechny prohlížeče, takže cpát do čistého CSS nějaké hacky naopak drasticky zhoršuje orientaci v tomto souboru, se kterým pracuju 95% času. Těch pár řádků, na které sahám jednou za uherský rok, mám v samostatném souboru a nepletou se mi v čistopisu.

          A request navíc? Koho to neportálových webech zajímá, server odešle 304 a tím pro něj request končí. Whitespaces a špatně rozřezaná grafika generují podstatně větší zátěž, než jakou představuje request na kešovaný soubor.

          1. karf

            Re: "Hacky" v dnešní době?
            Ale já se nehádám, jen jsem napsal, co vyhovuje mně. Jde čistě o workflow. Vyzkoušel jsem oba přístupy a oddělené styly prostě pro mě nefungovaly dost efektivně.

            1. M.

              Re: "Hacky" v dnešní době?
              Taky preferuju hacky pred podminenymi komentari.

              Prakticke zkusenosti mi ukazuji, ze pouzit podtrzitkovy (apod.) hack je prehlednejsi. Uz jen proto, ze vsechny vlastnosti daneho prvku mam pohromade. V druhem pripade jsem casto narazil na problem, ze nekdo jiny upravoval moje css, ale nevsiml si ze jsou i nejake vlastnosti v IE stylesheetu a problem byl na svete. Sutuace nastava predevsim pokud vyvojar slepe spoleha na firebug :)

              Navic se mi moc nelibi zatahovani "detekce" prohlizecu primo do tela dokumentu. Vim ze je to validni vec, ale prijde mi mensi zlo mit perfektni semanticky html dokument bez zbytecnosti s lehce ohackovanym css.

              Rozhodne souhlasim, ze vetsinu veci je uz dnes mozne resit bez obou pristupu, ale kdyz nejde jinak sahnu po podrtzitku (hvezdicce).

              A osobne bych nepodcenoval ani jeden zbytecny http request navic, predevsim na velkych projektech. Zazil jsem projekt, kde pouha redukce rozkouskovanych css prinesla vyreseni (odsunuti) problemu s poctem paralelnich vlaken na webserveru.

        2. obrys

          Re: "Hacky" v dnešní době?
          Rozhodně nesouhlasím. Na rozdíl od podmíněných komentářů, které v podstatě všechny prohlížeče respektují (a pokud ne, tak je berou jako komentáře a nevadí to, protože obvykle se opravuje stejně jenom bugózní IE, který je umí), jsou CSS hacky interpretovaný každými prohlížeči jinak. Když se vyloupne na scéně nový prohlížeč, který respektuje W3C doporučení, nemusí se s takto spraseným vůbec CSS vypořádat (viz Safari) a nastává další problém, jak opravit chyby v něm.

          Naopak mi přijde podmíněným komentářem vložený styl přehlednější, protože opravuje pouze chybně interpretované vlastnosti nekvalitním prohlížečem. V mých projektech takovýto opravný styl vždy opravoval chování jen několika elementů. Pokud by měl obsahovat více elementů, je na zvážení použití jiných html konstrukcí.

          1. karf

            Re: "Hacky" v dnešní době?
            Neberu vám osobní preferování podmíněných komentářů. Ovšem v té části o CSS se velmi mýlíte. CSS specifikace přesně definuje, jak se má UA zachovat v případě neznámých vlastností (musí je ignorovat). Dokonce garantuje, že žádná budoucí CSS vlastnost nebude začínat podtržítkem. Čili když se na scéně vyloupne nový prohlížeč, který respektuje W3C doporučení, musí se s takto napsaným CSS vypořádat zcela bez problémů (jinak by nerespektoval W3C doporučení).

            1. Hoween

              Re: "Hacky" v dnešní době?
              Pro takový případ nemusíme chodit daleko, že? Třeba neustále zkriplené IE, u kterého se klidně vsadím, že jeho osmá verze bude rovněž paskvil. Nebo jste opravdu tak naivní, že si myslíte, že další verze IE už určitě bude plně respektovat doporučení W3C? :-)))

              1. obrys

                Re: "Hacky" v dnešní době?
                Ono skutečně není třeba chodit hodně daleko. Stačí se podívat na IE7. Teď jsem se matlal s jednou věcí, nad kterou zůstává rozum stát. Jedná se sice javascriptu, ale holt v IE7 znamená událost onchange na inputu typu checkbox něco úplně jiného než všude jinde (zavolá se ta událost až po ztracení focusu). I mrzák IE6 to interpretuje správně.

                Nemá to ale smysl tady zažehávat plamen. IE se dá upálit z jakéhokoli pohledu a holt kvůli tomu se dohadujem, která špatná nebo ještě horší varianta napraví toto špatné chování, místo, aby se opravil zdroj problémů – IE.

  4. mofo

    hack x css filtr
    nemyslím, že je dobré snažit se přeložit hack jako css filtr. filtry v css jsou podle ms něco jiného. hack je hack. už jak to slovo zní je poznat o co jde ;-)

  5. Anonym

    RE: Podmíněná pravidla v CSS
    Nejlepsi reseni je tlacit na vyrobce prohlizecu, aby se drzeli standardu a zadne takovehle hacky nepouzivat! Dyt pixel nebo milimetr ma byt vsude stejny ne?!

    1. Marv

      RE: Podmíněná pravidla v CSS
      No právě že zrovna ten pixel pobdle specifikace W3C pro CSS stejný být nemusí. 1px v kaskádovém stylu nemusí odpovídat jednomu fyzickému pixelu zobrazovacího zařízení.

  6. petík

    Podmíněné zabalení do
    Používáte někdo tohle (tj. zabalení všeho do div pro IE a samostatná opravující pravidla v css?

    <body>
    <!–[if ie 6]><div class='IE6'><![endif]–>
    <!–[if ie 7]><div class='IE7'><![endif]–>
    ….
    <!–[if ie 6]></div><![endif]–>
    <!–[if ie 7]></div><![endif]–>
    </body>

    a v css:
    div.IE6 #Register div.GrayBorderRound5 {width: 731px;}

  7. MD

    RE: Podmíněná pravidla v CSS
    .box {
    width: 150;
    /*[if IE]*/ width:160;
    }

    Tohle je fakt prasarna. Jednou je to komentar, tak to ma zustat komentarem a ne to "neco delat"

    1. Hoween

      RE: Podmíněná pravidla v CSS
      A ještě ke všemu bez uvedených jednotek, takže by to stejně fungovalo jen v IE a Opeře :-) Nebo už to konečně v Opeře opravili? :-)

      To si vždycky vzpomenu na svou učitelku matematiky, která se mě při podtržení výsledku bez jednotek zeptala: "A čeho? Brambor? Facek?".

    2. Radek Hulán

      RE: Podmíněná pravidla v CSS
      osobně používám toto:

      * html .box {width:!160px;}

      Funguje to na IE6 bugy, výborně, je to přehledné, validní (je to zcela korekrní CSS konstrukce), a přitom jasně poznatelné jako hack.

      1. Hoween

        RE: Podmíněná pravidla v CSS
        A pak se vynoří další verze IE, která tento hack odstraní a můžeme CSS znovu předělávat. Amatéřina.

  8. Martin Michálek

    Web není prostředí pro jediné správné řešení
    To zatínání svalů některých diskutujících ("hacky jsou prasárna", "podmíněná pravidla ani náhodou") je legrační. :)

    Web přeci není prostředí pro jediný správný přístup. Vše co v článku Martin zmiňuje je v konkrétních případech legitimním přístupem.

    Vyrábím třístránkový web? Je super, že existují hacky a nemusím pro dvouřádkové CSS pravidlo zakládat zvláštní soubor pro MSIE6.

    Dělám složitou webovou aplikaci pro širokou masu uživatelů MSIE6 počínaje a iPhone konče? Vážně bych se zajímal o detekci na straně serveru a budu neskutečně rád za to, že někdo věnuje svou energii na projekty jako Conditional CSS.

    V těch zbylých případech vsadím na jednoduchost a dopřednou kompatibilitu, využiju úzkou skupinu pravidel spolehlivých napříč prohlížeči a zlý MSIE6 oddělím do zvláštního souboru, který za dva roky smažu. :)

    1. Hoween

      Re: Web není prostředí pro jediné správné řešení
      Jasně, zaflákáme CSS hacky a až vyjde zase nová verze nějakého prohlížeče, která pár hacků deaktivuje, budeme opět celé CSS překopávat. Nakonec se možná vrátíme k podmíněným komentářům, které fungují spolehlivě a které jsme mohli použít dávno.

      A detekce prohlížeče na straně serveru… CSS (HTML) to má dávno ošetřené. Stačí správně implementovat css media a nemusím prasárny typu detekce na serveru řešit. Plýtvám výkonem a při nezvládnutém kešování i trafficem. Konec konců, situace se ani v tomto případě nemění. V mainstreamu prohlížečů mám k dispozici standard, plus IE6, mobilní prohlížeče už CSS chápou dostatečně (a stačí mít pořádně udělaný layout, aby se to kvůli absenci floatování nesesypalo) a pro iPhone, pokud to potřebuju, mám detekci přes jeho speciální události.

      Jakékoli hacky v tomto smyslu už jsou dávno out, a jejich neustálé tlačení vpřed vychovává jen další generaci amatérů. Když člověk občas dělá výběrová řízení na kodéry, tak nestačí žasnout, co jsou dneska lidi schopní vydávat za profesionální kodéřinu.

Napsat komentář

Tato diskuse je již příliš stará, pravděpodobně již vám nikdo neodpoví. Pokud se chcete na něco zeptat, použijte diskusní server Devel.cz

Zdroj: https://www.zdrojak.cz/?p=2835