Un formulario es el elemento esencial para el envío de datos al servidor por parte del visitante del sitio.
Veamos un ejemplo donde implementamos un formulario y le aplicamos una serie de reglas de estilo a los diferentes elementos HTML que intervienen:
<!DOCTYPE html>
<html>
<head>
 <title>Problema</title>
  <meta charset="UTF-8">
  <link rel="StyleSheet" href="estilos.css" type="text/css">
</head>
<body>
<h3>Usando CSS en un Formulario HTML</h3>
<div>
 <form action="/action_page.php">
    <label for="fname">Nombres</label>
    <input type="text" id="fname" name="firstname" placeholder="Su nombre..">
    <label for="lname">Apellido</label>
    <input type="text" id="lname" name="lastname" placeholder="Su apellido..">
    <label for="country">Pais</label>
    <select id="country" name="country">
      <option value="australia">Australia</option>
      <option value="canada">Canada</option>
      <option value="usa">USA</option>
    </select>
    <input type="submit" value="Enviar">
  </form>
</div>
</body>
</html>
 
La hoja de estilo que se aplica es:
input[type=text], select {
  width: 100%;
  padding: 12px 20px;
  margin: 8px 0;
  display: inline-block;
  border: 1px solid #ccc;
  border-radius: 4px;
  box-sizing: border-box;
}
input[type=submit] {
  width: 100%;
  background-color: #4CAF50;
  color: white;
  padding: 14px 20px;
  margin: 8px 0;
  border: none;
  border-radius: 4px;
  cursor: pointer;
}
input[type=submit]:hover {
  background-color: #45a049;}
div {
  border-radius: 5px;
  background-color: #f2f2f2;
  padding: 20px;
}
Podemos observar que definimos un div contenedor y dentro de este el formulario. Para que los textos aparezcan a la izquierda, definimos una serie de label que las flotamos a izquierda, por lo que los controles del formulario aparecerán a derecha todos encolumnados.