Estilizar un formulario html con css

Estilizar un formulario html con css

0
(0)

En este ejercicio vamos a crear un formulario html sencillo y a estilizarlo.

Para ello es necesario dominar algunos conceptos importantes:

Vayamos al enunciado.

Enunciado

Genera un formulario html según la imagen adjunta y que cumpla las siguientes especificaciones:

  • El formulario web debe pedir por los datos nombre, apellidos, email, asunto y mensaje.
  • El destino de los datos rellenados en el formulario una vez enviados debe ser la propia página.
  • No contiene php ni otros lenguajes distintos a html o css (no es funcional).
  • El campo email es de obligado relleno.
  • El formulario es usable. Cuando un usuario haga click en el texto que acompaña cada campo, el cajetín correspondiente debe seleccionarse.
  • El cajetín de mensaje puede contener como máximo 300 caracteres.
  • Cuando se pase el cursor por encima del botón de enviar, el cursor debe cambiar de icono.
  • El color de fondo es el #ccc y el color de los cajetines el #f6f6f6;
enunciado formulario web
enunciado formulario web

Solución del ejercicio

En primer lugar se indica el html.

En segundo lugar se indica el css.

Como curiosidad, la propiedad resize de css sirve para indicar si <textarea> se puede expandir verticalmente, horizontalmente o en ningún sentido. Esta propiedad en realidad también podría usarse con otras etiquetas como <div>.

¿Como queda el documento html?

<!DOCTYPE html>
<html>
<head>
	<title>Introducción formularios web</title>
	<meta charset="utf-8"/>
	<meta name="description" content="Un formulario sirve para enviar datos a otra página que los recoge para usarlos o almacenarlos."/>

	<style>

	</style>

</head>
<body>

<form action="#" target="" method="get" name="formDatosPersonales">

	<label for="nombre">Nombre</label>
	<input type="text" name="nombre" id="nombre" placeholder="Escribe tu nombre"/>

	<label for="apellidos">Apellidos</label>
	<input type="text" name="apellidos" id="apellidos" placeholder="1r Apellido"/>

	<label for="email" />Email</label>
	<input type="email" name="email" id="email" placeholder="email" required />

	<label for="asunto">Asunto</label>
	<input type ="text" name="asunto" id="asunto" placeholder="titular de la consulta"/>

	<label for="mensaje">Mensaje</label>
	<textarea name="mensaje" for="mensaje" placeholder="describe brevemente en menos de 300 carácteres" maxlength="300"></textarea>
	
	<input type="submit" name="enviar" value="enviar datos"/>
</form>

</body>
</html>

¿Como queda el css?

*{box-sizing:border-box;}

form{
	width:300px;
	padding:16px;
	border-radius:10px;
	margin:auto;
	background-color:#ccc;
}

form label{
	width:72px;
	font-weight:bold;
	display:inline-block;
}

form input[type="text"],
form input[type="email"]{
	width:180px;
	padding:3px 10px;
	border:1px solid #f6f6f6;
	border-radius:3px;
	background-color:#f6f6f6;
	margin:8px 0;
	display:inline-block;
}

form input[type="submit"]{
	width:100%;
	padding:8px 16px;
	margin-top:32px;
	border:1px solid #000;
	border-radius:5px;
	display:block;
	color:#fff;
	background-color:#000;
} 

form input[type="submit"]:hover{
	cursor:pointer;
}

textarea{
	width:100%;
	height:100px;
	border:1px solid #f6f6f6;
	border-radius:3px;
	background-color:#f6f6f6;			
	margin:8px 0;
	/*resize: vertical | horizontal | none | both*/
	resize:none;
	display:block;
}

Si juntamos todas las piezas resolvemos el ejercicio.

¡Hola!

Querido lector,

¿Como podríamos hacer para que este formulario fuera además responsive?

Es un buen ejercicio que te invito a practicar.

¡Si te ha gustado este contenido te animo a seguirme en mi perfil de empresa de Linkedin!

¿Te ha gustado esta publicación?

¡Valora sobre 5 estrellas esta publicación!

Puntuación media 0 / 5. Votos: 0

Todavía no hay votos. Sé el primero en valorar la entrada.

Si te ha gustado este contenido...

¡Sígueme en las redes!

Vaya, parece que hay puntos a corregir

¿Me ayudas a mejorar?

¿Dónde he fallado?

Francesc Ricart
hola@francescricart.com

Aprender y enseñar. Enseñar y aprender. En el ámbito docente soy docente ocupacional. En el ámbito profesional consultor web. Ofrezco servicios de mejora continua y mantenimiento web. ¿Qué quieres aprender hoy? Encontraréis más acerca de mi en la página sobre mi

6 Comments
  • Haile
    Posted at 20:22h, 19 diciembre Responder

    como se puede insertar un imagen dentro de label en el formulario en html y css?

    • Francesc Ricart
      Posted at 23:25h, 19 diciembre Responder

      hola haile,
      no sé si termino de entender a que te refieres.

      <label for=""><img src="url de tu imagen"/></label>

      ¿y en todo caso luego le aplicas estilos?

      o te refieres a algo del tipo:

      <style>
      .icono::before{
        content:url("https://via.placeholder.com/30x30");
        display:inline-block;
        width:30px;
        height:30px;
        margin-right:10px;
      }
      </style>
      <label class="icono">Texto</label>

      dónde la imagen es la que tu necesites…

  • diego moretti
    Posted at 04:16h, 10 junio Responder

    lo haces con style background-image y url

    • Francesc Ricart
      Posted at 00:59h, 11 junio Responder

      Hola Diego,
      Gracias por tu comentario.
      Entonces quedaría como fondo por detrás del texto.

      Saludos,

  • un pendejo imb****l de mi***a
    Posted at 02:49h, 10 octubre Responder

    este post, es una p*** mi***a al que no le parezca, porfavor comunicarse a mi correo electronico, gracias.

  • Francesc Ricart
    Posted at 23:36h, 10 octubre Responder

    ¡hola! 😀

    he estado a punto de no aceptar el comentario en el blog por spammer pero has dedicado tanto tiempo en él que lo he terminando validando con asteriscos en las palabrotas y eliminando el enlace a la web adulta para no perjudicar el blog.

    Muy original poner mi email en el campo de usuario junto con el que escriba en mi email. De este modo se veía mi favicon como si lo hubiese escrito yo mismo. ¡bravo!

    en cualquier caso muchas gracias por tu comentario. Me ha inspirado en esta entrada así que me has facilitado el reto del post diario 🙂

    Saludos,

Post A Comment

  Acepto la política de privacidad

Responsable: FRANCESC RICART MUÑOZ.

Finalidad: Gestionar los comentarios que realizas en este blog.

Destinatarios: No se cederán datos a terceros, salvo obligación legal.

Derechos: Tienes derecho a acceder, rectificar y suprimir los datos, así como otros derechos, como se explica en la política de privacidad.