IE har enforkert opfattelse af bredden i bokse, med ovennævnte kode skjules den sidste del for IE, som ikke forstår denne del. Så IE vil vise boksen med 599 pixels, mens andre browsere viser den i 597 pixels. IE lægger evt. border og padding til i boksens bredde, hvilket er forkert.
Ingen tvivl om at det er et hack, men jo nødvendigt, fordi IE fejlagtigt indeholder borderen inde i elementets bredde, mens andre gør som box-modellen stipulerer. lægger den udenpå !-)
Man kan så sige at denne slags hacks, som reparerer på en fejl ved at udnytte en anden fejl, principielt er uheldigt, da man jo sagtens kan komme ud for, at producenten reparerer fejlene i 'den forkerte rækkefølge', så hacket holder op med at virke forinden det, det skal reparere på er rettet !o]
En anden indgangsvinkel kunne være at bruge M$-tingen 'conditional comments':
Man kunne jo sådan set godt forestille sig, at M$ implementerede > i den næste udgave, men ikke rettede boks-fejlen, så IE lige pludseligt godt forstod den anden selektor !-)
Synes godt om
Slettet bruger
30. august 2004 - 13:07#9
"næste udgave" af hvad? IE 6.01 browseren? CSS 3.0?
Så hvad vil du egentligt anbefale at man skal gøre, for at sikre sig bedst muligt, og med færrest mulighed for at skulle gå tilbage og rette i sine koder?
De små hacks er, som nævnt, blot elementer der er sammensat for at omgå fejl i forskellige browsere. Er man dybt afhængig af, at boxmodellen (, fejlen i) virker ens i alle browsere, så er ens design ikke fleksibelt nok. Imho.
Og CSS2 har været en standard i 6 år, men ikke en eneste browser har implementeret alle dele af denne standard, desværre har den mest udbredte browser de mindste huller mellem fejlene ...
Synes godt om
Slettet bruger
30. august 2004 - 13:22#12
exp: Jeg følger søremig også standarden (både XHTML 1.0 og CSS), men problemet ligger altså i, at M$ ikke følger standarden! Det er derfor vi bruger disse hacks for at rette IE ind. IE lægger nemlig border og padding TIL i boksens bredde, hvilket er forkert iflg. standarden. Derfor. :-)
extand >> Lige nøjagtig også hvad jeg skriver... og tilføjer, at hvis dit design er afhængigt af at boxmodellens vises 100% korrekt - i alle browsere - så er dit design ikke fleksibelt nok... punktum.
;-)
Synes godt om
Slettet bruger
30. august 2004 - 13:55#14
exp: Enten fatter jeg ikke hvad du mener, eller også misforstår du et eller andet. Fordi: Hvad har fleksibilitet med box-model at gøre? Hvis man placerer en box et bestemt sted på sit website, skule den jo gerne være placeret præcis det samme sted, uanset hvilken browser clienten bruger, ikke også? Det er netop det vi snakker om. :-)
Eller også må du bakke dit udsagn op med et eksempel.
Jeg vil erklære mig delvis enig med exp, for hvis man har lavet sit design så stramt, at det vil vælte, hvis en tilfældig border lægges til en bredde eller højde, er man næsten med sikkerhed derude, at det er umuligt at se siden ordentligt med bare et flertal af browserne, så det er en dårlig taktik !-)
-- omvendt er man da også nødt til at forholde sig til virkeligheden, så det med at følge standarderne er en rigtig god idé, men når nu den mest udbredte browser ikke understøtter vigtige dele af standarden, kan det være nødvendigt at bruge mærkelige tricks !o]
-- og så vil jeg helt klart anbefale 'conditional comments', da de netop kun virker i IE, alle andre browsere ser bare en html-kommentar, som de skal overse ...
-- og hvis M$ i en senere version af browseren ændrer noget, så er det nemt at ændre !-)
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.