HTML - Smith, Adam J
HTML - Smith, Adam J
HTML - Smith, Adam J
Contenido
HTML
Capítulo 1: Introducción
Qué es HTML
HTML5 & CSS3
Capítulo 2: Herramientas Para Empezar
El Editor de Texto
El Navegador
Cómo Probar el Código
Capítulo 3: Elementos de la Página HTML
El doctype <!doctype html>
<html>
<head>
<body>
Capítulo 4: Las Etiquetas de Texto
Los Títulos
Los Párrafos
Capítulo 5: Las Listas
Listas Numeradas
Listas Con Viñetas
Capítulo 6: Los Enlaces
Los Atributos Principales
Rutas Absolutas y Rutas Relativas
Capítulo 7: Las Imágenes
Los Atributos Principales
Capítulo 8: Los div
Contenedor Genérico
Capítulo 9: Primera Página
HTML
Capítulo 10: CSS en Línea
Capítulo 11: CSS Aplicado al Texto
Capítulo 12: CSS Aplicado a los div
Posicionar
Dimensiones y Margen
Capítulo 13: Imágenes y CSS
Imágenes Responsivas
Capítulo 14: El Mundo Real
Capítulo 1: Introducción
Qué es HTML
Las etiquetas HTML son palabras clave ocultas dentro de una página
Web que definen cómo el navegador Web debe formatear y mostrar el
contenido. La mayoría de las etiquetas deben tener dos partes, una de
apertura y otra de cierre. Por ejemplo, <html> es la etiqueta de apertura y
</html> es la etiqueta de cierre, tenga en cuenta que la etiqueta de cierre
tiene el mismo texto que la etiqueta de apertura, pero además tiene un
carácter de barra inclinada (/). Debe interpretar esto como "fin de
etiqueta".
Hay algunas etiquetas que son una excepción a esta regla y donde no se
requiere una etiqueta de cierre, la etiqueta <img> para mostrar imágenes
es un ejemplo. Cada archivo HTML debe tener etiquetas esenciales para
que se considere válido, de modo que los navegadores Web puedan
entenderlo y mostrarlo correctamente. El resto del archivo HTML puede
contener tantas etiquetas como desee para mostrar su contenido.
<html>
<head>
<title>Título de la página</title>
</head>
<body>
¡Aquí va todo el contenido de la página Web!
</body>
</html>
El Navegador
<!DOCTYPE HTML>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html;
charset=utf-8">
<title>Bienvenidos</title>
</head>
<body>
<h1>Bienvenidos a HTML</h1>
<hr>
<p>HTML <em>no es</em> ¡tan difícil de aprender!</p>
<p>Puede poner mucho texto aquí si lo desea. Podríamos seguir y
seguir con un texto de ficción, pero volvamos al libro.</p>
</body>
</html>
... construye un árbol de análisis para interpretar la estructura del
documento. Estos árboles de análisis, a menudo denominados árboles del
Modelo de objetos de documento (Document Object Model), son la
interpretación del explorador del marcado proporcionado y son una parte
integral de la determinación de cómo representar visualmente la página
mediante HTML y cualquier CSS adjunto. JavaScript utilizará este árbol
de análisis incluso cuando los scripts intenten manipular el documento.
Asegúrese de que el código está bien escrito y de que para cada etiqueta
abierta hay la etiqueta de cierre equivalente (si se espera). Te recuerdo
que etiquetas como img no tienen una etiqueta de cierre correspondiente.
Hay varias formas de abrir Chrome DevTools, lo que significa que puede
usar el método que más le guste: puede abrirlo desde el menú del
navegador, hacer clic con el botón derecho y seleccionar "Inspeccionar
elemento" o presionar la tecla F12.
Puede probar su sitio Web y las media query para ver si su diseño
receptivo está funcionando en algún lugar ingresando al modo de
dispositivo. De manera alternativa, puede ver a qué resolución se rompe
la página para saber dónde aplicar una media query.
<!doctype html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html;
charset=utf-8">
<title>Bienvenidos</title>
</head>
<body>
<h1>Bienvenidos a HTML</h1>
<hr>
<p>HTML <em>no es</em> ¡tan difícil de aprender!</p>
<p>Puede poner mucho texto aquí si lo desea. Podríamos seguir y
seguir con un texto de ficción, pero volvamos al libro.</p>
</body>
</html>
<html>
Para todos los propósitos prácticos, cualquier cosa que no sea HTML
estándar en este ejemplo es <! DOCTYPE>. Dados estos cambios
mínimos, por supuesto, HTML5 básico se mostrará inmediatamente
correctamente en los navegadores. Como lo indica su declaración atípica
<! DOCTYPE>, HTML5 no está definido como una aplicación SGML o
XML.
Al igual que con cualquier otro elemento HTML, el contenido entre las
etiquetas puede ser tan corto o largo como desee y dividirse en varias
líneas. Incluya los elementos de la lista con el elemento <ol> o <ul>. Si
usa un elemento <ol> para encerrar los elementos de la lista, se
mostrarán como una lista ordenada; si usa <ul>, la lista se mostrará como
una lista sin clasificar. A continuación, le mostramos cómo envolver sus
artículos en un elemento <ol>:
<ol>
<li>Andrea</li>
<li>Marco</li>
<li>Giuseppe</li>
<li>Antonio</li>
</ol>
Listas Con Viñetas
<ul>
<li>Andrea</li>
<li>Marco</li>
<li>Giuseppe</li>
<li>Antonio</li>
</ul>
<!DOCTYPE html>
<html>
<head>
<style>
ul.a {
list-style-type: circle;
}
ul.b {
list-style-type: square;
}
ol.c {
list-style-type: upper-roman;
}
ol.d {
list-style-type: lower-alpha;
}
</style>
</head>
<body>
<p>Ejemplo de listas no ordenadas:</p>
<ul class="a">
<li>Andrea</li>
<li>Marco</li>
<li>Giuseppe</li>
<li>Antonio</li>
</ul>
<ul class="b">
<li>Andrea</li>
<li>Marco</li>
<li>Giuseppe</li>
<li>Antonio</li>
</ul>
<p>Ejemplo de listas ordenadas:</p>
<ol class="c">
<li>Andrea</li>
<li>Marco</li>
<li>Giuseppe</li>
<li>Antonio</li>
</ol>
<ol class="d">
<li>Andrea</li>
<li>Marco</li>
<li>Giuseppe</li>
<li>Antonio</li>
</ol>
</body>
</html>
<!DOCTYPE html>
<html>
<head>
<style>
ol {
background: #ff9999;
padding: 20px;
}
ul {
background: #3399ff;
padding: 20px;
}
ol li {
background: #ffe5e5;
padding: 5px;
margin-left: 35px;
}
ul li {
background: #cce5ff;
margin: 5px;
}
</style>
</head>
<body>
<h1>Listas de estilos con los colores:</h1>
<ol>
<li>Andrea</li>
<li>Marco</li>
<li>Giuseppe</li>
<li>Antonio</li>
</ol>
<ul>
<li>Andrea</li>
<li>Marco</li>
<li>Giuseppe</li>
<li>Antonio</li>
</ul>
</body>
</html>
Capítulo 6: Los Enlaces
Los Atributos Principales
Las URL no son solo para escribir en los navegadores; puede usarlos
directamente en su HTML. Y, por supuesto, en el momento adecuado,
deberá vincular desde la página principal de su sitio a otra página con
otra información. Como probablemente pueda adivinar, colocaremos esa
URL directamente en un elemento <a>. He aquí cómo hacerlo:
Para abrir una página en una nueva ventana, debe indicarle al navegador
el nombre de la ventana en la que desea abrirla. Si no le indica al
navegador una ventana específica para usar, el navegador simplemente
abre la página en la misma ventana.
Para averiguar una ruta relativa para sus enlaces, comience desde la
página que tiene el enlace y luego trace una ruta a través de sus carpetas
hasta que encuentre el archivo al que necesita apuntar. Veamos un par de
rutas relativas:
<html>
<head>
<title>Página de prueba</title>
</head>
<body>
<h1>Productos</h1>
<h2>Margarita</h2>
<p>
<img src="../images/margarita.jpg">
Una flor clásica
</p>
<h2>Tulipán</h2>
<p>
<img src="../images/tulipan.jpg">
Floraciones realmente espectaculares
</p>
</body>
</html>
Por lo general, querrá usar una URL para una imagen si está apuntando a
una imagen en un sitio Web diferente (recuerde, para enlaces e imágenes
en el mismo sitio, es mejor usar rutas relativas).
Una cosa de la que puede estar seguro en la Web es que nunca se sabe
exactamente qué navegadores y dispositivos se utilizarán para ver sus
páginas. Es probable que los visitantes aparezcan con dispositivos
móviles, lectores de pantalla para ciegos, navegadores que funcionan con
conexiones de Internet muy lentas (solo recuperan texto y no imágenes
de un sitio). ¿Quién sabe? Incluso si un navegador no puede mostrar
imágenes en su página, existe una alternativa.
Ahora que sabe qué elementos pertenecen a cada sección, puede agregar
algún código para marcar esta estructura. La forma común de hacer esto
es colocar etiquetas <div> de apertura y cierre alrededor de los
elementos que pertenecen a una sección lógica. Simplemente inserte sus
elementos en <div>, lo que indica que todos esos elementos pertenecen
al mismo grupo. Pero no les ha dado ningún tipo de etiqueta que diga
qué significa agrupar, ¿verdad?
<html>
<head>
<title>Animales domésticos</title>
</head>
<body>
<div id="animales domésticos">
<div id="gatos">
<p>Sección de Gatos</p>
</div>
<div id="perros">
<p>Sección de Perros</p>
</div>
</div>
</body>
</html>
Ahora que tiene algunas bases más, puede crear su primera página
index.html, con su editor de texto. Puede usar Atom, Bloc de notas,
Sublime Text, IntelliJ Idea, lo que quiera.
<html>
<head>
<title>Animales domésticos</title>
</head>
<body>
<h1>Animales domésticos</h1>
<div id="animales domesticos">
<div id="gatos">
<p>Sección de <strong>Gatos</strong></p>
<img src="../images/gato.jpg">
</div>
<div id="perros">
<p>Sección de <strong>Perros</strong></p>
<img src="../images/perro.jpg">
</div>
</div>
<a href="/quienes-somos.html">Mayor información</a>
</body>
</html>
Copie este código o digitalice en el editor y guarde esta página con el
índice de nombres.html. Abra este archivo en su navegador y compruebe
que ha agregado la carpeta de "imágenes" de la manera correcta,
recuerde lo que dijimos sobre las rutas relativas.
Capítulo 10: CSS en Línea
Entre otras cosas, el código CSS para usar block e inline se puede incluir
directamente en el código HTML gracias a la propiedad style, de la
siguiente manera:
<html>
<head>
<title>Animales domésticos</title>
</head>
<body>
<h1>Animales domésticos</h1>
<div style="display: block" id="animales domesticos">
<div id="gatos">
<p>Sección de <strong>Gatos</strong></p>
<img style="display: inline" src="../images/gato.jpg">
</div>
<div id="perros">
<p>Sección de <strong>Perros</strong></p>
<img src="../images/perro.jpg">
</div>
</div>
<a href="/quienes-somos.html">Mayor información</a>
</body>
</html>
p{
margin: 10px;
}
img {
margin: 10px;
}
<html>
<head>
<title>Animales domésticos</title>
<style>
p, img {
margin: 10px;
}
</style>
</head>
<body>
<h1>Animales domésticos</h1>
<div style="display: block" id="animales domesticos">
<div id="gatos">
<p>Sección de <strong>Gatos</strong></p>
<img style="display: inline" src="../images/gato.jpg">
</div>
<div id="perros">
<p>Sección de <strong>Perros</strong></p>
<img src="../images/perro.jpg">
</div>
</div>
<a href="/quienes-somos.html">Mayor información</a>
</body>
</html>
body {
font-family: Verdana, Geneva, Arial, sans-serif;
font-size: 14px;
}
Como puede ver, estas propiedades hablan bastante, simplemente hemos
definido la familia de fuentes y su tamaño para todo el cuerpo del
archivo html. Puede cambiar el color del texto con la propiedad de color.
Para ello, es útil conocer un poco los colores de la Web y te guiaremos a
través de todos los detalles de color, incluidos los misteriosos "códigos
hexadecimales" de colores.
Está comenzando a ver que hay muchas declaraciones en las que puede
agregar color a sus páginas: colores de fondo, colores de borde e incluso
colores de fuente. Pero, ¿cómo funcionan realmente los colores en una
computadora? Vamos a ver.
body {
color: yellow;
}
body {
color: rgb(80%, 40%, 0%);
}
También puede especificar los valores rojo, verde y azul como un valor
numérico entre 0 y 255. Por lo tanto, en lugar de 80% rojo, 40% verde y
0% azul, puede usar 204 rojo, 102 verde y 0 azul.
body {
color: rgb(204, 102, 0);
}
Ahora abordemos esos códigos hexadecimales de aspecto loco. Aquí está
el secreto para entenderlos: cada conjunto de dos dígitos de un código
hexadecimal representa solo el componente rojo, verde y azul del color.
Por tanto, los dos primeros dígitos representan el rojo, los dos siguientes
el verde y los dos últimos el azul. Como esto:
body {
color: #cc6600;
}
Bien, aquí está el segundo secreto para leer códigos hexadecimales: cada
conjunto de dos dígitos representa un número del 0 al 255. El problema
es que, si usáramos números, solo podríamos representar hasta 99 en dos
dígitos, ¿verdad? Bueno, como no querían estar limitados por algo tan
simple como los dígitos del 0 al 9, los informáticos decidieron que
podían representar los 255 valores incluso con la ayuda de algunas letras
(de la A a la F). Recuerde que cada color hexadecimal consta de un
componente rojo, verde y azul.
body {
font-weight: bold;
}
body {
text-align: center;
}
Capítulo 12: CSS Aplicado a los div
Posicionar
Con los CSS, normalmente hay muchas formas de hacer un diseño, cada
una con sus propias fortalezas y debilidades. En su lugar, usaremos una
función CSS que le permite colocar con precisión elementos en la página
y se llama posicionamiento absoluto.
Aquí hay un pequeño CSS para colocar la barra lateral <div> con
posicionamiento absoluto:
#sidebar {
position: absolute;
top: 100px;
right: 200px;
width: 280px;
}
Supongamos que tenemos otro <div> con el id "pippo". Al igual que con
la barra lateral, colocamos el <div> en una posición precisa en la página.
Todos los elementos subyacentes que se encuentran en el flujo normal de
la página no tienen la menor idea de los elementos colocados
absolutamente superpuestos.
#coupon {
position: fixed;
top: 300px;
left: 100px;
}
div.relative {
position: relative;
left: 30px;
border: 3px solid #73AD21;
}
Dimensiones y Margen
elemento {
width: 200px;
height: 200px;
}
elemento {
box-sizing: border-box;
}
En nuestro ejemplo, tenemos un div que tiene una clase "main" que
contiene un encabezado, un párrafo y varias comillas. El div tiene un
borde punteado y las comillas tienen un fondo verde claro.
<div class="main">
<h1>Compra los productos nuestros</h1>
<p>Somos el fabricante líder mundial de cepillos y estamos muy
orgullosos de ofrecer la más alta calidad de cerdas posible. Vea lo
que nuestros clientes tienen que decir:</p>
<blockquote>"¡Pinceles fantásticos! Realmente muy buenos y
precisos." - Giorgio</blockquote>
<blockquote>"Un artista es tan bueno como sus herramientas.
Muchas gracias, ABC, por este gran producto." - Sara</blockquote>
<blockquote>"¡Yo nunca había usado pinceles tan precisos!" -
Michele</blockquote>
</div>
body {
font-family: Avenir, Arial, sans-serif;
text-align: center;
}
.main {
border: 10px dotted black;
padding: 20px;
margin: 0px auto;
}
h1 {
margin: 0px;
}
blockquote {
padding: 20px;
background-color: lightgreen;
border-radius: 10px;
margin: 10px auto;
text-align: center;
}
Como ha visto en los márgenes, bordes y relleno, los anchos y las alturas
también se pueden establecer en píxeles. Establecer un ancho o alto en
píxeles significa que el ancho o alto siempre será el mismo,
independientemente del tamaño de la pantalla desde la que se visualiza la
página.
.main {
width: 600px;
}
.main {
width: 37.5em;
}
.main {
width: 37.5em;
}
blockquote {
width: 50%;
}
Es posible que desee establecer valores que nunca permitan que el ancho
o el alto de un elemento superen o disminuyan un determinado valor. Las
propiedades min-width, max-width, min-height y max-height son
excelentes para este propósito.
img {
border-radius: 8px;
}
img {
border-radius: 50%;
}
Para crear un marco alrededor de todas sus imágenes en una página,
puede jugar con la propiedad de borde:
img {
border: 1px solid #ddd;
border-radius: 4px;
padding: 5px;
width: 150px;
}
img {
max-width: 100%;
height: auto;
}
img {
display: block;
margin-left: auto;
margin-right: auto;
width: 50%;
}
Eso es muy simple, ¿verdad? Es genial leer estas reglas de estilo y saber
lo que hacen, estoy seguro de que te habría costado más al principio de
este libro.
Capítulo 14: El Mundo Real
<html lang="es">
<head>
<title>Página completa en HTML5</title>
<meta name="description" content="Página HTML completa: solo
contenido textual">
<meta name="keywords" content="HTML5, pagina, CSS">
<meta name="author" content="Tu nombre">
<meta name="viewport" content="width=device-width, initial-
scale=1.0">
<meta charset="UTF-8" />
<link rel="stylesheet" href="stile.css">
</head>
<body>
<header>
<h1>Página en HTML5</h1>
</header>
<nav>
<ul>
<li><a href="#intro">Introducción</a></li>
<li><a href="#Web">La Web</a></li>
<li><a href="#css">CSS</a></li>
<li><a href="#js">JavaScript</a></li>
</ul>
</nav>
<section id="intro">
<h2>Introducción</h2>
<article>
<h3>La Web nació para compartir información</h3>
<p>La Web è el motor de la nueva generación, un vasto
conjunto de contenidos distribuidos por la red.<br/> Estos
<strong>contenidos</strong> son los verdaderos protagonistas y,
habrás aprendido, que HTML fue creado para presentarlos de una
manera <em>legible</em> al hombre y <em>indexable</em> de las
máquinas.</p>
</article>
</section>
<footer>
<p>© Tu nombre</p>
</footer>
<!—Código JavaScript -->
<script src="https://code.jquery.com/jquery-3.5.1.slim.js">
</script>
<script>
$(document).ready(function() {
console.log("Bien hecho!");
});
</script>
</body>
</html>
/*tipografía*/
h1 {
font-family: 'Raleway', sans-serif;
font-style: normal;
font-weight: 900;
}
h2 {
font-family: 'Raleway', sans-serif;
font-style: normal;
font-weight: 700;
}
h3 {
font-family: 'Raleway', sans-serif;
font-style: normal;
font-weight: 500;
}
h4,
h5,
h6 {
font-family: 'Raleway', sans-serif;
font-style: normal;
font-weight: 300;
}
html {
font-family: 'Lato', sans-serif;
font-style: normal;
font-weight: 300;
}
/*elementos*/
html {
padding: 0.8em;
background-color: #269;
background-image: linear-gradient(red 2px, transparent 2px),
linear-gradient(90deg, white 2px, transparent 2px), linear-
gradient(rgba(255, 255, 255, .3) 1px, transparent 1px), linear-
gradient(90deg, rgba(255, 255, 255, .3) 1px, transparent 1px);
background-size: 100px 100px, 100px 100px, 20px 20px, 20px
20px;
background-position: -2px -2px, -2px -2px, -1px -1px, -1px -1px
}
body {
font-size: 1em;
}
nav,
section,
footer {
border: 1px solid grey;
margin: 5px;
padding: 8px;
background-color: #FFF;
opacity: 1;
}
header,
footer {
margin: 5px;
padding: 8px;
background-color: #FFF;
opacity: 0.8;
}
nav {
background-color: #99ccff;
color: #000;
}
nav ul {
margin: 0;
padding: 0;
}
nav ul li {
display: inline;
margin: 5px;
}
nav ul li a {
text-decoration: none;
font-variant: small-caps;
}
nav ul li a:link,
nav ul li a:visited {
color: #000
}
nav ul li a:hover,
nav ul li a:active {
color: #0066cc
}
aside {
float: right;
}
h1,
h2,
h3,
h4 {
margin-left: 5px;
}
Por último, es posible que haya notado que también hemos incluido
alguna interacción para dejar volar su imaginación y permitirle imaginar
todo lo que puede hacer con JavaScript. Al final de la etiqueta <body>
también agregamos algo de interacción con JavaScript y, de manera
particular, con jQuery.