Introducción a HTML y CSS Básicos
Introducción a HTML y CSS Básicos
Aprendimos mucho sobre HTML y CSS, dos de los lenguajes más importantes que
necesito saber como desarrollador web.
Aquí hay un resumen conciso de todas las características fundamentales que hemos aprendido hasta ahora.
Resumen HTML
¿Qué y por qué?
Aunque los navegadores por defecto agregan estilos para ciertos elementos HTML (por ejemplo, <h1> </h1>
los elementos son negritas y más grandes por defecto), no usas HTML para el estilo
¡propósitos!
Tu sitio web no solo es visto por ti, sino que también es analizado por los rastreadores de motores de búsqueda.
o presentados por tecnologías asistivas como los lectores de pantalla. Por eso es importante describir
Los elementos HTML suelen consistir en una etiqueta de apertura (por ejemplo.<h1>), contenidoalgun
(p. ej.¡Hola!) y una etiqueta de cierre (por ej.</h1>).
Los elementos HTML también pueden recibir atributos que te permiten agregar comportamiento extra o
Por ejemplo, un enlace (<a>) requiere unaenlaceatributo para decirle al navegador dónde está
debería llevar a:
<ul>
<li>Esto lleva a<ahref="[Link]
<li>Otro elemento</li>
</ul>
Por eso, un documento HTML correctamente formateado debe tener un "esqueleto" que
define dos áreas principales:
Por lo tanto, un esqueleto de documento HTML correcto (que deberías usar en cada uno
.htmlel archivo que creas debería verse así:
<!DOCTYPE html>
<html>
<head>
<title>My Page Title</title>
<!-- Other metadata -->
</head>
<cuerpo>
<h1>¡Hola!</h1>
<!-- Otro contenido de la página -->
</body>
</html>
También aprendiste que hay dos tipos principales de contenido<cuerpo>) elementos en HTML:
Los elementos de bloque siempre reservan todo el ancho de la pantalla para sí mismos
(aunque eso puede cambiarse mediante CSS).
Los elementos en línea, por otro lado, están - como su nombre sugiere - ahí para encajar "en un
línea con otros elementos". Sería, por ejemplo, extraño si un enlace (<a>) podría
fuerza un salto de línea porque reserva todo el ancho de la pantalla para sí mismo.
Por otro lado, un nuevo párrafo<p>) o título (<h1>, <h2>etc.) probablemente debería
no ser comprimido en la misma línea que otro texto.
Sin embargo, puedes cambiar ese comportamiento a través de CSS, en caso de que lo necesites.
Hasta este punto, ya hemos aprendido sobre muchos elementos importantes - aquí hay un
lista de resumen:
<cabecera>Elementos
<meta>Se puede utilizar para agregar metadatos adicionales a su página - por ejemplo, un
descripción que podría ser recogida por los rastreadores de motores de búsqueda
<title>Permite definir un título de página (será utilizado por los motores de búsqueda
sino que también aparece en las pestañas del navegador)
<estilo>Se puede utilizar para definir estilos CSS globales para la página
<enlace>Permite vincular ('conectar') tu archivo HTML a algún otro
recurso - típicamente a [Link] cuyas estilos se aplicarán como
estilos globales a ese documento HTML
<body>Elementos:
<h1>, <h2>, <h3>etc: Encabezados (títulos) que puedes agregar a tu página.
Debe usarse en orden y solo uno<h1>el elemento debe ser utilizado por
Documento HTML.<h2>el elemento actúa como un subtítulo, un<h3>element is
luego otro subtítulo en un nivel aún más bajo.
<p>Se puede utilizar para definir un párrafo regular de contenido en línea (típicamente
texto
<em>Se puede usar para agregar énfasis a una palabra o frase
<strong>Se puede usar para añadir un fuerte énfasis a una palabra o frase (como si
lo estarías diciendo en voz alta, enfatizándolo fuertemente de manera verbal
<img>: Can be used to display an image. You need to set the image source
ruta a través de lafuenteatributo. Y deberías establecer un texto alternativo a través de
elalternativoatributo - este texto se muestra si la imagen no se puede cargar o si
un usuario que utiliza una tecnología de asistencia visita tu página
<ul>/<ol>Se puede usar para renderizar listas de datos ordenadas o desordenadas. Usa
este elemento si tienes datos de lista.
<li>Utilizado dentro de<ul>o<ol>definir los elementos de la lista individual de
esa lista.
<encabezado>Un elemento de bloque que define un encabezado - para toda la página o un
subsección de la página (más sobre eso más adelante)
<footer>Un elemento de bloque que define un pie de página - para toda la página o una
subsección de la página (más sobre eso más tarde)
<principal>Define el contenido principal de una página - no deberías tener más
más de uno<principal>elemento por documento HTML.
<sección>Define una nueva sección en tu documento - típicamente contiene
un encabezado (por ejemplo.<h2>) sin embargo, no es un "imprescindible"
<span>Un elemento en línea sin significado que se puede usar para envolver contenido
que debería ser dirigido con estilos CSS (por ejemplo, con la ayuda de una clase CSS o
un id)
<div>Un elemento de bloque sin significado que se puede utilizar para envolver contenido
que debería ser dirigido con estilos CSS (por ejemplo, con la ayuda de una clase CSS o
una identificación)
Por supuesto, veremos muchos más elementos a lo largo de este curso - también puedes
explorar todos los elementos disponibles en elReferencia de Elementos HTML de MDN.
Resumen de CSS
¿Qué y por qué?
CSS (Hojas de Estilo en Cascada) es un lenguaje que te permite definir definiciones de estilo
para su documento HTML. Estas definiciones serán recogidas por el navegador y
controlar cómo se mostrará el contenido (por ejemplo, que algún texto sea rojo, qué tamaño de fuente
debería tener etc.).
Si quieres cambiar los colores del texto, los colores de fondo, tamaños, espacios, distancias,
bordes, sombras, posiciones y todas estas cosas, necesitas CSS.
Sintaxis CSS
Hay una amplia variedad de propiedades CSS disponibles que puedes definir. Todas esas
las propiedades luego toman diferentes valores - los valores concretos que puedes asignar dependen
attribute:
Pero usar tales "estilos en línea" generalmente no se recomienda ya que viene con
varias desventajas. Lo más importante, desordena tu código HTML (difícil de
¡mantener!), requiere mucha duplicación y copiar y pegar, y también es difícil
A menudo necesitas visitar y ajustar múltiples elementos si quieres ajustar
un solo estilo.
Al usar estilos globales como estos, la sintaxis CSS sigue siendo la misma, pero agrupas tu
asignaciones de propiedad-valor en una regla CSS llamada que también es un selector CSS que
define para qué elementos HTML se deben aplicar tus estilos:
p a{/* selecciona todos los elementos <a> que son descendientes de un <p> */
color:rojo;
}
También puedes proporcionar estilos específicos para estados específicos de elementos HTML - con
pseudo-selectores:
a:hover { /* apunta a <a> donde el ratón del usuario está sobre */ }
font-weight:bold;
}
HTML está ahí para definir el contenido, proporcionar la estructura y significado, CSS es entonces
ahí para presentar tu contenido como quieras presentarlo.
Dado que hay docenas de propiedades CSS que puedes apuntar (solo vimos un pequeño subconjunto
hasta ahora), también hay cientos de valores posibles que puedes asignar.
Los valores concretos que puedes asignar siempre dependen de la propiedad que estás utilizando actualmente.
definiendo: Propiedades del color (p. [Link], color de fondo) quiero valores de color (por ejemplo.
#fa923f, #ccc, rgb(204, 204, 204), hsl(180, 20, 75), rojo). Dimensión
propiedades (por ejemplofont-size, margen) quiero valores de dimensión (por ejemplo, 18px). El font-
familiala propiedad quiere una lista de familias de fuentes que debería usar (p. ej.)familia de fuentes:
Oswald, sans-serif).
Por supuesto, también puedes utilizar siempre el soporte de autocompletado del IDE y los recursos.
como elLista de Propiedades CSS de MDNpara aprender sobre todas las posibles propiedades y valores.
El modelo de caja
Al trabajar con CSS, es importante entender que los elementos HTML tienen un
el llamado 'modelo de caja'.
Esto significa que todos los elementos HTML tienen varias "capas" que se pueden estilizar:
El contenido
Arellenoalrededor del contenido (pero dentro del borde)
Afrontera
Amargenalrededor de todo el elemento
You don't need to set any relleno, fronteraomargensolo puedes establecer lo que tú
necesidad. Pero con estas diferentes "capas", puedes agregar espacio entre un visible
border and the content and / or around an element.
Cabe destacar que los elementos de bloque y en línea se comportan de manera diferente:
También puedes cambiar si un elemento se comporta como un elemento de bloque o en línea a través de la
Porque una cascada de definiciones de estilo puede afectar a un mismo elemento - es decir,
múltiples reglas CSS pueden afectar el mismo elemento.
<style>
a{
text-decoration:none;
}
.default-link{
color:rojo;
}
</style>
<aclass="default-link"href="...">Some linke</a>
En este ejemplo, las dos reglas CSS están afectando ambas el<a>elemento.
¿Por qué tendrías dos en lugar de solo una regla? Porque tal vez tengas diferentes
enlaces en tu página - algunos con unenlace-predeterminadoclase, algunos sin ella.
Debido a que múltiples reglas CSS pueden afectar el mismo elemento HTML, puedes dividir tu
Definiciones de CSS en múltiples reglas. Esto evita copias y pegados innecesarios y
¡duplicación de código!
Especificidad
But what happens if different CSS rules target the same CSS property?
<estilo>
a{
color:azul;
}
.default-link{
color:rojo;
}
</estilo>
<aclass="default-link"href="...">Algun enlace</a>
En este caso, el enlace seríarojoporque el orden de las reglas CSS importa - lo posterior
regla (en este [Link]-predeterminadovictorias).
Pero en realidad, es un poco más complejo que eso. No se trata solo del orden.
En su lugar, hay un concepto llamado especificidad (¡sí, es una palabra horrible!) implicado.
Cuanto mayor sea la especificidad de una regla, más importante es. Y mayor especificidad
los latidos tienen menor especificidad.
El tipo de selector que estás usando también juega un papel importante - por ejemplo, un id
selector (como#some-id) supera a un selector de tipo de etiqueta regular (comoh1).
Y eso tiene cierto sentido: Después de todo, si apuntas a un id específico, tienes una manera
criterios de selección más específicos que si solo apuntas al tipo de etiqueta.
Y aunque ahora podría escribir una larga lista de factores de especificidad y cuál regla gana
sobre qué otra regla, lo reconfortante es que básicamente puedes confiar en ti mismo
sentido común.
Así como tiene sentido que un id sea más específico que "solo la etiqueta", una combinación
selector (por ejemplop a { ... }) ganaría sobre un selector "independiente" (por ejemploa { ...
}).
Así que cuanto más específicos sean tus selectores CSS, mayor será la especificidad. Y más alto
la especificidad supera a la menor especificidad.
Herencia
Conectado a los conceptos de "Cascada" y "Especificidad" está el concepto de
"Herencia".
Los elementos HTML no solo se ven afectados por estilos que se definen en reglas directamente.
dirigiéndose a esos elementos, pero en su lugar también pueden ser estilizados por reglas que apuntan a
<estilo>
cuerpo{
fuente: 'Open Sans', sans-serif;
texto-align:center;
}
p{
margen:20px;
}
</estilo>
<body>
<h1>¡Uso 'Open Sans' como familia de fuentes!</h1>
¡Yo también! Y ambos estamos alineados al centro.
</body>
¿Por qué?
Debido a la 'herencia'.
El color del texto, la mayoría de los estilos de fuente, etc. son heredados.
Los navegadores también definen algunos estilos predeterminados para ciertos elementos; por ejemplo, ellos
Sin embargo, esto tiene una especificidad muy baja y, por lo tanto, puedes sobrescribirlo fácilmente.
estilos predeterminados con cualquier selector CSS.