En este capítulo, estudiamos los componentes principales de un documento HTML, la cabeza y el cuerpo.
Estudiamos los elementos más destacados en la cabeza y el cuerpo, y sus propiedades. Esto nos ayudará a mejorar el diseño de nuestra aplicación.
También vamos a crear la barra de navegación, el pie de página, y la página de inicio para nuestra aplicación.
Vamos a crear archivos HTML donde crearemos la estructura básica para nuestra barra de navegación.
Vamos a definir las clases CSS para crear un diseño atractivo para la barra de navegación, el pie de página y la página de inicio.
Usando media queries, haremos que nuestra barra de navegación, pie de página y página de inicio sean adaptables en tamaño, es decir, la barra de navegación,
el pie de página y la página de inicio cambiarán según el dispositivo utilizado para acceder a la página web. También aprenderemos cómo introducir íconos en nuestra
aplicación utilizando Font Awesome, y cómo introducir diferentes tipos de fuentes utilizando Google Fonts.
Para completar el diseño de nuestra app, también trabajaremos con Bootstrap.
Estudiamos los principales elementos en la cabeza, prestando especial atención al título, estilo y meta.
Estudiamos los principales elementos dentro de la etiqueta body. También estudiamos en detalle ciertos elementos en el cuerpo y sus propiedades que nos ayudarán a mejorar el diseño de nuestra aplicación. Estudiaremos box-sizing; elementos de bloque e inline de HTML.
Estudiamos la propiedad display de CSS; flexbox; y las media queries de CSS.
Creamos un archivo HTML que define la estructura de nuestra barra de navegación y pie de página, y un archivo CSS que define la apariencia-diseño de nuestra barra de navegación. Estudiamos y utilizamos los conceptos aprendidos en el capítulo para mejorar el diseño de nuestra barra de navegación y pie de página. Aprendemos a hacer que nuestra barra de navegación y pie de página respondan al tamaño utilizando media queries. También aprenderemos a introducir íconos y fuentes de fuentes externas.
Seguimos el mismo enfoque que con la barra de navegación y el pie de página, pero para diseñar el encabezado y las secciones de desarrolladores en la página de inicio de nuestra aplicación.
Aprendemos a usar Bootstrap y vemos como puede ser útil en el desarrollo de nuestra app.
Continuamos trabajando en las aplicaciones de los estudiantes. Debes introducir pequeños cambios en los archivos business.html, light_talk_app.html, business.css y light_app.css para personalizar tu aplicación y hacerla lo más funcional y completa posible. Enfócate en los íconos y en las instrucciones para el usuario.
Toda la información en esta sección ha sido tomada del siguiente enlace:
El elemento<head
> es un contenedor para metadatos (datos sobre datos) y se coloca entre la etiqueta <html
> y la etiqueta <body
>.
<title
>
El elemento <title
> define el título del documento. El título debe ser solo texto y se muestra en la barra de título del navegador o en la pestaña de la página.
¡El elemento <title
> es obligatorio en los documentos HTML!
¡El contenido de un título de página es muy importante para la optimización en motores de búsqueda! El título de la página es utilizado por los algoritmos de los motores de búsqueda para decidir el orden al listar páginas en los resultados de búsqueda.
El elemento <title
>:
<style
>
El elemento <style
> se usa para definir información de estilo para una sola página HTML. Vamos a utilizarlo en la sección del cuerpo.
<link
>
El elemento <link
> define la relación entre el documento actual y un recurso externo.
La etiqueta <link
> se utiliza más a menudo para vincular hojas de estilo externas.
Usaremos enlaces varias veces en los próximos capítulos. Un ejemplo de un enlace: <link rel="stylesheet" href="mystyle.css">
<meta>
Toda la información en esta sección ha sido tomada del siguiente enlace:
Definición y Uso<meta>
define metadatos sobre un documento HTML. Los metadatos son datos (información) sobre datos.
<meta>
siempre van dentro del elemento <head>
, y se utilizan típicamente para especificar conjunto de caracteres, descripción de la página, palabras clave, autor del documento, y configuraciones de viewport.
<meta>
(ver el ejemplo "Configurando el Viewport" a continuación).
<meta name="keywords" content="HTML, CSS, JavaScript">
<meta name="description" content="Tutoriales gratuitos de HTML y CSS">
<meta name="author" content="John Doe">
<meta http-equiv="refresh" content="30">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
Toda la información en esta sección ha sido tomada de los siguientes dos enlaces:
¿Qué es el Viewport?<meta>
.
<meta>
en todas tus páginas web:
<meta name="viewport" content="width=device-width, initial-scale=1.0">
width=device-width
: Establece el ancho del viewport en el ancho del dispositivo.
initial-scale=1.0
: Establece el nivel de zoom inicial cuando la página se carga por primera vez en el dispositivo.
user-scalable=no
: Desactiva el zoom, esto ayuda a que los usuarios vean una vista completa.
Toda la información en esta sección ha sido tomada del siguiente enlace:
El elemento<body
> contiene todo el contenido de un documento HTML, como encabezados, párrafos, imágenes, hipervínculos, tablas, listas, etc.
La información en esta sección, el video con todos los pasos de esta sección y el código se pueden encontrar en los enlaces de YouTube y GitHub a continuación:
La propiedad CSS box-sizing nos permite incluir el padding y el borde en el ancho y alto total de un elemento.Sin la Propiedad CSS box-sizing
<head>
<style>
.div1 {
width: 300px;
height: 100px;
border: 1px solid blue;
}
.div2 {
width: 300px;
height: 100px;
padding: 50px;
border: 1px solid red;
}
</style>
</head>
<body>
<h1>Sin box-sizing</h1>
<div class="div1">Este div es más pequeño
(ancho es 300px y alto es 100px).</div>
<div class="div2">Este div es más grande
(el ancho también es 300px y el alto es 100px).</div>
</body>
Con la Propiedad CSS box-sizing
.div1 {
width: 300px;
height: 100px;
border: 1px solid blue;
box-sizing: border-box;
}
.div2 {
width: 300px;
height: 100px;
padding: 50px;
border: 1px solid red;
box-sizing: border-box;
}
La información en esta sección, el video con todos los pasos de esta sección y el código se pueden encontrar en los enlaces de YouTube y GitHub a continuación:
Cada elemento HTML tiene un valor de visualización predeterminado, dependiendo del tipo de elemento que sea. Hay dos valores de visualización: block e inline.<p>
, <div>
, <ul>
, <li>
, <ol>
<nav>
, <form>
, <canvas>
, <footer>
, <fieldset>
y <section>
.
<a>
, <img>
, <span>
, <strong>
, <select>
, <br>
, <button>
y <code>
.
Elementos de bloque
<body>
<p style="border: 1px solid blue">
Hola Mundo</p>
<div style="border: 1px solid red">
Hola Mundo</div>
<p>
Los elementos P y DIV son elementos de bloque, /
y siempre comenzarán en una nueva línea y ocuparán /
todo el ancho disponible (se extienden /
hacia la izquierda y derecha tanto como sea posible).</p>
</body>
Elementos Inline
<body>
<p>
Este es un span inline <span style="border: 1px solid red">
/
Hola Mundo</span>
elemento dentro de un párrafo.</p>
<p>
El elemento SPAN es un elemento inline, y no comenzará /
en una nueva línea y solo ocupa el ancho necesario.</p>
</body>
Toda la información en esta sección ha sido extraída de los siguientes enlaces:
La propiedad display especifica el comportamiento de visualización (el tipo de caja de renderizado) de un elemento.<span>
). Las propiedades de altura y ancho no tendrán efecto.
<p>
). Comienza en una nueva línea y ocupa todo el ancho.
Propiedad CSS display
<style>
span.a {
display: inline; /* el valor predeterminado para span */
width: 100px;
height: 100px;
padding: 5px;
border: 1px solid blue;
background-color: yellow;
}
span.b {
display: inline-block;
width: 100px;
height: 100px;
padding: 5px;
border: 1px solid blue;
background-color: yellow;
}
span.c {
display: block;
width: 100px;
height: 100px;
padding: 5px;
border: 1px solid blue;
background-color: yellow;
}
</style>
<body>
<h2>
Display: Inline</h2>
<div>
... <span class="a">
Aliquam</span>
<span class="a">
venenatis</span>
... </div>
<h2>
Display: Inline-Block</h2>
<div>
... <span class="b">
Aliquam</span>
<span class="b">
venenatis</span>
... </div>
<h2>
Display: Block</h2>
<div>
... <span class="c">
Aliquam</span>
<span class="c">
venenatis</span>
... </div>
</body>
Toda la información en esta sección ha sido tomada del siguiente enlace:
El módulo Flexbox Layout (Caja Flexible) tiene como objetivo proporcionar una manera más eficiente de organizar, alinear y distribuir el espacio entre los elementos en un contenedor, incluso cuando su tamaño es desconocido y/o dinámico (de ahí la palabra "flex").Contenedor Flex de CSS Para seguir esta sección, es necesario ver el video de YouTube en la lista de reproducción del curso. En ese video, analizaremos las propiedades de flexbox con más detalle. Toda la información en esta sección ha sido tomada de los siguientes dos enlaces:
Para comenzar a usar el modelo Flexbox, primero debemos definir un contenedor flex.Contenedor Flex de CSS
<style>
.flex_container {
display: flex;
flex-direction: row;
background-color: DodgerBlue;
width: 800px;
height: 800px;
align-items: center;
justify-content: center;
}
.flex_container .item1 {
background-color: red;
margin: 10px;
padding: 20px;
font-size: 30px;
width: 150px;
height: 150px;
}
.flex_container .item2 {
...
}
.flex_container .item3 {
...
}
</style>
<body>
<div class="flex_container">
<div class="item1">Ítem 1</div>
<div class="item2">Ítem 2</div>
<div class="item3">Ítem 3</div>
</div>
</body>
Elementos Flexibles de CSS Toda la información en esta sección ha sido tomada de los siguientes dos enlaces:
Los elementos hijos directos de un contenedor flex se convierten automáticamente en elementos flexibles (flex).Elementos Flexibles de CSS
<style>
.flex_container .item1 {
background-color: red;
margin: 10px;
padding: 20px;
font-size: 30px;
width: 150px;
height: 150px;
flex-grow: 1;
}
.flex_container .item2 {
background-color: red;
margin: 10px;
padding: 20px;
font-size: 30px;
width: 150px;
height: 150px;
flex-grow: 2;
}
</style>
<body>
<div class="flex_container">
<div class="item1">Ítem 1</div>
<div class="item2">Ítem 2</div>
<div class="item3">Ítem 3</div>
</div>
</body>
Toda la información en esta sección ha sido tomada de los siguientes enlaces:
La regla @media, introducida en CSS2, permitió definir diferentes reglas de estilo para diferentes tipos de medios.Consultas de Medios CSS
<head>
<meta name="viewport" content="user-scalable=yes,
width=device-width, initial-scale=1">
<style>
...
@media (max-width:768px) {
.flex_container {
flex-direction: column;
}
}
</style>
</head>
<body>
<div class="flex_container">
<div class="item1">Ítem 1</div>
<div class="item2">Ítem 2</div>
<div class="item3">Ítem 3</div>
</div>
</body>
Los enlaces al video de YouTube Y la cuenta de GitHub para esta sección están abajo:
Para tener un acceso rápido a íconos, fuentes y otros elementos en nuestro proyecto, vamos a utilizar conexiones CDN. Por lo tanto, es importante tener algunas nociones de lo que es una conexión CDN. Una red de distribución de contenido (CDN) es un grupo de servidores distribuidos geográficamente que acelera la entrega de contenido web al acercarlo a donde se encuentran los usuarios. Los centros de datos en todo el mundo utilizan el almacenamiento en caché, un proceso que almacena temporalmente copias de archivos, para que puedas acceder al contenido de Internet desde un dispositivo habilitado para la web o navegador más rápidamente a través de un servidor cercano a ti. Las CDNs almacenan en caché contenido como páginas web, imágenes y videos en servidores proxy cercanos a tu ubicación física. Esto te permite hacer cosas como ver una película, descargar software, verificar tu saldo bancario, publicar en redes sociales o hacer compras, sin tener que esperar a que se cargue el contenido.
Más información sobre conexiones CDN:
El código html de la barra de navegación está en el archivo layout.html, y se encuentra encima de {% block content %} {% endblock %}
.
El código html de la barra de navegación consta de:
Para mejorar nuestra barra de navegación, vamos a crear nuestro propio archivo de clases CSS (layout.css). En el archivo CSS, vamos a definir algunas clases que afectan a todo el documento. Agrupamos esas clases como utilidades. Utilidades es el nombre estándar que se utiliza en la programación para referirse a esas clases, y en general a funciones o partes del código que se pueden usar en todo el proyecto. Vamos a crear clases específicas que definan las propiedades de otros componentes de nuestra barra de navegación. Al igual que con Font Awesome, vamos a importar el archivo layout.css a nuestro archivo layout.html en el head del archivo layout.html. En la barra de navegación y en el resto de nuestro proyecto, estamos usando una fuente importada de Google Fonts. Vamos a importar las Google Fonts a nuestro archivo layout.css. Más información sobre Google Fonts:
Para hacer nuestra barra de navegación responsiva a diferentes pantallas, vamos a usar media queries. Para evitar el uso de JavaScript, vamos a usar un simple flexbox de media, donde cuando accedemos a nuestra aplicación desde un teléfono móvil, la barra de navegación aparece en una columna y aumenta su ancho.
Para hacer nuestra barra de navegación responsiva a diferentes pantallas, vamos a usar media queries. Para evitar el uso de JavaScript, vamos a usar un simple flexbox de media, donde cuando accedemos a nuestra aplicación desde un teléfono móvil, la barra de navegación aparece en una columna y aumenta su ancho.
El pie de página de nuestro proyecto es muy simple. El código html está en el archivo layout.html, y se encuentra debajo de {% block content %} {% endblock %}
. El código html del pie de página y las clases CSS son muy simples, están disponibles en la cuenta de GitHub, y vamos a escribir el código html y CSS durante las lecciones.
Los enlaces al video de YouTube y la cuenta de GitHub para esta sección están a continuación:
En nuestra aplicación, vamos a utilizar diferentes imágenes y logotipos. Es importante saber qué tipo de formato es el más adecuado para fotos, imágenes y logotipos. Presentaré cuatro tipos de formatos de imagen: SVG, PNG, JPEG y GIF.
¿Qué es un archivo SVG?
Scalable Vector Graphics (SVG) es un formato de archivo vectorial compatible con la web. A diferencia de los archivos rasterizados basados en píxeles como los JPEG, los archivos vectoriales almacenan imágenes a través de fórmulas matemáticas basadas en puntos y líneas en una cuadrícula. Esto significa que los archivos vectoriales como SVG pueden redimensionarse significativamente sin perder calidad, lo que los hace ideales para logotipos y gráficos complejos en línea.
Ventajas de los archivos SVG.
¿Qué es un archivo PNG?
PNG es la abreviatura de Portable Network Graphic, un tipo de archivo de imagen rasterizada. Es un tipo de archivo especialmente popular entre los diseñadores web porque puede manejar gráficos con fondos transparentes o semitransparentes. El formato de archivo no está patentado, por lo que puedes abrir un PNG utilizando cualquier software de edición de imágenes sin necesidad de licencias.
Ventajas de los archivos PNG.
¿Qué es un archivo JPEG?
JPEG significa Joint Photographic Experts Group, una organización internacional que estandarizó el formato durante finales de los 80 y principios de los 90. Es el formato de archivo preferido para imágenes digitales, y lo ha sido desde que los fotógrafos comenzaron a tomar y almacenar imágenes en cámaras digitales y otros dispositivos reprográficos.
Ventajas de los JPEG.
¿Qué es un archivo GIF?
Probablemente veas archivos GIF cada vez que revisas tus redes sociales. Pero, ¿qué significa GIF y cómo funcionan estos archivos?
GIF significa Graphics Interchange Format. GIF es un formato de archivo rasterizado diseñado para imágenes relativamente básicas que aparecen principalmente en internet. Cada archivo puede admitir hasta 8 bits por píxel y puede contener 256 colores indexados. Los archivos GIF también permiten combinar imágenes o cuadros, creando animaciones básicas.
Ventajas de los archivos GIF.
El código html del encabezado está en el archivo home.html, y se encuentra debajo de {% extends "layout.html" %}, y entre {% block content %} y {% endblock content %}
. El código html del encabezado consiste en:
El código html de la sección de desarrolladores sigue la misma estructura que el código html de la sección de encabezado. El código CSS que define la apariencia de la sección de desarrolladores es similar al código CSS que define la sección de encabezado.
Los enlaces al video de YouTube y a la cuenta de GitHub para esta sección están a continuación:
Bootstrap es el Framework CSS más popular para desarrollar sitios web responsivos y mobile-first.
¿Qué es mobile first? Un enfoque "mobile-first" implica diseñar un sitio de escritorio comenzando con la versión móvil, que luego se adapta a pantallas más grandes (contrario al enfoque tradicional de comenzar con un sitio de escritorio y luego adaptarlo a pantallas más pequeñas). En términos generales, un enfoque mobile-first significa construir su sitio web pensando en sus usuarios móviles, con el objetivo principal de mejorar la experiencia de estos usuarios móviles en su sitio.
¿Cómo instalar Bootstrap? Para usar Bootstrap es necesario agregar el enlace CSS en el encabezado y los enlaces de JavaScript en el cuerpo. Las instrucciones para instalar Bootstrap están en el enlace a continuación. También explicamos cómo instalar Bootstrap en el video de YouTube de esta sección.
Los botones son muy útiles y aparecen varias veces en nuestra aplicación. En el capítulo anterior, utilizamos botones de Bootstrap y también creamos nuestros propios botones. Más información sobre los botones de Bootstrap se puede encontrar en el enlace a continuación.
Ejemplos. En esta sección, vamos a introducir tres botones de Bootstrap, centrándonos en tres tipos de botones.
El enlace con información sobre el modal en Bootstrap se encuentra a continuación:
El plugin modal de JavaScript de Bootstrap añade cuadros de diálogo a su sitio para lightboxes, notificaciones de usuarios o contenido completamente personalizado.<body>
para que el contenido modal se desplace en su lugar.
<!-- Botón para activar el modal -->
<button type="button" class="btn btn-primary" data-toggle="modal" data-target="#exampleModal">
Lanzar modal de demostración
</button>
<!-- Modal -->
<div class="modal fade" id="exampleModal" tabindex="-1" role="dialog" aria-labelledby="exampleModalLabel" aria-hidden="true">
<div class="modal-dialog" role="document">
<div class="modal-content">
<div class="modal-header">
<h5 class="modal-title" id="exampleModalLabel">Título del modal</h5>
</div>
<div class="modal-body">
...
</div>
<div class="modal-footer">
<button type="button" class="btn btn-secondary" data-dismiss="modal">Cerrar</button>
<button type="button" class="btn btn-primary">Guardar cambios</button>
</div>
</div>
</div>
</div>
Anteriormente en este capítulo utilizamos Font Awesome para introducir íconos en nuestra aplicación. También podemos usar íconos de Bootstrap en nuestra aplicación. En esta sección, estudiamos cómo introducir íconos de Bootstrap en nuestra aplicación.
Información útil sobre los íconos de Bootstrap se puede encontrar en los enlaces a continuación.
Ejemplos.
En este desafío semanal, debes diseñar tus propios archivos layout.html, home.html, business.html, light_app.html, y los archivos de css asociados a estos archivos html.
No necesitas hacer algo extraordinario. Enfócate en las distintas páginas del proyecto, y trata de que sean lo más avanzadas posible.
Es importante que proporciones un modelo de negocio claro, que ayude al usuario a entender el modelo de negocio que estás utilizando en tu aplicación.
Enfócate también en el modal para proporcionar algunas instrucciones básicas. Desarrollaremos las instrucciones más adelante en el curso, pero trata de entender cómo funciona el modal.
Como en el capítulo anterior, trata de tener una versión avanzada de los archivos html y css, ya que eso te ayudará a avanzar en el desarrollo de tu aplicación.
Discutiremos el desafío semanal el viernes...... Utilizaremos el chat principal para ayudarnos mutuamente en el desafío semanal.
Dentro de esos días, por favor comparte la información que consideres relevante para ayudar a los demás grupos.