Hoe te maken: Responsieve formulieren

Leer hoe u responsieve formulieren maakt met CSS.

Responsieve formulieren

Pass op het formaat van het browservenster om de effecten te bekijken (op kleinere schermen worden labels en invoervelden stapelen in plaats van naast elkaar te staan):

Try it yourself

Hoe een responsieve formulier te maken

Stap 1 - Voeg HTML toe:

Gebruik het <form>-element om invoer te verwerken. U kunt meer informatie vinden in onze PHP-tutorial.

Voeg invoervelden toe voor elk veld (met bijbehorende labels) en gebruik <div>-elementen om elke label en invoerveld te omwikkelen, zodat u de gespecificeerde breedte met CSS kunt instellen:

<div class="container">
  <form action="action_page.php">
    <div class="row">
      <div class="col-25">
        <label for="fname">Voornaam</label>
      </div>
      <div class="col-75">
        <input type="text" id="fname" name="firstname" placeholder="Uw naam..">
      </div>
    </div>
    <div class="row">
      <div class="col-25">
        <label for="lname">Achternaam</label>
      </div>
      <div class="col-75">
        <input type="text" id="lname" name="lastname" placeholder="Uw achternaam..">
      </div>
    </div>
    <div class="row">
      <div class="col-25">
        <label for="country">Land</label>
      </div>
      <div class="col-75">
        <select id="country" name="country">
          <option value="australia">Australia</option>
          <option value="canada">Canada</option>
          <option value="usa">USA</option>
        </select>
      </div>
    </div>
    <div class="row">
      <div class="col-25">
        <label for="subject">Onderwerp</label>
      </div>
      <div class="col-75">
        <textarea id="subject" name="subject" placeholder="Schrijf iets.." style="height:200px"></textarea>
      </div>
    </div>
    <div class="row">
      <input type="submit" value="Submit">
    </div>
  </form>
</div>

Tweede stap - Voeg CSS toe:

/* Stel de stijl van de invoervelden, select elementen en tekstregels in */
input[type=text], select, textarea{
  width: 100%;
  padding: 12px;
  border: 1px solid #ccc;
  border-radius: 4px;
  box-sizing: border-box;
  resize: vertical;
}
/* Stel de stijl van de label in zodat deze naast het invoerveld wordt weergegeven */
label {
  padding: 12px 12px 12px 0;
  display: inline-block;
}
/* Stel de stijl van de submit knop in */
input[type=submit] {
  background-color: #04AA6D;
  color: white;
  padding: 12px 20px;
  border: none;
  border-radius: 4px;
  cursor: pointer;
  float: right;
}
/* Stel de stijl van het container in */
.container {
  border-radius: 5px;
  background-color: #f2f2f2;
  padding: 20px;
}
/* Label float kolom: 25% breedte */
.col-25 {
  float: left;
  width: 25%;
  margin-top: 6px;
}
/* Invoer float kolom: 75% breedte */
.col-75 {
  float: left;
  width: 75%;
  margin-top: 6px;
}
/* Wis de float achter de kolommen */
.row:after {
  content: "";
  display: table;
  clear: both;
}
/* Responsieve lay-out - Wanneer de scherm breedte kleiner is dan 600px, zet de twee kolommen stapelen in plaats van naast elkaar */
@media screen and (max-width: 600px) {
  .col-25, .col-75, input[type=submit] {
    width: 100%;
    margin-top: 0;
  }
}

Try it yourself

Related pages

Tutorial:HTML form

Tutorial:CSS form