
Listas en HTML
Organiza contenido con listas HTML. Domina ul, ol y dl para crear menús y estructuras claras. Aprende anidamiento y semántica para una web accesible y profesional.
Domina los formularios HTML5: estructura, métodos GET/POST, inputs semánticos y validaciones nativas. Aprende accesibilidad y optimización móvil para una mejor experiencia.
Los formularios HTML permiten que los usuarios interactúen con una web enviando información al servidor. Son fundamentales para registros, inicios de sesión, búsquedas y compras online.
<!-- Un formulario define una zona interactiva para capturar datos -->
<form>
<!-- Aquí dentro vivirán todos los campos -->
</form>
<form>: El Contenedor PrincipalLa etiqueta <form> define el contexto del formulario. Controla a dónde se envían los datos, cómo se envían y qué tipo de información se transmite.
<!-- action indica la URL que recibirá los datos -->
<form action="/api/save"
<!-- Inputs y botones van aquí -->
</form>
Los atributos action y method definen el destino y la forma en que se envía la información del formulario al servidor.
<!-- GET envía los datos visibles en la URL -->
<form method="GET">
</form>
<!-- POST envía los datos de forma segura en el body -->
<form method="POST">
</form>
name: el dato que viaja al servidorEl atributo name identifica cada dato enviado por un formulario. Es el nombre de la variable que recibe el backend. Sin name, el valor ingresado no se envía.
<!-- Este input SÍ se envía porque tiene name -->
<input type="text" name="usuario">
<!-- Este input NO se envía porque no tiene name -->
<input type="text" placeholder="Nombre">
No todos los inputs envían información. El envío depende de su estado y atributos como name, disabled, readonly o checked.
<!-- Este valor NO se envía -->
<input type="text" name="codigo" value="ABC" disabled>
<!-- Este valor SÍ se envía -->
<input type="text" name="id" value="user_123" readonly>
<!-- Checkbox solo se envía si está marcado -->
<input type="checkbox" name="terminos" checked>
Los inputs básicos permiten capturar información textual. Cada tipo agrega validaciones y comportamientos específicos.
<!-- Campo de texto libre -->
<input type="text" name="user">
<!-- Campo de contraseña: oculta los caracteres -->
<input type="password" name="pass">
<!-- Campo email: valida formato y mejora UX móvil -->
<input type="email" name="mail">
HTML5 incorpora inputs semánticos que adaptan el teclado en dispositivos móviles, mejorando la experiencia del usuario.
<!-- Teclado numérico para teléfonos -->
<input type="tel" name="telefono">
<!-- Selector de fecha nativo del sistema -->
<input type="date" name="fecha_nacimiento">HTML, estilos modernos con CSS y diseño rápido con Tailwind para lanzar tus primeros sitios responsivos y profesionales.10 clases en vivo con profesores expertosVer próximas fechasTextarea: Textos LargosEl elemento textarea se usa para ingresar textos extensos como comentarios, descripciones o mensajes.
<!-- rows define la cantidad de líneas visibles -->
<textarea name="bio" rows="5" placeholder="Cuéntanos sobre ti...">
</textarea>
Los inputs radio permiten una única elección, mientras que los checkbox permiten múltiples selecciones independientes.
<!-- Radios con mismo name forman un grupo excluyente -->
<input type="radio" name="envio" value="express"> Rápido
<input type="radio" name="envio" value="normal"> Normal
<!-- Checkbox permite selección múltiple -->
<input type="checkbox" name="newsletter" value="si"> Suscribirme
Select y Option: Menús DesplegablesEl elemento select permite elegir una opción de una lista desplegable, ideal para listas largas.
<!-- select agrupa opciones -->
<select name="pais">
<!-- option representa cada ítem -->
<option value="arg">Argentina</option>
<option value="col" selected>Colombia</option>
<option value="mex">México</option>
</select>
Value Según el ContextoEl atributo value cumple funciones distintas dependiendo del tipo de input.
<!-- Valor inicial de un input -->
<input type="text" value="Texto por defecto">
<!-- Texto visible en un botón -->
<input type="submit" value="Enviar">
<!-- Valor técnico enviado al backend -->
<input type="checkbox" value="acepta">HTML, estilos modernos con CSS y diseño rápido con Tailwind para lanzar tus primeros sitios responsivos y profesionales.10 clases en vivo con profesores expertosVer próximas fechasvalue en opciones seleccionablesEn radios y checkbox, el atributo value define el dato técnico que se envía al servidor cuando el elemento está seleccionado.
<form>
<!-- Ambas opciones comparten el mismo name -->
<input type="radio" name="turno" value="manana"> Mañana
<input type="radio" name="turno" value="tarde"> Tarde
</form>Los label mejoran accesibilidad, SEO y usabilidad. Cada input debe estar vinculado a su label.
<!-- Label vinculado al input por id -->
<label for="nombre">Nombre</label>
<input type="text" id="nombre" name="nombre">El label describe el campo de forma semántica y accesible. El placeholder es solo una ayuda visual temporal. Nunca deben reemplazarse entre sí.
<!-- Label: descripción real del campo -->
<label for="email">Correo electrónico</label>
<!-- Placeholder: ayuda visual dentro del input -->
<input type="email" id="email" name="email" placeholder="usuario@email.com">
Fieldset y Legend: Agrupación VisualFieldset y legend permiten agrupar campos relacionados, mejorando la claridad en formularios largos.
<!-- Agrupa campos relacionados -->
<fieldset>
<legend>Datos de Facturación</legend>
<input type="text" placeholder="Dirección">
<input type="text" placeholder="Ciudad">
</fieldset>
Readonly vs DisabledReadonly y disabled parecen similares, pero tienen un comportamiento muy distinto al enviar datos.
<!-- Disabled no se envía al servidor -->
<input type="text" value="XYZ" disabled>
<!-- Readonly sí se envía, pero no se puede editar -->
<input type="text" value="user_123" readonly>HTML5 permite validar datos directamente desde el navegador antes de enviarlos al servidor.
<!-- Campo obligatorio con mínimo -->
<input type="number" min="18" required>
<!-- pattern valida formato con RegEx -->
<input type="text" pattern="[A-Z]+" title="Solo mayúsculas">
Submit, Reset y <Button>Los botones definen las acciones del formulario y su comportamiento depende del atributo type.
<!-- Envía el formulario -->
<button type="submit">Enviar</button>
<!-- Limpia todos los campos -->
<button type="reset">Borrar</button>
<!-- Botón genérico para JavaScript -->
<button type="button">Acción</button>
value en botones HTMLEn los botones creados con input, el atributo value define el texto visible que muestra el navegador. Su función depende del tipo de botón utilizado.
<form>
<!-- Botón que envía el formulario -->
<input type="submit" value="Enviar formulario">
<!-- Botón que limpia todos los campos -->
<input type="reset" value="Limpiar">
<!-- Botón sin acción por defecto -->
<input type="button" value="Sin acción">
</form>
Enctype: Envío de ArchivosCuando un formulario envía archivos (imágenes, PDFs), es obligatorio cambiar el tipo de codificación usando el atributo enctype.
<!-- multipart/form-data permite enviar archivos -->
<form method="POST" enctype="multipart/form-data">
<!-- Input para seleccionar un archivo -->
<input type="file" name="avatar">
</form>
Ejemplo real de un formulario correctamente estructurado, con atributos, labels, inputs y envío de datos.
<form action="/registro" method="POST">
<!-- Campo email -->
<label for="email">Email</label>
<input type="email" id="email" name="email" required>
<!-- Campo contraseña -->
<label for="password">Contraseña</label>
<input type="password" id="password" name="password" required>
<!-- Botón de envío -->
<button type="submit">Registrarse</button>
</form>
Organiza contenido con listas HTML. Domina ul, ol y dl para crear menús y estructuras claras. Aprende anidamiento y semántica para una web accesible y profesional.

Domina los formularios HTML5: estructura, métodos GET/POST, inputs semánticos y validaciones nativas. Aprende accesibilidad y optimización móvil para una mejor experiencia.

HTML: Estructura y Semántica ProfesionalCrea tablas HTML semánticas y accesibles. Aprende a usar thead, tbody, combinar celdas y estructurar datos correctamente para evitar errores comunes de maquetación.