Saltar al contenido principal
Leyendo: Introducción a CSS
Apuntes de clase

Clase 03 · Introducción a CSS

Estos apuntes siguen, diapositiva a diapositiva, la tercera clase de Edición Web I: qué es CSS, dónde se escribe y cómo se vincula con un archivo HTML, los tres tipos de selectores (elemento, clase e ID) y las propiedades básicas de color, tamaño y alineación de texto, y medidas. El código de cada ejemplo es exactamente el mismo que se mostró en clase.

Descargar PDF

01 · ¿Qué es CSS?

¿Qué es CSS?

CSS son las siglas en inglés para «hojas de estilo en cascada» (Cascading Style Sheets). Básicamente, es un lenguaje que maneja el diseño y presentación de las páginas web, es decir, cómo lucen cuando un usuario las visita.

Funciona junto con el lenguaje HTML, que se encarga del contenido básico de los sitios.

HTML

Se encarga del contenido: el texto, las imágenes, la estructura de la página.

CSS

Se encarga del diseño y presentación: colores, tamaños, alineación...

Ejemplo CSS:

style.css
body {
  background-color: red;
  font-family: Arial, Helvetica, sans-serif;
  font-size: 15px;
}

#title {
  font-size: 30px;
  font-weight: bold;
  text-align: center;
}

.container {
  width: 100%;
  height: 100%;
  display: flex;
  flex-direction: column;
  align-items: center;
}
02 · Vincular HTML y CSS

Vincular HTML y CSS

Hay tres lugares donde podemos escribir las reglas CSS:

3 formas de escribir CSS
  1. En un archivo aparte con extensión .css (selectores).
  2. Dentro de las etiquetas de ajuste <head> </head> de nuestra página HTML (lo veremos en otra clase).
  3. Dentro de las etiquetas de HTML (CSS en línea) (lo veremos en otra clase).

1 Archivo externo

Tenemos que indicar dentro del head de nuestro archivo HTML dónde se encuentra el archivo CSS (vamos a vincularlos). Esta es la etiqueta que pondremos dentro de <head>:

Código
<link rel="stylesheet" href="css/style.css">

El archivo CSS se encuentra dentro de la carpeta css.

Este ejemplo de la diapositiva muestra un archivo HTML ya conectado a su hoja de estilos externa con <link>: el título usa una clase (.title) en vez de un elemento, para que el color se aplique solo a él.

index.html
<!DOCTYPE html>
<html lang="en">
  <head>
    <title>Título de la web</title>
    <link rel="stylesheet" href="css/style.css" />
  </head>
  <body>
    <header>
      <img src="img/logo.png" alt="Mi logo" />
      <h1 class="title" style="color: red">Mi Blog</h1>
    </header>
    <section>
      <ul>
        …
style.css
body {
  background-color: red;
  font-family: Arial, Helvetica, sans-serif;
  font-size: 15px;
}

.title {
  color: green;
}
03 · Selectores CSS

Regla CSS

Toda regla CSS se compone de las mismas partes:

style.css
.title {
  color: green;
}

Selector

.title — apunta al elemento HTML al que queremos aplicar el estilo.

Propiedad

color — la característica que queremos cambiar.

Valor

green — el valor que le damos a esa propiedad.

Declaración

color: green; — la propiedad y su valor juntos.

Importante: el nombre del selector lo ponemos nosotros.

03 · Selectores CSS

Apertura, cierre y declaración

style.css
.title {

  color: green;

}
  • { abre la regla, justo después del selector.
  • } cierra la regla, después de la última declaración.
  • La propiedad y el valor de la propiedad van separados por dos puntos :
  • Para finalizar el valor acabamos con punto y coma ;
03 · Selectores CSS

¿Qué son los selectores?

Gracias a los selectores podemos aplicar un estilo determinado al objeto HTML que queramos.

  • El selector lo creamos en el archivo CSS.
  • Luego tenemos que indicar en el elemento HTML que se le tiene que aplicar ese selector CSS.

Selectores tipo objeto, son cualquiera de las etiquetas que ya conocemos de HTML:

Selectores de elemento
<body>
<h1>
<p>
<div>
<span>
Etc…
03 · Selectores CSS

Conectando HTML y CSS

Vamos a dar estilo al título <h1> y al párrafo, cambiando su color:

Pasos
  1. Definimos CSS (archivo style.css).
  2. Conectamos HTML y CSS.
  3. HTML lee los estilos CSS y los aplica.
1 · style.css
h1{
    color: red;
}

p{color: blue}
2 · head
<head>
    <meta charset="UTF-8">
    <title>Ejercicio Selectores</title>
    <link rel="stylesheet" href="css/style.css">
</head>
3 · body
<h1>Título del ejercicio</h1>
<p>
  "Hola, aventurero digital. Hoy, vamos a jugar con etiquetas HTML
  y crear nuestra primera página web. ¡Empecemos a codificar!"
