Avatar billede kkaen Nybegynder
05. august 2010 - 16:01 Der 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 .content {
  position:relative;
  zoom:1;
  _overflow-y:hidden;
  padding:0px 0px -20px 0px;
}

.dialog .t {
  /* top+left vertical slice */
  position:absolute;
  left:0px;
  top:0px;
  width:12px; /* top slice width */
  margin-left:-12px;
  height:100%;
  _height:1600px; /* arbitrary long height, IE 6 */
  background-position:top left;
}

.dialog .b {
  /* bottom */
  position:relative;
  width:100%;
}

.dialog .b,
.dialog .b div {/*!!!!!!!!!!!!FIREFOX= height:30px;!!!!!!!!!!!!!!!*/
  height:3px; /* height of bottom cap/shade */
  font-size:1px;
}

.dialog .b {
  background-position:bottom right;
}

.dialog .b div {
  position:relative;
  width:12px; /* bottom corner width */
  margin-left:-12px;
  background-position:bottom left;
}

.dialog .hd,
.dialog .bd,
.dialog .ft {
  position:relative;
}

.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;
}

.dialog h1 {
  padding-bottom:0px;
}
Avatar billede claes57 Ekspert
05. august 2010 - 16:03 #1
Avatar billede kkaen Nybegynder
05. august 2010 - 16:14 #2
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?
Avatar billede w13 Novice
05. august 2010 - 16:29 #3
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.
Avatar billede kkaen Nybegynder
05. august 2010 - 16:35 #4
Projektet ligger desværre ikke online endnu.

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.
Avatar billede w13 Novice
05. august 2010 - 16:49 #5
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?
Avatar billede keysersoze Ekspert
05. august 2010 - 16:51 #6
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.

Lidt mere læsestof om det meste sete problem; http://www.web-dev.dk/post/DOCTYPE-og-valid-kode-ens-udseende-i-Internet-Explorer-og-FireFox.aspx
Avatar billede kkaen Nybegynder
06. august 2010 - 08:49 #7
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.
Avatar billede kkaen Nybegynder
06. august 2010 - 09:01 #8
Nå, "normal"-mode ser ud til at være "strict"-mode...
Avatar billede keysersoze Ekspert
06. august 2010 - 12:27 #9
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.
Avatar billede kkaen Nybegynder
31. december 2010 - 09:04 #10
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.
Avatar billede keysersoze Ekspert
31. december 2010 - 10:35 #11
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.
Avatar billede kkaen Nybegynder
31. december 2010 - 13:01 #12
Avatar billede kkaen Nybegynder
31. december 2010 - 13:02 #13
Jeg takker naturligvis for de forslag til at løse problemet herinde :-)
Avatar billede keysersoze Ekspert
31. december 2010 - 14:06 #14
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.

godt nytår.
Avatar billede kkaen Nybegynder
31. december 2010 - 15:44 #15
Godt så - og lige over.
Avatar billede Ny bruger Nybegynder

Din løsning...

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.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester