La siguiente página responde a eventos de menú pero está construída sin JS ni enlaces.
Categoría: HTML
Ejercicio forms+JS
Vamos a hacer una página web que nos pida dos fechas y tengamos un botón ‘Comprobar’ que al pulsarlo nos diga ‘Correcto’ Si la primera fecha es menor que la segunda e incorrecto en caso contrario.
Nos lo puede decir como vosotros queráis.
Ejercicio form/inputs
Crear un formulario que nos pida los siguientes datos:
Nombre
Edad
Email
Tipo de problema (urgente, muy urgente, para ayer)
Fecha
Es cliente o no
Es Premium o no
Observaciones
Elegid los tipos de objeto que creáis conveniente para cada dato.
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Document</title> <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.5.2/css/bootstrap.min.css"> </head> <body> <div class="container"> <h2>Formulario reclamaciones</h2> <form> <div class="form-group"> <label for="nombre">Nombre:</label> <input required type="text" class="form-control" placeholder="Introduzca el nombre" name="nombre" id="nombre"> </div> <div class="form-group"> <label for="edad">Edad:</label> <input type="number" class="form-control" placeholder="Introduzca edad" id="edad" name="edad"> </div> <div class="form-group"> <label for="email">Email:</label> <input required type="email" class="form-control" placeholder="Introduzca email" id="email" name="email"> </div> <div class="form-group"> <label for="tipo">Tipo de problema:</label> <select class="form-control" id="tipo" name="tipo"> <option value="1">Urgente</option> <option value="2">Muy urgente</option> <option value="3">Para ayer</option> </select> </div> <div class="form-group"> <label for="fecha">Fecha:</label> <input type="date" class="form-control" placeholder="Introduzca fecha" id="fecha" name="fecha"> </div> <div class="form-check form-group"> <label class="form-check-label"> <input type="checkbox" id="cliente" name="cliente" class="form-check-input" value="cliente">¿Es cliente? </label> </div> <div class="form-check form-group"> <label class="form-check-label"> <input type="checkbox" id="premium" name="premium" class="form-check-input" value="cliente">¿Es premium? </label> </div> <div class="form-group"> <label for="comentarios">Comentarios:</label> <textarea class="form-control" rows="5" id="comentarios" name="comentarios"></textarea> </div> <button type="submit" class="btn btn-primary">Enviar</button> </form> </div> </body> </html>
document.getElementById("cliente").checked
document.getElementById("fecha").value
Comienzo maquetación Flexbox

