// Escribir en la consola de la página console.log("Hola que tal") console.log("Yo muy bien") // Programación /* Comentarios de varias líneas */ // Pongamos ; siempre al final de cada sentencia /* Variables */ // Crea una variable llamada 'nombre' cuyo valor es 'juan' let nombre="Juan"; console.log(nombre) // Cambio el valor de una variable ya creada nombre="Ana"; console.log(nombre); // Las variables en JS no tienen tipo: lenguaje no tipado nombre=80; console.log(nombre) // Las mayúsculas importan let Nombre="Pepe"; let NOMBRE="Rosa"; console.log(nombre); console.log(Nombre); console.log(NOMBRE); // Como nombrar una variable let na="Eva Pi"; // na es nombre alumno ESTO NO let nombreAlumno="Eva Pi"; // ESTO SÍ // Utilizamos camel case: empezamos en minúsculas y cada palabra nueva mayúsculas let precioPorUnidad=9; let nombreDepartamento="Administracion"; // Una variable no puede empezar por un número pero si tener números // let 5nombre="www"; let nombre5="www"; let $nombre="Ana"; let _pepe="pepe"; let nombre_completo="Ana Pi"; // Esto se puede pero no es aconsejable let camión="renault"; let añoVenta=2024; // Esto no está permiido // let let=9; let apellido="Pérez"; // Esto se permite pero está mal, tened mucho cuidado Apellido="Martínez";
Pantallas examen
Algunos cursos útiles (el primero HTML, CSS3 y JS)
Repaso general
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Repaso</title> <link rel="stylesheet" href="css/estilos.css"> </head> <body> <!-- En el html solamente tenemos el contenido no tenemos nada de estilo--> <h1 id="titulo">Hola que tal</h1> <h6>Yo muy bien</h6> <p class="extra">Lorem ipsum dolor sit amet consectetur adipisicing elit. Molestias consequatur possimus et. Tempora dolorem tempore in debitis distinctio, sunt incidunt exercitationem praesentium non maxime aspernatur, sit velit officiis! Ut, iusto?</p> <p>Lorem ipsum dolor sit, amet consectetur adipisicing elit. Ullam illo repellendus dicta deleniti voluptates. Modi, maxime ab quasi accusamus consectetur doloribus sunt autem libero asperiores illum velit fugiat similique neque. </p> <ul> <li>1</li> <li>2</li> <li class="movido">3</li> <li>4</li> <li>5</li> </ul> <div> <p>Esto es un bloque</p> </div> <header> <h1>Bloque de cabecera</h1> </header> <main> <aside><p>Barra lateral</p></aside> <section> <article> <h3 class="extra">Artículo 1</h3> </article> <article> <h3>Artículo 2</h3> </article> <article> <h3>Artículo 3</h3> </article> </section> <section id="galeria"> <div class="imagen"><img src="https://picsum.photos/200"/><h4>Esto es una foto</h4></div> <div class="imagen"><img src="https://picsum.photos/200"/><h4>Esto es una foto</h4></div> <div class="imagen"><img src="https://picsum.photos/200"/><h4>Esto es una foto</h4></div> </section> </main> </body> </html>
/*Estilo de todos los elementos de mi web */ *{ font-family: 'Trebuchet MS', 'Lucida Sans Unicode', 'Lucida Grande', 'Lucida Sans', Arial, sans-serif; } body{ overflow-x: hidden; /* defino una variable para todos los elementos que estén dentro del body */ --fondo:yellow; } /*Estilo de una etiqueta */ h1{ color:rgb(81, 81, 81); } /* clase y va a todos los elementos de esa clase */ .extra{ background-color: blanchedalmond; } /* id que es un elemento único */ #titulo{ /* Utilizo calc para que el ancho sea el de la página menos 200px */ width: calc(100% - 200px); margin: auto; background-color: black; color: blanchedalmond; text-align: center; /* Aplicamos la animación */ animation-name: baile; animation-duration: 6s; animation-delay: 3s; } article{ margin-left: 50px; padding: 2em; background-color: gainsboro; float: left; /* los elementos se coloquen unos al lado de otros */ } /* todos los h3 dentro de un article */ article h3{ margin: 0; } .movido{ position: relative; left: 50px; } .imagen{ border: solid 2px gray; box-shadow: 5px 5px 5px gray; text-align: center; transition: 2s; } .imagen img{ width: 100%; /* las transiciones tarden 2seg en ejecutarse */ transition: 2s; } /* La imagen se hace grande al pasar por encima */ .imagen img:hover{ transform: scale(1.2,1.2); } /* Cambiamos el color al pasar por encima */ .imagen:hover{ /* uso la variable fondo definida antes */ background-color:var(--fondo); } /* con el flex consigo que todos los elementos estén alineados y responsive */ #galeria{ display: flex; clear: both; justify-content: space-evenly; flex-wrap: wrap; } /* Con el media query controlo que en determinadas resoluciones cambie el estilo para que quede mejor */ @media screen and (max-width:500px) { article{ margin: 50px 0; float: none; } } /* Animación de cuatro pasos en los que cambiamos tamaño, rotación y colores */ @keyframes baile { 0%{ transform: scale(0.5,0.5); color:black; } 25%{ color:red; transform: rotate(20deg); } 50%{ color:black; transform: scale(2,1.5); } 75%{ transform: rotate(-20deg); } }
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Ejemplo de layout con grid</title> <link rel="stylesheet" href="css/layout.css"> </head> <body> <header id="pageHeader"><h1>Tornillería martínez</h1>></header> <article id="mainArticle"><h1>Tornillería Martínez</h1> <p>Lorem ipsum dolor sit amet consectetur, adipisicing elit. Ipsam veniam laboriosam eaque, alias veritatis reprehenderit maiores nulla quis ratione sequi aliquam omnis in tenetur perferendis. Repellendus architecto harum mollitia laudantium?</p> <p>Lorem ipsum dolor sit amet consectetur, adipisicing elit. Ipsam veniam laboriosam eaque, alias veritatis reprehenderit maiores nulla quis ratione sequi aliquam omnis in tenetur perferendis. Repellendus architecto harum mollitia laudantium?</p></article> <nav id="mainNav"><ul> <li>Inicio</li> <li>Nosotros</li> <li>Productos</li> <li>Contacto</li> <li>Servicios</li> </ul></nav> <div id="siteAds"><img src="https://picsum.photos/100"/><img src="https://picsum.photos/100"/></div> <footer id="pageFooter">(C) Diseño mortal</footer> </body> </html>
body { display: grid; grid-template-areas: "header header header" "nav article ads" "footer footer footer"; grid-template-rows: 80px 1fr 70px; grid-template-columns: 20% 1fr 15%; grid-row-gap: 10px; grid-column-gap: 10px; height: 100vh; margin: 0; } header, footer, article, nav, div { padding: 1.2em; background: gold; } #pageHeader { grid-area: header; } #pageFooter { grid-area: footer; } #mainArticle { grid-area: article; } #mainNav { grid-area: nav; } #siteAds { grid-area: ads; } /* Stack the layout on small devices/viewports. */ @media all and (max-width: 575px) { body { grid-template-areas: "header" "article" "ads" "nav" "footer"; grid-template-rows: 80px 1fr 70px 1fr 70px; grid-template-columns: 1fr; } }
Ejemplos variables
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Document</title> <link rel="stylesheet" href="css/variables.css"> </head> <body> <h1>Hola que tal</h1> <h2>Muy bien</h2> <p>Lorem ipsum, dolor sit amet consectetur adipisicing elit. Hic dolore provident minus commodi veniam, nihil necessitatibus sint nulla. Quidem explicabo facere repellendus perspiciatis ea! Impedit in eum sapiente! Et, quaerat.</p> <div id="anuncio">Esto es un anuncio</div> <ul> <li>1</li> <li>2</li> <li>3</li> <li>4</li> <li>5</li> </ul> </body> </html>
html{ --gris:blue; /* las variables se definen con dos guiones: -- */ --blanco:yellow; --tamanyo:2em; } h1{ color:var(--gris); } #anuncio{ --blanco:white; /*sobreescribiendo la variable blanco */ color:var(--blanco); background-color: var(--gris); font-size: var(--tamanyo); } ul{ background-color: var(--gris); color: var(--blanco); }
Ejemplo transformación
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Ejemplos transiciones</title> <link rel="stylesheet" href="css/estilos.css"> </head> <body> <div id="transicion1">Hola que tal</div> <div id="transicion2">Yo muy bien</div> <div id="transicion3">Me alegro</div> <div id="transicion4">Estamos en matrix</div> </body> </html>
div{ width: 200px; height: 200px; background-color: orange; } #transicion1{ transition: width 2s, transform 3s,background-color 4s; } #transicion1:hover{ transform: rotate(45deg); width:300px; background-color: darkgreen; } #transicion2{ background-color: blue; transition: transform 3s,background-color 4s; } #transicion2:hover{ transform: skewX(45deg); background-color: rgb(255, 225, 58); } #transicion3{ background-color: rgb(244, 35, 198); transition: transform 3s,background-color 4s; } #transicion3:hover{ transform: rotateX(360deg); background-color: #26e53d; } #transicion4{ background-color: rgb(75, 234, 255); transition: transform 3s,background-color 4s; } #transicion4:hover{ transform: matrix(2,.3,.4,3,200,200); background-color: #f4ff7a; }
Modificar responsive layout
@media (max-width:600px){ #caracteristicas{ flex-direction: column; } .caracteristica{ width: 100%; } #portada article{ display: none; }
Layout 2 parte
<!DOCTYPE html> <html lang="es"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>The Corner</title> <link rel="stylesheet" href="css/estilos.css" /> </head> <body> <header> <h1>The Corner</h1> <nav> <p>Inicio</p> <p>Productos</p> <p>Servicios</p> <p>Contacto</p> </nav> </header> <section id="eslogan"> <h2>Bienvenidos a <span class="destacado">The Corner</span> la mejor academia para aprender.</h2> <h2>Cada día te preparamos para el futuro.</h2> </section> <section id="portada"> <img src="img/academia.png" alt="academia" /> <article> <h3>Aulas</h3> <p>Las mejores aulas de toda Barcelona. Medios técnicos inigualables.</p> </article> </section> <div class="separador"></div> <section id="caracteristicas"> <article class="caracteristica"> <p class="numero">1</p> <div> <h4>Titulo</h4> <p>Lorem ipsum, dolor sit amet consectetur adipisicing elit. Repellendus, blanditiis voluptates? Ad, reprehenderit animi natus nihil adipisci placeat eveniet ipsa. Facere, ullam quaerat quasi ipsa quas harum est praesentium mollitia.</p> </div> </article> <article class="caracteristica"> <p class="numero">2</p> <div> <h4>Titulo</h4> <p>Lorem ipsum, dolor sit amet consectetur adipisicing elit. Repellendus, blanditiis voluptates? Ad, reprehenderit animi natus nihil adipisci placeat eveniet ipsa. Facere, ullam quaerat quasi ipsa quas harum est praesentium mollitia.</p> </div> </article> <article class="caracteristica"> <p class="numero">3</p> <div> <h4>Titulo</h4> <p>Lorem ipsum, dolor sit amet consectetur adipisicing elit. Repellendus, blanditiis voluptates? Ad, reprehenderit animi natus nihil adipisci placeat eveniet ipsa. Facere, ullam quaerat quasi ipsa quas harum est praesentium mollitia.</p> </div> </article> </section> <h2 class="texto_separador">Recent work</h2> </body> </html>
*{ font-family: Verdana, Geneva, Tahoma, sans-serif; margin: 0; } header{ background-color: black; color: white; padding: 2em; /* De esta manera se organizan los dos elementos de la cabecera, el h1 y el nav display: flex; justify-content: space-between; align-items: center; */ } nav{ display: flex; float: right; } nav p{ margin: 0 1em; } nav p:hover{ color: yellow; cursor: pointer; } section{ margin:2em; padding: 1em; } #eslogan{ text-align: center; line-height: 3em; } .destacado{ background-color: green; color: white; border-radius: 6px; padding: .2em; } #portada{ position: relative; } #portada img{ width: 100%; } #portada article{ position: absolute; bottom: 2em; left: 2em; width: 30%; background-color: #00000095; color: white; padding: 3em; } .separador{ border-bottom: solid 1px #8f8f8f; margin: .4em 3em; } #caracteristicas{ display: flex; flex-wrap: wrap; justify-content: space-evenly; margin: 0; } .caracteristica{ display: flex; align-items: start; width: 30%; padding: 1em; } .numero{ background-color: gray; border-radius: 50%; font-size: 1.5em; width: 1.3em; text-align: center; padding: .1em; margin: 0.1em 1em; flex-shrink: 0; /*para evitar que se distorsione */ } .numero:hover{ background-color: green; color:white; } .texto_separador{ margin: .4em 3em; display: flex; align-items: center; } .texto_separador::after { content: ''; flex: auto; margin-left: 1rem; border-top: 1px solid #8f8e8e; }
Ejemplo Grid
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Document</title> <link rel="stylesheet" href="css/grid.css"/> </head> <body> <div id="contenedor"> <div id="primero" class="elemento">1</div> <div id="side" class="elemento">2</div> <div id="content" class="elemento">3</div> <div id="footer" class="elemento">4</div> <!-- <div class="elemento">5</div> <div class="elemento">6</div> <div class="elemento">7</div> <div class="elemento">8</div> <div class="elemento">9</div> <div class="elemento">10</div> --> </div> </body> </html>
.elemento{ border: solid 2px gray; padding: 1em; background-color: aquamarine; } #contenedor{ display: grid; grid-template-columns: 150px 2fr 1fr; /* unidades relativas al espacio libre */ grid-template-rows: 1fr repeat(2,2fr); grid-template-areas: 'header header header header' 'side content content content' 'side content content content' 'side content content content' 'footer footer footer footer' ; } #primero{ grid-area: header; } #side{ grid-area: side; } #content{ grid-area: content; } #footer{ grid-area: footer; }
Layout primera parte
<!DOCTYPE html> <html lang="es"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>The Corner</title> <link rel="stylesheet" href="css/estilos.css"/> </head> <body> <header> <h1>The Corner</h1> <nav> <p>Inicio</p> <p>Productos</p> <p>Servicios</p> <p>Contacto</p> </nav> </header> <section id="eslogan"> <h2>Bienvenidos a <span class="destacado">The Corner</span> la mejor academia para aprender.</h2> <h2>Cada día te preparamos para el futuro.</h2> </section> <section id="portada"> <img src="img/academia.png" alt="academia"/> <article> <h3>Aulas</h3> <p>Las mejores aulas de toda Barcelona. Medios técnicos inigualables.</p> </article> </section> </body> </html>
*{ font-family: Verdana, Geneva, Tahoma, sans-serif; margin: 0; } header{ background-color: black; color: white; padding: 2em; /* De esta manera se organizan los dos elementos de la cabecera, el h1 y el nav display: flex; justify-content: space-between; align-items: center; */ } nav{ display: flex; float: right; } nav p{ margin: 0 1em; } nav p:hover{ color: yellow; cursor: pointer; } section{ margin:2em; padding: 1em; } #eslogan{ text-align: center; line-height: 3em; } .destacado{ background-color: green; color: white; border-radius: 6px; padding: .2em; } #portada{ position: relative; } #portada img{ width: 100%; } #portada article{ position: absolute; bottom: 2em; left: 2em; width: 30%; background-color: black; color: white; padding: 3em; }