Als een brave webdesigner probeer ik nu mijn pagina's in elkaar te draaien met DIVs en te positioneren met CSS, maar verdomd als de frustraties die daarmee gepaard gaan niet eens mijn dood worden. Vrûûger, toen we nog tabellen mochten gebruiken, was alles toch veel makkelijker...
.
Het probleem is dat ik het scherm in twee blokken wil verdelen. Het linkerblok gaat een titel bevatten in de vorm van een LABEL en het rechterblok één of meer LABELs en INPUTs; het geval is uiteindelijk voor een tabelloos form, zoals hier afgekeken. Alleen, omdat ik nog informatie toe wil kunnen voegen aan een invoerveld gaat het voorbeeld niet helemaal op.
Alles mooi en aardig, maar ik zit me te ergeren aan vreselijk irritant gedrag. Het kleinste stuk code wat de fout demonstreert is deze:
Wat gebeurt er? Hoewel de form_control_label en form_control_control toch duidelijk sibling elementen zijn, menen zowel IE als FireFox dat het label-block IN het control-block getoond moet worden. Het control-block spant dus de hele breedte; het label-block en de error-label delen de eerste regel, en het invoerveld komt aan de linkerkant van de pagina terecht (in plaats van onder het error-label, waar hij eigenlijk thuishoort): schermschotje.
Waarom dit gebeurt is me een groot raadsel. Wat doe ik verkeerd/wat zie ik over het hoofd?
Als extra krenten in de verwarringspap: als ik het control-block (dus de niet gefloate div) een height-waarde toeken, zet Internet Explorer de blokken wel goed naast elkaar. FireFox vertikt het echter nog steeds in alle standen...
Argh! Kwor gek!
Het probleem is dat ik het scherm in twee blokken wil verdelen. Het linkerblok gaat een titel bevatten in de vorm van een LABEL en het rechterblok één of meer LABELs en INPUTs; het geval is uiteindelijk voor een tabelloos form, zoals hier afgekeken. Alleen, omdat ik nog informatie toe wil kunnen voegen aan een invoerveld gaat het voorbeeld niet helemaal op.
Alles mooi en aardig, maar ik zit me te ergeren aan vreselijk irritant gedrag. Het kleinste stuk code wat de fout demonstreert is deze:
HTML:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
| <style> .form_control_label { float: left; background-color: green; display: block; } .form_control_control { background-color: yellow; display: block; } label { display: block; } </style> <!-- .... --> <div class="form_control"> <div class="form_control_label"><label class="input_title" for="username">Desired username</label></div> <div class="form_control_control"> <label class="input_error" for="username">Username may not be empty</label> <input type="text" id="username" name="username" value="" /> </div> </div> |
Wat gebeurt er? Hoewel de form_control_label en form_control_control toch duidelijk sibling elementen zijn, menen zowel IE als FireFox dat het label-block IN het control-block getoond moet worden. Het control-block spant dus de hele breedte; het label-block en de error-label delen de eerste regel, en het invoerveld komt aan de linkerkant van de pagina terecht (in plaats van onder het error-label, waar hij eigenlijk thuishoort): schermschotje.
Waarom dit gebeurt is me een groot raadsel. Wat doe ik verkeerd/wat zie ik over het hoofd?
Als extra krenten in de verwarringspap: als ik het control-block (dus de niet gefloate div) een height-waarde toeken, zet Internet Explorer de blokken wel goed naast elkaar. FireFox vertikt het echter nog steeds in alle standen...
Argh! Kwor gek!