05. august 2010 - 16:01Der er
14 kommentarer og 1 løsning
Målrette CSS til IE kontra Firefox
Jeg har designet en netside i Firefox, så outputtet ser fint ud med nedenstående CSS. Nu skal jeg gerne have det overført til IE8. Jeg har undersøgt mulighederne for, at der dynamisk vælges mellem forskellige CSS'er ved runtime. Men det ser ikke ud til, at det er en mulighed.
Så nu vil jeg gerne tilrette CSS'en, så den passer til IE8. Speciefikt gælder det primært højre side i en ramme omkring en tabel, som er ganske bred (ca. 5 gange så bred som vestre side), og det samme gør sig gældende for bunden (bunden er ca. 5 gange så bred som toppen).
Findes der en smart måde, at rette dette problem på, eller er man nødsaget til at rette CSS'en manuelt?
Hvis det skal gøres manuelt, hvor skal ændringen så foretages (jeg kan ikke gennemskue det i CSS'en)?
CSS: .dialog { position:relative; margin:0px auto; min-width:8em; max-width:760px; /* based on image dimensions - not quite consistent with drip styles yet */ color:#fff; z-index:1; margin-left:0px; /* default, width of left corner */ margin-bottom:0px; /* spacing under dialog */ }
.dialog .content, .dialog .t, .dialog .b, .dialog .b div { background:transparent url(../src/dialog2-blue-800x1600.png) no-repeat top right; background-image:url(../src/dialog2-blue.gif); }
.dialog .wrapper { /* extra content protector - preventing vertical overflow (past background) */ position:static; max-height:1000px; overflow:auto; /* note that overflow:auto causes a rather annoying redraw "lag" in Firefox 2, and may degrade performance. Might be worth trying without if you aren't worried about height/overflow issues. */ }
.dialog h1, .dialog p { margin:0px; /* margins will blow out backgrounds, leaving whitespace. */ padding:0px 0px 0px 0px; }
Hos Computerworld it-jobbank er vi stolte af at fortsætte det gode partnerskab med folkene bag IT-DAY – efter vores mening Danmarks bedste karrieremesse for unge og erfarne it-kandidater.
Jeg havde godt nok fundet den omtalte kode, men jeg gik ud fra, at det havde noget med javascript at gøre, hvorfor jeg ikke kunne få den til at virke. Men hvis den virker, som angivet i dit link, så er det muligt, at stille bestemte CSS'er til IE.
Det eneste tilbageværende problem er så, hvor CSS'en skal tilrettes, for at den omtalte fejl i IE's rendering af rammen undgås. Er der nogle personer, som kan gennemskue den angivne CSS for det aspekt?
Jeg kan ikke lige gennemskue det ud fra din beskrivelse der. Det ville gøre det meget nemmere, hvis vi kunne få et link til problemet. =)
Som udgangspunkt er det meget sjældent nødvendigt med et stylesheet til hver browser. Ét burde kunne klare det i langt de fleste tilfælde. Hvis du finder ud af, hvori fejlen består, og retter det, så tror jeg stadig Firefox vil vise det korrekt, om ikke andet så efter et par små ændringer.
Firefox viser det skam korrekt, da jeg benytter Firefox som browser. Det er blot et ønske, at det også vises "ordentligt" i IE, da mange stadig benytter denne browser.
Selve problemet består i, at siderne af rammen bliver alt for store sammenlignet med Firefox-renderingen. Men at dømme ud fra tekst i det tidligere link, så har IE det med at doble width op. Så i morgen vil jeg lige checke, om dette er løsningen.
Ja, Firefox viser det korrekt, og mit bud er, at når du fikser det i IE også, så vil det virke i begge 2.
Dvs.: Jeg tror kun du behøver ét stylesheet!
Mere kan jeg desværre ikke sige. Jeg kan ikke løse noget, jeg ikke kan se. :) Hvilket element i CSS'en er det, der driller? Altså hvilket har den "ramme", du snakker om?
Visningsforskelle mellem IE, FF og for den sags skyld mange andre andre browsere skyldes oftere invalid og/eller dårlig HTML end det skyldes fortolkningsforskelle mellem browserne.
Linket fra claes57 kan være ganske fortrinligt, men inden du begynder at implementere det så lad os gerne se noget online først så vi kan bedømme om det er den rigtige løsning eller ej.
Jeg forsøgte af følge angivelserne i det sidste link. De eneste fejl, jeg havde i html'en, var, at <br> ikke var afsluttet med /. DOCTYPE var quirks-mode, hvilket jeg gerne ville ændre til standarten. Men dette synes ikke rigtig fremgik af siden, hvordan den skulle angives.
Ellers må jeg prøve at få lagt et eksempel online, så I kan se problemet realtime.
Hvis du har en korrekt doctype og din kode er valid plejer der at være minimale forskelle mellem browserne - mange af de forskelle der kan være derefter er ofte ting man let kan komme uden om med lidt kendskab til hver browsers særheder. I enkelte tilfælde kan der dog være ting der er umulige at løse men uden at se problemet er det svært at komme med flere input.
Jeg har fundet diverse steder på nettet, hvor det klart ses, at de forskellige browsere fortolker html meget forskelligt. Mest overraskende er, at alle de forskellige versioner (og underversioner) af IE fortolker html individuelt.
Så nu er det vist tid til at lukke dette spørgsmål - selvom jeg egentlig var ude efter en fiks metode til at målrette html til de forskellige browsers. Den mest optimale metode er, at man har layoutet specificeret i forskellige css, som der henvises til gennem et stykke kode, som registrerer hvilken browser, man bruger.
Hvis det er den konklusion du er endt op med tror jeg du har læst på de forkerte sider - som allerede nævnt af os er der forskelle så overraskende bør det næppe være hvis du har læst vores kommentarer, men når nu du ikke kan/vil følge op på vores kommentarer er det jo svært for os at byde ind med mere... men tak for hjælpen.
Det du henviser til indeholder i min optik langt fra "store forskelle" og slet ikke taget din CSS i betragtning - men når nu din kode og dit projekt er så hemmeligt at vi ikke kan se hvad du har problemer med kan jeg da kun glæde mig over dine fortsatte udfordringer.
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.