html:
<div class="flex">
<div class="first"> </div>
<div> </div>
<div> </div>
<div> </div>
</div>
<div>
<div> </div>
</div>
<div>
<div> </div>
</div>
<div>
<div> </div>
<div> </div>
<div> </div>
</div>
<div>
<div> </div>
<div> </div>
<div> </div>
</div>
Css:
div div{
background-color: black;
width: 200px;
margin-left: 20px;
}
.flex{
display: flex;
justify-content: space-between;
align-items: center;
}
.first{
margin-right: 250px;
height: 100px;
}
Resumen layouts
El layout es la organización de nuestra página, es un elemento de diseño que nos indica dónde van a ir los diferentes elementos.
Aquí tenemos ejemplos de diferentes layouts:
https://designshack.net/articles/layouts/10-rock-solid-website-layout-examples/
https://websitesetup.org/website-layouts/
Para diseñar los layouts normalmente se utilizan herramientas de wireframing. Hay algunas online:
https://www.lancetalent.com/blog/top-5-herramientas-wireframes-ch/
O podemos hacerlo directamente en una libreta.
Para implementar nuestro layout usaremos las etiquetas div o las nuevas etiquetas semánticas:
Que nos permitirán crear nuestro layout:
https://www.w3schools.com/html/html_layout.asp
https://www.w3schools.com/css/css_website_layout.asp
Hoy hemos visto la manera más sencilla que es utilizando float:
https://www.w3schools.com/css/css_float.asp
Pero más adelante veremos otras maneras de hacerlo. Dentro de trifulcas podéis encontrar varios ejemplos:
https://trifulcas.com/layout-one-page/
https://trifulcas.com/layout-semantico-2/
Y una búsqueda por internet os mostrará miles de páginas que tratan el tema:
Mini layout simple
html:
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Layout</title>
<link rel="stylesheet" href="css/layout.css">
</head>
<body>
<div id="cabecera">
<h1>Esto es la cabecera</h1>
</div>
<div id="barra">
<ul>
<li><a href="">Inicio</a></li>
<li><a href="">Contacto</a></li>
<li><a href="">Productos</a></li>
<li><a href="">faq</a></li>
</ul>
</div>
<div id="contenido">
<p>Lorem, ipsum dolor sit amet consectetur adipisicing elit. Assumenda quasi explicabo, quibusdam quas obcaecati aliquam mollitia ad rerum maxime facere dolor, earum nisi in deleniti sit tempore nam expedita omnis.</p>
<p>Lorem, ipsum dolor sit amet consectetur adipisicing elit. Assumenda quasi explicabo, quibusdam quas obcaecati aliquam mollitia ad rerum maxime facere dolor, earum nisi in deleniti sit tempore nam expedita omnis.</p>
<p>Lorem, ipsum dolor sit amet consectetur adipisicing elit. Assumenda quasi explicabo, quibusdam quas obcaecati aliquam mollitia ad rerum maxime facere dolor, earum nisi in deleniti sit tempore nam expedita omnis.</p>
<p>Lorem, ipsum dolor sit amet consectetur adipisicing elit. Assumenda quasi explicabo, quibusdam quas obcaecati aliquam mollitia ad rerum maxime facere dolor, earum nisi in deleniti sit tempore nam expedita omnis.</p>
</div>
<div id="pie">
<p>(c) Jotapé 2021</p>
</div>
</body>
</html>
css:
*{
margin:0;
}
#cabecera{
background-color: pink;
height: 150px;
margin: 0;
padding: 5px;
}
#barra{
background-color: turquoise;
width:100px;
float:left;
min-height: 500px;
padding: 20px;
}
#barra ul{
list-style: none;
margin:0;
padding: 5px;
}
#contenido{
background-color: wheat;
margin: 0;
min-height: 500px;
padding: 20px;
}
#pie{
background-color: black;
color: white;
height: 50px;
clear:left;
margin: 0;
}
Semántico:
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Layout</title>
<link rel="stylesheet" href="css/layout.css">
</head>
<body>
<header>
<h1>Esto es la cabecera</h1>
</header>
<aside>
<ul>
<li><a href="">Inicio</a></li>
<li><a href="">Contacto</a></li>
<li><a href="">Productos</a></li>
<li><a href="">faq</a></li>
</ul>
</aside>
<main>
<section>
<h1>Artículo 1</h1>
<p>Lorem, ipsum dolor sit amet consectetur adipisicing elit. Assumenda quasi explicabo, quibusdam quas
obcaecati aliquam mollitia ad rerum maxime facere dolor, earum nisi in deleniti sit tempore nam expedita
omnis.</p>
<p>Lorem, ipsum dolor sit amet consectetur adipisicing elit. Assumenda quasi explicabo, quibusdam quas
obcaecati aliquam mollitia ad rerum maxime facere dolor, earum nisi in deleniti sit tempore nam expedita
omnis.</p>
</section>
<section>
<h1>Artículo 2</h1>
<p>Lorem, ipsum dolor sit amet consectetur adipisicing elit. Assumenda quasi explicabo, quibusdam quas
obcaecati aliquam mollitia ad rerum maxime facere dolor, earum nisi in deleniti sit tempore nam expedita
omnis.</p>
<p>Lorem, ipsum dolor sit amet consectetur adipisicing elit. Assumenda quasi explicabo, quibusdam quas
obcaecati aliquam mollitia ad rerum maxime facere dolor, earum nisi in deleniti sit tempore nam expedita
omnis.</p>
</section>
</main>
<footer>
<p>(c) Jotapé 2021</p>
</footer>
</body>
</html>
*{
margin:0;
}
header{
background-color: pink;
height: 150px;
margin: 0;
padding: 5px;
}
header h1{
text-align: center;
}
aside{
background-color: turquoise;
width:100px;
float:left;
min-height: 500px;
padding: 20px;
}
aside ul{
list-style: none;
margin:0;
padding: 5px;
}
main{
background-color: wheat;
margin: 0;
min-height: 500px;
padding: 20px;
}
footer{
background-color: black;
color: white;
height: 50px;
clear:left;
margin: 0;
}
section{
float:left;
width: 40%;
margin-left: 10px;
}
Enlaces interesantes
Todas las etiquetas HTML como si fueran la tabla periódica:
Como crear checkboxes personalizados:
Repositorio elementos HTML
¿Qué hay que poner en el HEAD?
Aquí te lo explican muy bien: