Cómo crear: Formularios responsivos

Aprende a crear formularios responsivos usando CSS.

Formularios responsivos

Ajusta el tamaño de la ventana del navegador para ver los efectos (en pantallas más pequeñas, las etiquetas y los cuadros de entrada se apilarán en lugar de mostrarse en paralelo):

Prueba por tu cuenta

Cómo crear formularios responsivos

Paso 1 - Añade HTML:

Usa el elemento <form> para manejar las entradas. Puedes obtener más información en nuestros tutoriales de PHP.

Agrega un campo de entrada (con su etiqueta correspondiente) y usa elementos <div> para envolver cada etiqueta y campo de entrada, de modo que puedas establecer un ancho específico con CSS:

<div class="container">
  <form action="action_page.php">
    <div class="row">
      <div class="col-25">
        <label for="fname">Nombre</label>
      </div>
      <div class="col-75">
        <input type="text" id="fname" name="firstname" placeholder="Tu nombre..">
      </div>
    </div>
    <div class="row">
      <div class="col-25">
        <label for="lname">Apellido</label>
      </div>
      <div class="col-75">
        <input type="text" id="lname" name="lastname" placeholder="Tu apellido..">
      </div>
    </div>
    <div class="row">
      <div class="col-25">
        <label for="country">País</label>
      </div>
      <div class="col-75">
        <select id="country" name="country">
          <option value="australia">Australia</option>
          <option value="canada">Canadá</option>
          <option value="usa">EE. UU.</option>
        </select>
      </div>
    </div>
    <div class="row">
      <div class="col-25">
        <label for="subject">Asunto</label>
      </div>
      <div class="col-75">
        <textarea id="subject" name="subject" placeholder="Escribe algo.." style="height:200px"></textarea>
      </div>
    </div>
    <div class="row">
      <input type="submit" value="Enviar">
    </div>
  </form>
</div>

Segundo paso - Añadir CSS:

/* Establecer el estilo de los cuadros de entrada, elementos de selección y áreas de texto */
input[type=text], select, textarea{
  width: 100%;
  padding: 12px;
  border: 1px solid #ccc;
  border-radius: 4px;
  box-sizing: border-box;
  resize: vertical;
}
/* Establecer el estilo de la etiqueta para que se muestre al lado del cuadro de entrada */
label {
  padding: 12px 12px 12px 0;
  display: inline-block;
}
/* Establecer el estilo del botón de envío */
input[type=submit] {
  background-color: #04AA6D;
  color: white;
  padding: 12px 20px;
  border: none;
  border-radius: 4px;
  cursor: pointer;
  float: right;
}
/* Establecer el estilo del contenedor */
.container {
  border-radius: 5px;
  background-color: #f2f2f2;
  padding: 20px;
}
/* Columna flotante de etiqueta: 25% de ancho */
.col-25 {
  float: left;
  width: 25%;
  margin-top: 6px;
}
/* Columna flotante de entrada: 75% de ancho */
.col-75 {
  float: left;
  width: 75%;
  margin-top: 6px;
}
/* Eliminar el flotamiento después de las columnas */
.row:after {
  content: "";
  display: table;
  clear: both;
}
/* Diseño responsive - cuando el ancho de la pantalla es menor de 600px, hace que las dos columnas se apilen en lugar de estar alineadas en paralelo */
@media screen and (max-width: 600px) {
  .col-25, .col-75, input[type=submit] {
    width: 100%;
    margin-top: 0;
  }
}

Prueba por tu cuenta

Páginas relacionadas

Tutoriales:Formulario HTML

Tutoriales:Formulario CSS