Ik ben al tijdje bezig met het bouwen van een paar leuke formulieren die ik door middel van stylesheet vormgeef. Alleen loop ik toch tegen wat problemen aan, als je kijkt naar voorbeelden op het internet.
Volgens verschillende sites is het gebruik van <fieldset> in combinatie met <label> de correcte manier op hedendaags formulieren te maken. Alleen nu kan je een formulier op verschillende manier vormgeven, namelijk de componenten langs de caption, of de componenten onder de caption.
Nu vind ik zelf de component langs de caption, het fijnst alleen nu krijg ik dit niet fatsoenlijke gestileerd:
Maar je kan het volgens anderen ook op de volgende manier zoals hieronder, waarbij de component wordt ingesloten in de caption.
Nu vraag ik me af wat nou de juiste manier oftewel wat is "semantiek" correct? Ik zou zelf denken dat de eerste voorbeeld de juiste manier is...
Als je nu kijkt naar het formulier van dit forum, gebruiken ze ook het eerste voorbeeld. Alleen dan wordt er ook nog gebruik gemaakt van een definition list (<DL />).
De onderste voorbeeld weer gemakkelijker te vormgeven als je component onder je caption wil.
Natuurlijk is er ook XForms alleen dat kan naar mijn mening alleen gebruikt worden, als je controle hebt over de user agents die gebruikt wordt.
Volgens verschillende sites is het gebruik van <fieldset> in combinatie met <label> de correcte manier op hedendaags formulieren te maken. Alleen nu kan je een formulier op verschillende manier vormgeven, namelijk de componenten langs de caption, of de componenten onder de caption.
Nu vind ik zelf de component langs de caption, het fijnst alleen nu krijg ik dit niet fatsoenlijke gestileerd:
HTML:
1
2
3
4
5
6
| <fieldset id="fs_1"> <legend>Adresgegevens</legend> <label for="straatnaam">Straatnaam</label> <input type="text" name="straatnaam" id="straatnaam" value="" class="type-text" /> </fieldset> |
Maar je kan het volgens anderen ook op de volgende manier zoals hieronder, waarbij de component wordt ingesloten in de caption.
HTML:
1
2
3
4
5
6
| <fieldset id="fs_2"> <legend>Adresgegevens</legend> <label for="straatnaam">Straatnaam <input type="text" name="straatnaam" id="straatnaam" value="" class="type-text" /></label> </fieldset> |
Nu vraag ik me af wat nou de juiste manier oftewel wat is "semantiek" correct? Ik zou zelf denken dat de eerste voorbeeld de juiste manier is...
Als je nu kijkt naar het formulier van dit forum, gebruiken ze ook het eerste voorbeeld. Alleen dan wordt er ook nog gebruik gemaakt van een definition list (<DL />).
De onderste voorbeeld weer gemakkelijker te vormgeven als je component onder je caption wil.
Cascading Stylesheet:
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
27
28
| fieldset { border: none; font-weight: bold; margin-bottom: 0.5em; } #fs_2 label { font-weight: normal; background-color: yellow; width: auto; } #fs_2 input.type-text { position: relative; top: 2em; left: -5em; } #fs_1 label { font-weight: normal; margin-top: 0.5em; } #fs_1 input.type-text { position: relative; background-color: silver; left: 15em; } |
Natuurlijk is er ook XForms alleen dat kan naar mijn mening alleen gebruikt worden, als je controle hebt over de user agents die gebruikt wordt.