Avatar billede steinholtz Nybegynder
23. juli 2007 - 15:19 Der er 4 kommentarer

Jeg bliver syg i hovedet! IE6 - borders - height - mellemrum etc.

Jeg er ved at går helt kold over hvor fucked css virker i IE6. Ved ikke om det bare er mig som laver ged i det.

Starter med det simple:

Jeg skal bare have en vandret linje som er 1px høj og sort. Her er css koden:

#line01 {
width: 654px;
height: 1px;
background-color: black;
}

Firker fint i Firefox men hvorfor faen er det lige at i IE6 at den ikke er 1px høj men snarere 10px...? Giver jo ingen mening.

En anden ting er er at den sætter en masse mellerum ind under steder den ikke burde:

div id="seachfield">
 
  <div id="searchtop">
    <img src="img/searchtop.gif"/>
  </div><!--searchtop-->

  <div id="box">
  </div><!--box-->

</div><!--seachfield-->

<img src="img/skygge01.jpg" id="skygge01"/>

"Box" diven lige under billdet img/searchtop.gif har en border. Hvorfår faen er der mellemrum mellem searchtop.gif og "box"? "Box" er jo forhelvede lige neden under! Jeg har ingen padding eller margin på. Har også prøve at sætte dem til 0px men nææ nej.
Har samme problem mellem "box" og "skygge01".

Sidst har jeg et problem med borders, som jeg ikke engang ved hvordan jeg skal beskrive men det er vidst et kendt problem med at Firefox og IE sætter borders helt forskeligt. Der kommer 2px forskeld på min borders.

Kæft det er latterligt!
Avatar billede olebole Juniormester
23. juli 2007 - 15:27 #1
<ole>

Har du mon overvejet, det jo teoretisk også kunne være din egen viden, der er latterlig lille?  =)

Nu kan jeg ikke vide, hvad det præcist er, du gerne vil med linjen, men hvis det f.eks. er et div, så skal du enten sætte line-height og font-size til 0 - eller sætter overflow til hidden:

#line01 {
width: 654px;
height: 1px;
font-size: 0;
line-height: 0;
background-color: black;
}

Efter et inline-element, bør du ikke lave mellemrum i koden. Altså ikke:
    <div><img src="bla.gif">
    </div>

- men:
    <div><img src="bla.gif"></div>

/mvh
</bole>
Avatar billede olebole Juniormester
23. juli 2007 - 15:28 #2
- og nej, med hensigtsmæssig kode, sættes border ikke forskelligt i IE og FF
Avatar billede wanze Nybegynder
29. juli 2007 - 00:23 #3
olebole har vist løst dit første problem.

Hvorfor der er mellemrum mellem div'enog billedet? Tjoh, fordi du har lavet mellemrum i din kode. Div'en tager en hel linje, så på næste linje kommer der et mellemrum., hvorefter du afslutter en div (som igen tager linjen ud) og nedenunder kommer billedet så.

Prøv at fjerne alle mellemrum/linjeskift i kildekoden i det stykke - så vil problemet nok være løst. Desuden bør du bruge tabs fremfor mellemrum til at indentere din kode.
Avatar billede olebole Juniormester
29. juli 2007 - 01:41 #4
wanze >> at dette sker i IE, er nu ikke så logisk - men faktisk en browser-bug. Det _må_ ikke ske ifølge W3C's rekommandationer. Problemet opstår som sagt kun i et block-element, efter et inline-element - og kun i IE.

Om der er mellemrum mellem start-tagget og teksten/inline-elementet, betyder ikke noget. Kun mellemrummet før slut-tagget giver 'en linje' for meget  ;o)
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