Ben de laatste tijd nogal aan het klooien met css en op zich gaat het wel redelijk alleen nu zit ik met een vraagje waar ik het antwoord nog nergens heb kunnen vinden.
Stel ik heb een formulier met bijvoorbeeld het volgende:
Dit zier er dus goed uit in Internet Explorer 6 en in de nieuwste opera alleen in FireFox ziet het er niet uit. Dit heb ik kunnen oplossen d.m.v. een class toe te voegen aan de eerste div:
Nu zijn er echter een paar dingen die ik niet helemaal begrijp:
• Waarom moet je float: left; doen een <label> is geen block element dus het inputveld staat zowiezo naast de text?
• Waarom pakt hij pas een width als ik float left doe bij het label?
•
• Waarom moet ik nog deze code toevoegen om het geheel ook in FireFoz werkende te krijgen?
Ik weet dat mijn voorbeeld werkt maar om het geheel allemaal wat beter te begrijpen wil ik ook graag weten waarom iets werkt zoals het werkt. Dan kan ik de volgende keer de oplossing misschien zelf helemaal bedenken.
Stel ik heb een formulier met bijvoorbeeld het volgende:
Cascading Stylesheet:
1
2
3
4
5
6
7
8
9
10
11
12
13
| label { float: left; width: 111px; } span { float: left; width: 111px; } div.radiobuttons label { float: none; } |
HTML:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
| <form action="reactie.asp"> <fieldset> <legend>[css] Waarom float left?</legend> <div class="naam"> <label for="naam">Naam</label> <input type="text" name="naam" id="naam" /> </div> <div class="radiobuttons"> <span>Geslacht</span> <input type="radio" name="geslacht" id="m" value="M" /> <label for="m">Man</label> <input type="radio" name="geslacht" id="v" value="V" /> <label for="v">Vrouw</label> </div> <div> <label for="geboortedatum">Geboortedatum</label> <input type="text" name="geboortedatum" id="geboortedatum" /> </div> </fieldset> </form> |
Dit zier er dus goed uit in Internet Explorer 6 en in de nieuwste opera alleen in FireFox ziet het er niet uit. Dit heb ik kunnen oplossen d.m.v. een class toe te voegen aan de eerste div:
Cascading Stylesheet:
1
2
3
| div.naam label { float: left; } |
Nu zijn er echter een paar dingen die ik niet helemaal begrijp:
• Waarom moet je float: left; doen een <label> is geen block element dus het inputveld staat zowiezo naast de text?
• Waarom pakt hij pas een width als ik float left doe bij het label?
•
• Waarom moet ik nog deze code toevoegen om het geheel ook in FireFoz werkende te krijgen?
Cascading Stylesheet:
1
2
3
| div.naam label { float: left; } |
Ik weet dat mijn voorbeeld werkt maar om het geheel allemaal wat beter te begrijpen wil ik ook graag weten waarom iets werkt zoals het werkt. Dan kan ik de volgende keer de oplossing misschien zelf helemaal bedenken.