Sovražim te IE. Slišiš?! Sovražiiim!!!

Firefox pohrusta IEVsakič, ampak res vsakič, ko delam kakšen dizajn za spletno stran in ko pride do realizacije le te na spletu nastanejo problemi v prikazu strani v IE. Že res, da so nekaj stvari glede .css datotek popravili v IE 7, vendar nekateri problemi še zmeraj ostajajo. Kot je npr. margin-left, -right in pa padding-left, -right. Problem pri teh margin-ih je, da jih IE da krat 2. Torej, če bi v Firefoxu blo margin-left: 10px; bi to IE razumel kot margin-left: 20px; in tako porušil stran.

Tu pa zdaj uporabljam eno preprosto finto (css hack), ki ga razume IE6 in drugo, ki jo razume IE7. Takole:

margin-left: 10px; /* to npr. pravilno razumeta Firefox in Opera */
.margin-left: 10px; /* IE6 hack – to zdaj pravilno razume IE6 */
_margin-left: 10px; /* IE7 hack – to zdaj pravilno razume IE7 */

Seveda je ta css hack poznan že nekaj časa, a je še zmeraj aktualen in mislim, da še bo dolgo.

Ta blog namenoma ni optimiziran za IE! Glejte ga raje z brskalnikom Firefox ali Opera!

P. S. Da ne bo zdaj kdo mislil, da zdaj ne prilagajam nobenega dizajna za IE, ker jih. Na svojem blogu si lahko privoščim, da ni prilagojen za IE.

Posted in Tehnične novice
  • Ravno danes sem ugotovil, da Firefox kot edini brskalnik izmed testiranih (IE6 & 7 in Konqueror) narobe tolmači HTML event (dogodek) onchange pri znački , v kolikor namesto miške uporabljaš tipkovnico, saj vsebino eventa onchange sproži šele takrat, ko izgubi fokus, torej ko se dejansko sproži event onblur…

  • Jan

    Ti pa sploh nisis relavantn, kr vem kak IE7 freak si! :mrgreen:

    tak da ups, če ma FF to napako, lahk ti povem za veliko drugih v IE 😛

  • IE7 je eden izmed brskalnikov, ki pač ne uporabljajo standardnega encodinga spletnih strani. Kaj drugega po verziji 6 niti ni bilo pričakovati.
    Z prilagajanjem spletnih strani najrazličnejšim brskalnikom (običajnim, za slepe in slabovidne, za PDA, java, ..) se ukvarjam že dolgo časa, lahko rečem le, da velikih razlik (vsaj med običajnimi brskalniki), ni. Če margin/padding/position/itd. funkcije uporabljaš na pravilen način, seveda.

    Ena zanimiva povezava, za vse CSS “uporabnike” ..

    http://www.webdevout.net/css-hacks

  • Se pridružujem izjavi ”sovražim IE” Tudi jaz ga nemaram!! Firefox forever!!

  • Ko bi spletni oblikovalci le znali izkoriščati zmogljivosti sodobnih programskih oz. skriptnih jezikov…

    S PHP, ASP.NET & sorodnimi jeziki lahko brez težav ugotoviš kateri brskalnik uporablja uporabnik, ki je trenutno na strani in mu temu primerno pošlješ oz. ponudiš ustrezno CSS datoteko. S tem se izogneš neskončnemu preizkušanjo in “hekanju” CSSa, da izgleda stran v brskalnikih kolikor toliko enako…

    Brez raznih fixov, hackov in seveda brez živčnega zloma…

  • In tako narediš 10 različnih stajlov namesto enega … Super, res …
    IE smrdi!!

  • @SFfreak: dej ne hval IE-ja, ker ni vredn uporabe 🙂 Pa event on change se čist lepo tolmači, tisto kar ti praviš (pomikanje po selectboxu z puščicami) da bi moralo sprožit ta event ni res, ker to pomikanje je pregledovanje vsebina selectboxa in ne spreminjanje le te. 🙂

    Pomoje je najboljši brskalnik trenutno na Opera, ampak ima par pomanjkljivosti kot npr. nima extensionov ipd. in zaradi tega sem še zmeraj na Firefoxu.

    Sicer pa Jan, bodi srečen, da maš samo z CSS probleme, jst sm zadnič ko sem pisal JavaScript za PHP RegEx Editor skor znorel, ko sem iskal rešitve, ki delajo v vseh brskalnikih…

    Sicer pa najboljši hack za browserje je tole:<!--[if IE]><link rel="stylesheet" href="ie.css" type="text/css" /<>![endif]-->Pač napišeš specifičen CSS za IE… če delaš takšne hacke, kot imaš prikazan zgoraj v postu se CSS ne bo validiru 😉

  • Jan

    @sverde1: hvala za nasvet. bom probal kdaj.

  • @sverde1: Potemtakem je tudi izbira vnosa v drop-down meniju le pregledovanje, ker ima fokus tudi ko ti izbereš vnos iz drop-down meniju. Se pravi, da je končno stanje (fokus na ) enako, kot če izbiraš s puščicami – efekt pa ni isti…

    Mimogrede, verjetno je Firefox res edini in res EDINI, ki se POPOLNOMA drži standardov, saj tale zadevca deluje pravilno v IE6,7, Operi 9, Konquerorju in verjetno še drugje.

    Testiral sem z Firefox 1.5.0.3 (build RHEL4, x86_64) in Firefox 2.0.0.4 (build Linux i686), IE6 in IE7 na Windows XP z vsemi najnovejšimi popravki, Operi 9.21 (build 461, Linux i686) in Konquerorju (build 3.3.1-5.19.rhel4, x86).

    @sverde1: Najboljši hack za browserje je ta, da ti že na strežniku browserju pošlješ poseben CSS fajl, prirejen samo za tisti browser – lahko prilagajaš tudi po različici brskalnika, ne samo po tipu…

  • @SFfreak: si že slučajno slišal, da se da ime browserja fajkat? Naprimer Opera ima že v nastavitvah brskalnika nastavitev, da se lahko predstavlja kot IE,… (no vsaj imela je, zdajle ne najdem te nastavitve), potem Firefox ima en Extension, s katerim se da spremenit ta header,… tako server prepozna napačni browser in includa napačno datoteko, če pa uporabljaš tiste “if” stavke pa browser lokalno preveri tisti if stavek in ga glede na to includa.

    BTW tam pri oni vrstici za include sem naredil en typo namesto <> mora biti ><

  • Vem, brez skrbi…

    Edino kar ne vem je vzrok, zakaj bi navaden uporabnik, ki si želi ogledovati normalne spletne strani “fejkal” podpis spletnega brskalnika?

  • Mogoče ker so nekateri webDeveloperji tak pametni, da tudi preverjajo podpis brskalnika in glede na to napišejo da moraš imeti IE za ogled strani, čeprav brez problemov dela tudi v Firefoxu.

  • Jaz sem napisal, da se da uporabniku poslati namesto style.css datoteko style_ie.css, če uporablja IE, style_ff.css če uporablja Firefox, style_opera.css za Opero, itd. Sem dobro napisal tudi normalne strani in 99% spletnih strani ne blokira uporabnika glede na brskalnik, ki ga uporablja.

    Nikoli pa ne bi šel v to skrajnost, da bi blokiral dostop do strani uporabnikom, ki ne uporabljajo določenega brskalnika – navsezadnje si vsi spletni razvijalci verjetno želimo, da bi bila stran dostopna čimvečjemu spektru obiskovalcev…

    Mimogrede, na http://sverde1.com se obiskovalcem, ki uporabljajo Internet Explorer prikazuje nadležna pasica, ki svetuje oz. zahteva uporabo brskalnika Firefox. Toliko o tem, kdo je “pameten webDeveloper”…

  • Definiraj normalna stran, ker jaz si za normalno stran razlagam stran, ki dela v vseh brskalnikih brez hackov 😛

    Nisem rekel da si ti ta pameten webDeveloper, ki bi šel v to skrajnost, ampak nekateri gredo npr. nekaj Microsoftovih strani se mi zdi da je takih ipd.

    Sicer pa kot je že Jan rekel, to je njegov blog in si lahko privošči, da je ta blog optimiziran samo za Firefox, tako si lahko tudi jaz privoščim banner, z razliko da je moja stran optimizirana za vse browserje (pa še dosti ur sem porabil z prilagajanjem strani na IE), poleg tega pa nobenega ne silim da uporablja FF s tistim bannerjem, ampak samo mal reklamo delam ciljni publiki 🙂 pa tudi tist banner se pokaže samo ob prihodu za 1 sekundo, tako da ne mora bit tak nadležn, razn če serijsko pritiskaš refresh :D, sicer pa [1. stavek iz prejšnjega odstavka].