Flexbox is great for aligning questions on a form.
Exercise time!
Without changing the HTML, make it so that:
<style>
form {
display: flex;
flex-direction: column;
}
.form-row {
display: flex;
}
</style>
<form>
<div class="form-row" id="row1">
<label for="q1">Name</label>
<input id="q1" type="text" />
</div>
<div class="form-row" id="row2">
<label for="q2">E-mail</label>
<input id="q2" type="email" />
</div>
<div class="form-row" id="row3">
<label for="q3">Favourite Smashing</label>
<select id="q3">
<option>Freiburg</option>
<option>New York</option>
<option>Antwerp</option>
</select>
</div>
<div class="form-row" id="row4">
<label for="q4">Favourite film</label>
<input type="text" />
</div>
</form>
This is how you could achieve it:
<style>
form {
display: flex;
flex-direction: column;
gap: 1em;
}
.form-row {
display: flex;
flex-direction: column;
}
</style>
<form>
<div class="form-row">
<label for="q1">Name</label>
<input id="q1" type="text" />
</div>
<div class="form-row">
<label for="q2">E-mail</label>
<input id="q2" type="email" />
</div>
<div class="form-row">
<label for="q3">Favourite Smashing</label>
<select id="q3">
<option>Freiburg</option>
<option>New York</option>
<option>Antwerp</option>
</select>
</div>
<div class="form-row">
<label for="q4">Pet name</label>
<input type="text" />
</div>
</form>