¿Cómo agregar CSS al HTML?

  • Existen diferentes formas de aplicar CSS
    • Se puede aplicar a nivel elemento utilizando el atributo style de HTML
    • En un documento por medio de la etiqueta style en el head
    • Compartido entre varios documentos utilizando la etiqueta link en el head de nuestros documentos que queremos vincular

Agregar hoja de estilo en un elemento (atributo style)

  • La forma más particular e individual que tenemos de utilizar css es utilizando el atributo style que tienen los elementos HTML
  • Dentro del atributo style escribimos las propiedades visuales separadas por punto y coma
<span style="color: white;">Texto en color blanco!!</span>
  • De esta forma establecemos que un elemento span en particular va a tener el color de texto blanco
  • Si quiero que dos o más elementos tengan el mismo color lo hacemos de la siguiente manera:
<span style="color: white;">Texto en color blanco!!</span>
<span style="color: white;">Otro texto en color blanco!!</span>
  • Geníal, ya tenemos 2 span con texto en blanco, ahora me pregunto, si tengo 50 span en el documento, los tengo que modificar uno a uno?, La respuesta es NO y ya vamos a ver cómo lo hacemos
  • Cuando definimos estilos a nivel elementos lo estamos haciendo de forma individual
  • Esta es una buena opción cuando necesitamos que si o si un elemento se vea de una determinada forma
  • Utilizando esta definición de css se hace más difícil mantener o modificar nuestros elementos ya que para cambiar el color de una tipografía (como en el ejemplo) vamos a tener que modificar uno a uno todos los elementos (mucho trabajo)
  • Si tenemos tan solo un documento puede ser una tarea relativamente simple pero si tenemos 300 documentos se hace más complicado
  • Para evitar este problema necesitamos otra alternativa que nos permita definir los atributos visuales de nuestros elementos a nivel documento

Agregar hoja de estilo en un documento (style)

  • Por medio de la etiqueta style podemos definir los estilos que queremos para nuestros elementos a nivel documento
  • Utilizando selectores podemos cambiar la forma que se ve uno o muchos elementos del mismo tipo
  • Para definir que el texto que estamos escribiendo dentro de la etiqueta style es css, utilizamos el atributo type con el valor "text/css"
  • Si bien podemos omitir este atributo ya que HTML5 no lo require dejamos en manos del browser como interpretar el contenido de esta etiqueta
  • Para estar más seguro y lograr mejor compatibilidad con browsers anteriores definimos el atributo type del elemento style
<!DOCTYPE html>
<html>
<head>
<title>Usando CSS</title>
<style type="text/css">
span {
color: white;
}
</style>
</head>
<body>
<span>Texto en color Blanco</span>
<span>Texto en color Blanco</span>
<span>Texto en color Blanco</span>
<span>Texto en color Blanco</span>
<span>Texto en color Blanco</span>
</body>
</html>
  • Con tan solo un cambio podemos establecer que todos nuestros elementos span se vean de otro color
<!DOCTYPE html>
<html>
<head>
<title>Usando CSS</title>
<style type="text/css">
span {
color: red;
}
</style>
</head>
<body>
<span>Texto en color Rojo</span>
<span>Texto en color Rojo</span>
<span>Texto en color Rojo</span>
<span>Texto en color Rojo</span>
<span>Texto en color Rojo</span>
</body>
</html>
  • Esta forma de utilizar los estilos está buena cuando necesitamos definir estilos para un documento
  • Si bien esta forma es más general que definir los estilos en cada elemento, sigue siendo una individual a nivel documento
  • Un sitio va a tener más de un documento y si queremos mantenerlo necesitamos una forma de poder unificar todos los estilos para todos nuestros documentos

Agregar hoja de estilo en un documento externo (link)

  • Utilizando la etiqueta link podemos vincular un documento HTML con uno de CSS
  • Todas las reglas que definamos en el documento CSS van a ser aplicadas en todos los documentos vinculados
  • Esta es la mejor forma de unificar los estilos para nuestro sitio y es una forma más general de hacerlo
  • La etiqueta link tiene los siguientes atributos y valores:
    • href: establece el path al documento CSS
    • type: al igual que en la definición de la etiqueta style especificamos que el contenido de este documento vinculado es "text/css"
    • rel: establece la relación con el otro documento y utilizamos el valor "stylesheet"

Archivo: styles.css

span {
color: white
}

Archivo: index.html

<!DOCTYPE html>
<html>
<head>
<title>Index</title>
<link href="styles.css" type="text/css" rel="stylesheet" />
</head>
<body>
<span>Texto en color Blanco</span>
<span>Texto en color Blanco</span>
<span>Texto en color Blanco</span>
<span>Texto en color Blanco</span>
<span>Texto en color Blanco</span>
</body>
</html>

Archivo: contact.html

<!DOCTYPE html>
<html>
<head>
<title>Contact</title>
<link href="styles.css" type="text/css" rel="stylesheet" />
</head>
<body>
<span>Texto en color Blanco</span>
<span>Texto en color Blanco</span>
<span>Texto en color Blanco</span>
<span>Texto en color Blanco</span>
<span>Texto en color Blanco</span>
</body>
</html>
  • Con tan solo un cambio en la hoja de estilo podemos modificar todos los documentos vinculados

Archivo: styles.css

span {
color: red
}

Archivo: index.html

<!DOCTYPE html>
<html>
<head>
<title>Index</title>
<link href="styles.css" type="text/css" rel="stylesheet" />
</head>
<body>
<span>Texto en color Rojo</span>
<span>Texto en color Rojo</span>
<span>Texto en color Rojo</span>
<span>Texto en color Rojo</span>
<span>Texto en color Rojo</span>
</body>
</html>

Archivo: contact.html

<!DOCTYPE html>
<html>
<head>
<title>Contact</title>
<link href="styles.css" type="text/css" rel="stylesheet" />
</head>
<body>
<span>Texto en color Rojo</span>
<span>Texto en color Rojo</span>
<span>Texto en color Rojo</span>
<span>Texto en color Rojo</span>
<span>Texto en color Rojo</span>
</body>
</html>
  • CSS se llama Hoja de estilo en cascada ya que los elementos pueden heredar propiedades visuales de padre a hijo
  • Si establecemos estilos al body todos los elementos que esten en el documento van a heredar esos atributos
  • No todos los elementos son heredables
  • Una buena forma de ver esto es utilizando la barra de developer tools
  • Los estilos que definimos en un archivo externos pueden ser sobrescritos utilizando la etiqueta styles
  • Los estilos definidos en style pueden ser sobrescritos utilizando el atributo style de los elementos
  • De esta forma podemos ver que utilizamos conceptos generales y son pisados por los más individuales
  • Este mismo concepto se da entre elementos
  • Si definimos atributos visuales para el body podemos sobrescribir como se ven los párrafos por ejemplo dejando que el resto de los elementos hereden las propiedades declaradas en el body

styles.css

p {
color: red;
}
<link href="styles.css" type="text/css" rel="stylesheet" />
<style type="text/css">
p {
color: blue;
}
</style>
<p style="color: black;">Texto en color negro!!</p>
  • Como podemos ver en este ejemplo el estilo que establecemos en el elemento va a ser el que quede definido finalmente
  • El estilo definido en el documento (etiqueta style) pisa el que esta definido en el archivo general. En este caso importa el orden en que fueron llamados los estilos
  • Como regla podemos decir que siempre ponemos los estilos más generales primero y después sobrescribimos lo que necesitamos