</p>
Resultado

Título del ejercicio

"Hola, aventurero digital. Hoy, vamos a jugar con etiquetas HTML y crear nuestra primera página web. ¡Empecemos a codificar!"

03 · Selectores CSS

El problema de usar un elemento como selector

El único problema si utilizamos como selector elementos HTML es que todos los elementos serán iguales… Si definimos que los h1 son rojos, serán rojos todos los h1 de la web… para poder personalizar mejor los estilos tenemos que hacer uso del selector class y del selector ID.

index.html
<h1>Título del ejercicio</h1>
<p>"Hola, aventurero digital..."</p>
<h1>Otro título de la web</h1>
Resultado

Título del ejercicio

"Hola, aventurero digital..."

Otro título de la web

03 · Selectores CSS

Selector tipo Clase

Una clase CSS se define con un punto y a continuación el nombre que decidamos darle a la clase:

style.css
.red-color{color: red;}

Para llamar a la clase que hemos creado, dentro de la etiqueta HTML pondremos class="red-color":

index.html
<h1 class="red-color">
    Título del ejercicio
</h1>
Resultado

Título del ejercicio

03 · Selectores CSS

Selector tipo ID

Un ID CSS se define con una almohadilla y a continuación el nombre que decidamos darle al ID:

style.css
#red-color{
  color: red;
}

Para llamar al ID que hemos creado, dentro de la etiqueta HTML pondremos id="red-color":

index.html
<h1 id="red-color">
    Título del ejercicio
</h1>
Resultado

Título del ejercicio

03 · Selectores CSS

Diferencias entre ID y Class

Funcionan exactamente igual, con la diferencia de que ID se debe utilizar para identificar una parte concreta de la web y solo se debe utilizar una vez. Class la podemos utilizar más veces.

Como norma, utilizaremos class.

index.html
<!DOCTYPE html>
<html lang="en">
  <head>
    <title>Título de la web</title>
    <link rel="stylesheet" href="css/style.css" />
  </head>
  <body>
    <header>
      <img src="img/logo.png" alt="Mi logo" />
      <h1 id="titulo" style="color: red">Mi Blog</h1>
    </header>
    <section id="lista-frutas">
      <ul>
        <li class="fruta">Peras</li>
        <li class="fruta">Manzanas</li>
        <li class="fruta">Limones</li>
      </ul>
    </section>
  </body>
</html>

id="titulo" se usa una sola vez, para identificar el título del blog. class="fruta" se repite en los tres <li> porque queremos aplicarles el mismo estilo a todos.

03 · Selectores CSS

Selectores CSS — resumen

Los tres tipos de selectores, aplicando el mismo color, uno detrás de otro:

Elemento

style.css
body { color: yellow; }

ID

style.css
#titulo { color: yellow; }

Clase

style.css
.texto { color: yellow; }
04 · Propiedades básicas

Propiedades básicas

Repasamos las propiedades CSS más habituales para empezar:

style.css
/* Color de texto */
color: red;
color: #ff0000;

/* Color de fondo */
background-color: red;
background-color: #ff0000;

/* Tamaño del texto */
font-size: 18px;

/* Alinear texto */
text-align: left|right|center|justify;

/* Anchura y altura */
width: 800px;
height: 400px;
04 · Propiedades básicas

Color de texto

color: red; y color: #ff0000; son equivalentes — el segundo es el valor hexadecimal.

index.html
<h2 class="mi-color">Texto del titular...</h2>
style.css
.mi-color{color: red;}
Resultado

Texto del titular...

04 · Propiedades básicas

Color de fondo

background-color: aqua; y background-color: #00ffff; son equivalentes.

index.html
<div class="mi-fondo">
  <h2 class="mi-color">Texto del titular...</h2>
</div>
style.css
.mi-fondo{background-color: aqua;}
Resultado

Texto del titular...

04 · Propiedades básicas

Tamaño del texto

font-size: 18px;

index.html
<h2 class="mi-texto">Texto del titular...</h2>
style.css
.mi-texto{
    color: red;
    font-size: 18px;
}

En este ejemplo almacenamos 2 propiedades diferentes en la misma clase.

Resultado

Texto del titular...

04 · Propiedades básicas

Asignar 2 clases o más a una etiqueta HTML

Separamos con un espacio las clases dentro de la etiqueta HTML.

index.html
<h2 class="color-txt size-txt">Texto del titular...</h2>
style.css
.color-txt{color: red;}

.size-txt{font-size: 18px;}
Resultado

Texto del titular...

04 · Propiedades básicas

Asignar una propiedad a varias clases CSS

Al revés que en el caso anterior, también podemos aplicar la misma declaración a varios selectores distintos a la vez. Para ello, separamos los selectores con una coma dentro del archivo CSS.

