Formularios CSS

Un ejemplo de formulario, usamos CSS para renderizar los elementos de formulario HTML:

Ejemplos CSS

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: #4C7EAF; color: white; padding: 14px 20px; margin: 8px 0; border: none; border-radius: 4px; cursor: pointer; } input[type=submit]:hover { background-color: #4777A6; } div { border-radius: 5px; background-color: #f2f2f2; padding: 20px; }

Pruébalo »

Estilos de entrada (input)

Usa la propiedad width para establecer el ancho del campo de entrada:

Ejemplos CSS

input { width: 100%; }

Pruébalo »

En el ejemplo anterior se establece el ancho de todos los elementos <input> al 100%. Si solo quieres establecer un tipo específico de campo de entrada, puedes usar los siguientes selectores de atributo:

  • input[type=text]- Seleccionar campo de entrada de texto
  • input[type=password]- Seleccionar campo de entrada de contraseña
  • input[type=number]- Seleccionar campo de entrada numérico
  • ...

Relleno de entrada

Usapaddingla propiedad para agregar relleno interno al campo de entrada.

Ejemplos CSS

input[type=text] { width: 100%; padding: 12px 20px; margin: 8px 0; box-sizing: border-box; }

Pruébalo »

Nota: hemos establecidobox-sizingla propiedad enborder-box. Esto asegura que el navegador muestre el campo de entrada con el ancho y la altura especificados, incluyendo el borde y el relleno interno en el cálculo.
Para más contenido, puedes leerTamaño de caja CSS3 。


Borde de entrada (input)

Usaborderla propiedad para modificar el tamaño o color del borde del input, y usaborder-radiusla propiedad para agregar esquinas redondeadas al input:

Ejemplos CSS

input[type=text] { border: 2px solid red; border-radius: 4px; }

Pruébalo »

Si solo quieres agregar un borde inferior, puedes usarborder-bottomla propiedad:

Ejemplos CSS

input[type=text] { border: none; border-bottom: 2px solid red; }

Pruébalo »

Color de entrada (input)

Puedes usarbackground-colorla propiedad para establecer el color de fondo del campo de entrada,colorla propiedad se usa para modificar el color del texto:

Ejemplos CSS

input[type=text] { background-color: #3C7CBC; color: white; }

Pruébalo »

Enfoque de entrada (input)

Por defecto, algunos navegadores muestran un contorno azul cuando el campo de entrada recibe el foco (al hacer clic en el campo). Podemos establecer el estilo del input enoutline: none;para ignorar este efecto.

Usa:focusel selector para establecer el estilo del campo de entrada cuando recibe el foco:

Ejemplos CSS

input[type=text]:focus { background-color: lightblue; }

Pruébalo »

Ejemplos CSS

input[type=text]:focus { border: 3px solid #555; }

Pruébalo »

Icono de entrada (input)

Si quieres agregar un icono en el campo de entrada, puedes usarbackground-imagela propiedad y la propiedad de posicionamientobackground-position. Ten en cuenta establecer el margen izquierdo del icono para que tenga algo de espacio:

Ejemplos CSS

input[type=text] { background-color: white; background-image: url('searchicon.png'); background-position: 10px 10px; background-repeat: no-repeat; padding-left: 40px; }

Pruébalo »

Cuadro de búsqueda con animación

El siguiente ejemplo usa la propiedad CSStransition, la cual hace que el campo de entrada se expanda hacia la derecha al recibir el foco. Puedes consultarel capítulo de CSS Animacionespara obtener más información.

Ejemplos CSS

input[type=text] { -webkit-transition: width 0.4s ease-in-out; transition: width 0.4s ease-in-out; } input[type=text]:focus { width: 100%; }

Pruébalo »

Estilo del área de texto (textarea)

Nota:Usaresizela propiedad para deshabilitar la función de redimensionamiento del área de texto (generalmente se puede redimensionar arrastrando la esquina inferior derecha).

Ejemplos CSS

textarea { width: 100%; height: 150px; padding: 12px 20px; box-sizing: border-box; border: 2px solid #ccc; border-radius: 4px; background-color: #f8f8f8; resize: none; }

Pruébalo »

Estilo del menú desplegable (select)

Ejemplos CSS

select { width: 100%; padding: 16px 20px; border: none; border-radius: 4px; background-color: #f1f1f1; }

Pruébalo »

Estilos de botones

Ejemplos CSS

input[type=button], input[type=submit], input[type=reset] { background-color: #4C7EAF; border: none; color: white; padding: 16px 32px; text-decoration: none; margin: 4px 2px; cursor: pointer; } /*Consejo: usa width: 100% para establecer un botón de ancho completo.*/

Pruébalo »

Para más contenido, consulta nuestrotutorial de CSS Botones.


Formulario responsive

El formulario responsive puede reorganizar los elementos según el tamaño de la ventana del navegador. Podemos ver el efecto cambiando el tamaño de la ventana del navegador:

Avanzado:El siguiente ejemplo usaConsultas de medios CSS3para crear un formulario responsive.

Ejemplos CSS

* { box-sizing: border-box; } input[type=text], select, textarea { width: 100%; padding: 12px; border: 1px solid #ccc; border-radius: 4px; resize: vertical; } label { padding: 12px 12px 12px 0; display: inline-block; } input[type=submit] { background-color: #4C7EAF; color: white; padding: 12px 20px; border: none; border-radius: 4px; cursor: pointer; float: right; } input[type=submit]:hover { background-color: #4777A6; } .container { border-radius: 5px; background-color: #f2f2f2; padding: 20px; } .col-25 { float: left; width: 25%; margin-top: 6px; } .col-75 { float: left; width: 75%; margin-top: 6px; } /*Limpiar flotación*/ .row:after { content: ""; display: table; clear: both; } /*Diseño responsive: cuando el ancho de pantalla sea menor a 600px, establece los elementos apilados verticalmente.*/ @media screen and (max-width: 600px) { .col-25, .col-75, input[type=submit] { width: 100%; margin-top: 0; } }

Pruébalo »
Otras extensiones