Ik heb een divje en daarin een formulier met enkele inline inputs, het form element heeft een block display en de input elementen hebben een inline display. Waarom stretched het form element (of bovenliggende div) dan niet normaal mee met de inline elementen, terwijl dit normaal (zonder een display aan te geven) wel gebeurt?
Ik kan natuurlijk een harde hoogte/breedte aan de parent meegeven, maar ik wil juist dat het niet uitmaakt of alles op 1 of 2 regels past en dat de gehele pagina inclusief de parent gewoon meestretched. Ik weet dus gewoon niet van tevoren hoe hoog dit moet zijn. Is dit op een of andere generieke manier op te lossen?
voorbeeldje:
En je krijgt dus nergens een rode div te zien, omdat deze niet meeschaalt.
Nu kan ik wel de inlines weglaten zodat de browser het zelf uitzoekt en de parents weer vrolijk mee schalen, maar dan krijg ik de img op geen enkele manier uitgelijnd met de inputs. De img lijkt er altijd wat boven te zweven en dit krijg ik met geen mogelijkheid anders (dit was eigenlijk het onderliggende probleem).
Maar wat als je dit met standaard block elementen (div oid.) wilt doen? Zelfs als je de inline elementen een width en height meegeeft schaalt hij niet mee en dat snap ik gewoon niet. Het is totaal niet intuitief.
Ik kan natuurlijk een harde hoogte/breedte aan de parent meegeven, maar ik wil juist dat het niet uitmaakt of alles op 1 of 2 regels past en dat de gehele pagina inclusief de parent gewoon meestretched. Ik weet dus gewoon niet van tevoren hoe hoog dit moet zijn. Is dit op een of andere generieke manier op te lossen?
voorbeeldje:
HTML:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
| <body> <div> <form> <input type="text" id="" size="10" /> <input type="text" id="" size="5" /> <input type="text" id="" size="9" /> <input type="text" id="" size="6" /> <input type="text" id="" size="7" /> <input type="text" id="" size="8" /> <a href=""><img src="img/noimage.png" width="22" height="22" alt="" /></a> <input type="submit" /> </form> </div> </body> |
Cascading Stylesheet:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
| body { width:200px; } div { background:red; } input { display:inline; float:left; } img { display:inline; float:left; } |
En je krijgt dus nergens een rode div te zien, omdat deze niet meeschaalt.
Nu kan ik wel de inlines weglaten zodat de browser het zelf uitzoekt en de parents weer vrolijk mee schalen, maar dan krijg ik de img op geen enkele manier uitgelijnd met de inputs. De img lijkt er altijd wat boven te zweven en dit krijg ik met geen mogelijkheid anders (dit was eigenlijk het onderliggende probleem).
Maar wat als je dit met standaard block elementen (div oid.) wilt doen? Zelfs als je de inline elementen een width en height meegeeft schaalt hij niet mee en dat snap ik gewoon niet. Het is totaal niet intuitief.