style.css
.texto-grande, .texto-destacado, .texto-detalle {
    color: purple;
}

Cada una de estas tres clases puede seguir usándose de forma independiente en el HTML, pero las tres comparten el mismo color:

index.html
<h2 class="texto-grande">Texto grande</h2>
<p class="texto-destacado">Texto destacado</p>
<span class="texto-detalle">Texto de detalle</span>
Resultado

Texto grande

Texto destacado

Texto de detalle

La coma agrupa selectores para no repetir la misma declaración varias veces. No confundir con «varias clases en una etiqueta»: ahí se separan con un espacio dentro del atributo class del HTML; aquí se separan con una coma dentro del CSS.

04 · Propiedades básicas

Alineación del texto

text-align: left|right|center|justify;

index.html
<p class="izquierda">alineando texto izquierda</p>
<p class="derecha">alineando texto derecha</p>
<p class="centro">alineando texto centro</p>
<p class="justific">
    Lorem ipsum dolor sit amet, consectetur adipiscing elit. Ut id iaculis risus.
    Vestibulum eget consequat urna. Etiam gravida libero id erat consequat
    bibendum sit amet eget ex. Cras nec lobortis felis. Mauris dui augue, congue
    eget metus in, dictum viverra lectus. Mauris aliquet, ante at accumsan
    eleifend, metus risus vehicula augue, molestie nunc leo eget ex.
</p>
style.css
.izquierda{text-align:left;}

.derecha{text-align: right;}

.centro{text-align:center}

.justific{text-align:justify}
Resultado

alineando texto izquierda

alineando texto derecha

alineando texto centro

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Ut id iaculis risus. Vestibulum eget consequat urna. Etiam gravida libero id erat consequat bibendum sit amet eget ex. Cras nec lobortis felis.

04 · Propiedades básicas

¡Entender la alineación!

La alineación es respecto al espacio que ocupa el elemento.

  • Si alineamos directamente un elemento en línea, al no ocupar espacio, no pasará nada.
  • Si alineamos un elemento en bloque, al ocupar todo el espacio, sí que moverá nuestro elemento.
  • Es importante entender que se alinea el contenido que hay dentro de nuestra etiqueta HTML.
text-align: center;

Alineación al centro: elemento en línea

Contenido

Alineación al centro: elemento en bloque

Contenido
04 · Propiedades básicas

Alinear imágenes

Una imagen es un elemento en línea, quiere decir que no ocupa espacio: si alineamos una imagen no veremos ningún resultado. Para poder alinear una imagen primero hay que meterla dentro de un contenedor, y será sobre ese contenedor al que le apliquemos la alineación. Se alineará el contenido que hay dentro del contenedor.

Con text-align podemos alinear imágenes:

MAL
<img class="imgcenter" src="img1.jpg" width="120px">
BIEN
<div class="imgcenter">
    <img src="img1.jpg" width="120px">
</div>
style.css
.imgcenter{text-align:center;}
Resultado

MAL — la clase está en el img

BIEN — la clase está en el contenedor

04 · Propiedades básicas

Width y Height

Del mismo modo que especificamos el ancho y alto de un elemento mediante un parámetro de HTML, también podemos hacerlo mediante una clase CSS: el resultado es el mismo. La anchura se puede definir también por porcentaje.

Tamaño especificado dentro de la etiqueta HTML como parámetro

index.html
<img src="img1.jpg" width="120px">

Tamaño especificado en una clase CSS

index.html
<img class="mi-foto" src="img1.jpg">
style.css
.mi-foto{width:120px;}
05 · Resumen

Resumen

Un vistazo de conjunto a los selectores y las propiedades básicas vistos en esta clase.

Selectores

SelectorSintaxis CSSDescripción
Elementobody { }Aplica el estilo a todos los elementos de ese tipo (ej. todos los <h1>).
Clase.nombre-clase { }Se llama desde HTML con class="nombre-clase". Se puede repetir en varias etiquetas.
ID#nombre-id { }Se llama desde HTML con id="nombre-id". Solo debe usarse una vez por página.

Propiedades básicas

PropiedadValores de ejemploDescripción
colorred / #ff0000Color del texto.
background-colorred / #ff0000Color de fondo.
font-size18pxTamaño del texto.
text-alignleft | right | center | justifyAlineación del texto (o del contenido del contenedor).
width800pxAnchura del elemento.
height400pxAltura del elemento.
06 · Ejercicio

Ejercicio

Intentamos replicar esta estructura web.

Vista previa orientativa
Header
Título de la web
Título + imagen
TÍTULO H1
imagen
Párrafo
Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat.
Párrafo
Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat.
Párrafo
Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat.
Párrafo
Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat.
Footer

Usa lo aprendido en esta clase: un contenedor con imagen y título centrados, párrafos separados y una franja de color de fondo para el pie de página.