Avatar billede ssv Nybegynder
20. november 2008 - 14:48 Der er 6 kommentarer og
1 løsning

Tingen omrking float og clear

Hello.

Jeg har arbejdet med CSS i flere år efterhånden, men der er en ting jeg aldrig har fået forklaret ordentligt og forståeligt, og hvorfor det er som det er.

Sætter jeg flere div'elementer inden i hinanden til at floate:left; og fylder dem med tekst, vil IE6 lægge stykker af teksten under selve indholdet. Frustrerende og irriterende, special når jeg ikke selv ved hvorfor.

Så hvordan er det så med floatede elementer: Er det kun IE6 der fejler? Hvorfor sker det? Og hvordan er det nu med at "cleare" div-elementer?

Specielt tingen omkring clearing af div'er (eller floatede div'er) er jeg meget interesseret i, da alle sider jeg ser anbefaler at gøre det, men hvorfor skal man og hvordan foregår det?

Det er meget, ja, men jeg håber i har tid til at forklare det til mig :-)
Avatar billede olebole Juniormester
20. november 2008 - 21:06 #1
<ole>

Floatede elementer fylder ikke noget i det alm. dokument-flow. Som ordet antyder, 'flyder' elementet så at sige ovenpå resten af dokumentet.

Efterfølges floatede elementer dog af et element med den korrekte clear værdi, fylder de alligevel, som forventet:
    <div style="height:0;overflow:hidden;clear:both">&nbsp;</div>

Her kan du læse en masse mere om float og clear:
    http://www.w3.org/TR/CSS21/visuren.html#floats

/mvh
</bole>
Avatar billede olebole Juniormester
20. november 2008 - 21:07 #2
PS: Det er generelt en kanon god side, der forklarer detaljerne om CSS' visuelle model  ;o)
Avatar billede rynke10 Novice
22. november 2008 - 15:19 #3
http://css.maxdesign.com.au/floatutorial/index.htm
Den synes jeg er meget nem at forstå.
Avatar billede ssv Nybegynder
27. november 2008 - 11:05 #4
Tak for jeres svar. Jeg bemærker at teksten "gentages" under afslutningen af et div, hvis flere div-elementer er floatede indeni hinanden. Vi kunne meget nemt have et scenarie der lignede:

<div style="float: left; margin: 0 0 0 10px; display: inline;">
  <div style="float: left; margin: 0 0 0 10px; display: inline;">
    <div style="float: left; margin: 0 0 0 10px; display: inline;">Slutningen bliver gentaget i IE6
    </div>
  </div>
</div>

--
Er der en bug i IE6, eller er det mig der er forkert på den? Og hvordan kan det løses?
Avatar billede olebole Juniormester
27. november 2008 - 15:15 #5
Jeg ser ingen gentagelser i min IE6  =)
Avatar billede ssv Nybegynder
04. december 2008 - 15:06 #6
Jeg har set problemet mange gange før. Det plejer dog at kunne løses med en <span style="overflow:hidden;height:0;"></span> - underligt, ja :-)

Smit et svar så vi kan få lukket her :-)
Avatar billede ssv Nybegynder
18. december 2008 - 12:31 #7
Jeg regner ikke med at der er mere aktivitet her - jeg lukker. Vil du have dine point, olebole, så sig til :-)
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

Seneste spørgsmål Seneste aktivitet
46 min siden Tomt felt i Start Af ErikHg i Windows
I går 23:00 Hyperlink til tekst Af Nanarsi i Excel
18/0121:03 Forlænge ringetid Af 1Dorte i Apps til Android
17/0117:38 Video ikoner Af Malm i Windows
17/0117:27 Video ikoner Af logbuilders i Windows