APRENDIENDO CSS
(Cascading style sheet) o (Hojas de Estilo en Cascada)

Temario del curso

  1. Introduccion a CSS
  2. Sintaxis basica de CSS
  3. Comentarios en CSS
  4. Formas de invocacion CSS
    1. En línea
    2. Interno
    3. Externo
  5. Versiones, documentación y enlaces de referencia
  6. Selectores básicos: Etiquetas, Identificadores y Clases
    1. Selectores de tipo o etiqueta
    2. Identificadores
    3. Clases
  7. Selectores avanzados
    1. Selectores de hijos
    2. Selectores de hermanos
  8. Selectores de atributos
  9. Selector universal
  10. Pseudo-clases
    1. Pseudoclases de elementos interactivos
    2. Pseudoclases por la posición que ocupa el elemento dentro de su contenedor
  11. Pseudoelementos
    1. Pseudoelementos ::after y ::before
    2. Pseudoelementos ::first-letter, ::first-line y ::selection
    3. Pseudoelemento ::placeholder
  12. Agrupación de selectores
  13. El algoritmo de CSS
    1. La cascada
    2. La especificidad
    3. La herencia
  14. Reseteo y Normalización de estilos
  15. Prefijos de los navegadores
  16. Modelo de caja en css (Box model)
    1. ¿Que es el modelo de caja?
    2. Propiedades width & height
    3. Propiedad border
    4. Propiedades Margin & Padding
    5. Diferencia entre elementos de línea Vs elementos de bloque
    6. Propiedad display (Visualización)
    7. Propiedad visibility
    8. Propiedad overflow
    9. Tamaño de las cajas (Box-sizing)
    10. Propiedades float & clear
    11. Colapso de margenes verticales
    12. Adición de márgenes horizontales
    13. Centrado de Cajas
  17. Posicionamiento en css
    1. ¿Que es el posicionamiento en css?
    2. Posicionamiento static
    3. Posicionamiento relative
    4. Posicionamiento absolute
    5. Posicionamiento fijo (fixed)
    6. Posicionamiento sticky o pegajoso
    7. Propiedad z-index
  18. Ejercicios practicos de posicionamiento en css
    1. Cabecera fija (fixed) Vs Cabecera pegajosa (sticky)
    2. Efecto de slides con position sticky
    3. Ventana Modal / Menú Móvil con posicionamiento fixed
  19. Márgenes negativos
  20. Colores en CSS
    1. Colores en CSS
    2. Colores por nombre
    3. Sistema de colores Hexadecimal
    4. Sistema de colores RGB (Red, Green, Blue)
    5. Sistema de colores HSL (Tono, saturacion, Luminocidad)
    6. Transparent & currentColor
    7. Propiedad opacity
  21. Unidades de medida en CSS
    1. Introduccion
    2. Pixeles
    3. Unidades EMs
    4. Unidades REMs (Root em)
    5. Unidades EXs
    6. Unidades CHs
    7. Porcentajes (%)
    8. Unidades del Viewport
    9. ¿Cuándo usar cada unidad de medida?
  22. Variables y funciones en CSS
    1. Custom Properties (Variables CSS)
    2. Función url()
    3. Función calc()
    4. Funciones min() & max()
    5. Función clamp()
  23. Estilos de fuentes y textos
    1. Estilos de Fuentes
    2. Como cargar fuentes (o tipografias) externas (@font-face & font-display)
    3. Google Fonts
    4. Estilos de Texto
    5. Iconos tipográficos vectoriales
  24. Bordes y outlines
    1. Propiedad border-radius
    2. Propiedad outline
  25. Estilos del Fondo en CSS
    1. Propiedad background-color
    2. Propiedad background-image
    3. Propiedad background-repeat
    4. Propiedad background-size
    5. Propiedad background-position
    6. Propiedad background-clip
    7. Propiedad background-origin
    8. Propiedad background-attachment
    9. Propiedad background
    10. Fondos multiples
  26. Estilos de imágenes en css
    1. Imagenes responsive
    2. Imágenes con tamaños especificos
  27. Estilos para listas en css
    1. Propiedad list-style-type
    2. Propiedad list-style-image
    3. Propiedad list-style-position
    4. Propiedad list-style
    5. Texto en columnas
  28. Estilos para tablas en css
    1. Aplicar estilos a las tablas
  29. Estilos para formularios en css
  30. Efectos visuales en CSS
    1. Efectos de sombras
    2. Degradados (gradients) en CSS
    3. Repetir degradados
    4. Gráficas con degradados
    5. Filtros (filter)
    6. Filtros múltiples a un mismo elemento
    7. Filtros a fondos (backdrop-filter)
    8. Filtros multiples a fondos
    9. Modo Dark/Light con filtros
    10. Modos de Mezcla sobre imagenes (mix-blend-mode)
    11. Modos de Mezcla sobre imagenes de fondos (background-blend-mode)
    12. Máscaras (clip-path)
    13. Formas (shape-outside)
  31. Efectos con scroll, propiedad scroll-margin-top (Sitio one page)
  32. Ajuste del Scroll, Efecto Slides Verticales (scroll-snap-type & scroll-snap-align)
  33. Enlaces y links de referencia y documentacion de css

Introduccion a CSS

CSS (Cascading Style Sheets)- (Hojas de estilo en cascada)
CSS es un lenguaje de definicion de la presentacion de los documentos HTML, es decir como se va a visualizar el contenido del documento HTML.
CSS aparece por alla en el año 1996

🔼 Inicio

Sintaxis basica de CSS

Una regla CSS consta de dos partes que son:

  1. El selector:

    Es el elemento HTML al que podemos aplicarle ese bloque de declaracion de estilos.

  2. Bloque de declaraciones:

    El Bloque de declaracion esta definido por las llaves, dentro de esas llaves van los atributos, los atributo son los que vamos a modificar y que tienen la siguiente sintaxis:
    selector {
    atributo: valor;
    atibuto-de-mas-de-dos-palabras: valor;
    }

    Ejemplo de declaracion CSS o regla de definicion de hojas de estilo en cascada CSS:
    h1{
    color: yellow;
    background-color: black;
    text-align: center;
    font-family: sans-serif;
    }

🔼 Inicio

Comentarios en CSS

Los comentarios en CSS se declaran así: /* */, ejemplo:
/*
Este es un texto comentado en CSS
*/

🔼 Inicio

Formas de invocacion CSS

Hay 3 formas de de conectar, invocar o vincular documentos CSS a un documento HTML

  1. En línea
    Utilizando el atributo style dentro de una etiqueta HTML ejemplo:
  2. Interno
    Utilizando la etiqueta style en la seccion head del documento HTML.
  3. Externo
    Mediante la definicion de un archivo u hoja externa con extension .css que se vincula con el documento HTML (utilizando la etiqueta link dentro del elemento head del documento HTML) y que en su atributo rel debe decir stylesheet y en su atributo href debe llevar la ruta que indica la ubicacion del archivo .css
🔼 Inicio

Versiones, documentación y enlaces de referencia

En CSS no se habla de versiones si no de modulos en particular y cada modulo va evolucionando a su ritmo

🔼 Inicio

Selectores básicos: Etiquetas, Identificadores y Clases

Los selectores identifican a que elemento del documento html se le va a aplicar el estilo que se defina con css

Existen 3 selectores basicos:

  1. Selectores de tipo o etiqueta:

    Funcionan simplenmente escribiendo el nombre de la etiqueta HTML.
  2. Identificadores:

    Se accede a traves del atributo id="" de un elemento HTML, el id es un identificador unico que no se vaa repetir nunca. Los id se usan una sola vez por lo tanto se recomienda su uso solo para Javascript. Los id se indican con el simbolo numeral # ejemplo #title
    NOTA: Dar estilos con id se considera un antipatron, es decir una mala practica, esto se refiere a que cada elemento HTMOL debe tener un nombre unico como valor del atributo id, no se debe repetir el mismo nombre del atirbuto id entro elemento HTML.
  3. Clases:

    Se accede a traves del atributo class="" de un elemento HTML. Las clases se indican con el punto . ejemplo: .container
    NOTA: Se recomienda que los nombres de las clases sean alucibos a lo que hacen cada clase.

Parrafo de prueba de selectores

Lorem ipsum dolor sit amet consectetur adipisicing elit. Eum molestias, ex cumque libero deleniti doloremque placeat? Officiis inventore eaque nisi? Soluta molestias veritatis iusto? Quod iusto veniam voluptatem estaliquid.

🔼 Inicio

Selectores avanzados

Selectores de hijos

Hay de dos tipos:

  1. Selector de hijos directos

    El selector de hijos directos solamente aplica a los elementos en el primer nivel, es decir: elemento_padre > elemento_hijo.

    • Primavera
    • Verano
    • Otoño
    • Invierno

    En el ejemplo anterior (de selector de hijos directos), se colorea todo el contenido de la etiqueta ul, es decir todo el cuadro que abarcan todos sus elementos internos.

  2. Selector de hijos descendientes

    El selector de hijos descendientes aplica sin importar el orden descendente en el que los hijos se encuentren con relacion a su padre, y se representa por un espacio en blanco, es decir: elemento_padre elemento_hijo elemento_nieto elemento_bisnieto

    • Primavera
    • Verano
    • Otoño
    • Invierno
    • En el ejemplo anterior (de selector de hijos descendientes), solamante se colorea el contenido de la etiqueta b (bold), es decir unicamente la palabra.

Selectores de hermanos

Los selectores de hermanos son elementos que estan en el mismo nivel del elemento de referencia.
Hay de dos tipos:

  1. Selector de hermanos (en general)

    Los selector de hermanos van a aplicar estilos a los elementos que son hermanos (es decir que estan en el mismo nivel) y que esten por debajo del elemento de referencia y su simbolo es la virgulilla ~.

    • Primavera
    • Verano
    • Otoño
    • Invierno
  2. Selector de hermanos (adyacentes)

    Los selector de hermanos adyacentes van a aplicar los estilos al elemento que coincida con la segunda parte de nuestro selector y que este por debajo inmediatamente del elemento de referencia y su simbolo es el mas +.

    • Primavera
    • Verano
    • Otoño
    • Invierno
🔼 Inicio

Selectores de atributos

Los selectores de atributos nos van a permitir aplicar estilos tomando como referencia cualquier atributo de un elemento HTML, para utilizar el selector de atributos hay que poner entre corchetes [] el atributo al que se va a hacer referencia.
NOTA: Para ver la informacion completa sobre este tema revisar la seccion "selectores de atributo" que se encuentra en el archivo styles.css dentro de la carpeta CSS.

🔼 Inicio

Selector universal (*)

El selector universal va a aplicar los estilos a todos los elementos o etiquetas que esten dentro del documento HTML, a todos absolutamente todos. El asterisco (*) representa el selector universal.

🔼 Inicio

Pseudo-clases

Pseudoclases de elementos interactivos

Las pseudoclases son un tipo de selector, pero es un selector especial.
Las pseudoclases ban a dar estilos dependiendo del contexto, posisión o estado del elemento al que le queremos aplicar estilos o dependiendo de ciertos estados que tenga el elemento HTML.
Las pseudoclases se distinguen porque empiezan con dos putos ":" por ejemplo:

.form-pseudoclases *:required{
border-color: yellow;
}


Las pseudoclases se utilizan mucho en los formularios.

Ejemplo de uso de pseudoclases en un formulario




Lorem ipsum dolor sit amet consectetur adipisicing elit. Ea perspiciatis magnam dignissimos dolore atque totam expedita natus praesentium eos, quae fugiat voluptatibus eum accusantium, laboriosam, sapiente voluptas voluptates provident molestias!

🔼 Inicio

Pseudoclases por la posición que ocupa el elemento dentro de su contenedor

  1. Mú de Aries
  2. Aldebarán de Tauro
  3. Saga & Canon de Géminis
  4. Death Mask de Cáncer
  5. Aioria de Leo
  6. Shaka de Virgo
  7. Dohko de Libra
  8. Milo de Escorpión
  9. Aioros de Sagitario
  10. Shura de capricornio
  11. Camus de Acuario
  12. Afrodita de Piscis

Esto es una header

Esto es un p

Esto es un div

Esto es un p

Esto es una section

Esto es un p

Esto es un div

Esto es un p

Esto es un footer

Ir a ejemplo uso pseudoclases :link, :visited, :hover y :active

Enlace a documentacion de Pseudo-clases en el sl sitio MDN (MozillaDeveloped Network).

🔼 Inicio

Pseudoelementos

Los Pseudoelementos dan estilos a partes especificas de un elemento y para diferenciarlos de las pseudoclases se utilizan doble par de dos puntos "::"

Pseudoelementos ::after y ::before

Estas pseudoclases nos van a permitir agregar contenido antes (::before) o despues (::after) de un elementoen particular.
NOTA Para usarlos necesitamos poner obligatoriamente el atributo content que va aindicar el texto de contenido que va a ir antes o despues.

Banday Myth Cloth Ex Saga de Géminis 500

Pseudoelementos ::first-letter, ::first-line y ::selection

::first-letter Hace referencia a la primera letra de una palabra o letra capital.
::first-line Hace referencia a la primera línea de un parrafo.
Los pseudoelementos ::first-letter y ::first-line aplican para cualquier elemento de bloque.
::selection Hace referencia a cuando el usuario selecciona el texto.

Ejemplo:

Lorem ipsum dolor, sit amet consectetur adipisicing elit. Alias voluptatem vero eveniet natus aliquam, sapiente quaerat molestiae numquam doloremque libero rerum non accusamus consequuntur, laudantium consequatur cumque quod neque nemo.

Pseudoelemento ::placeholder

Enlace a documentacion de Pseudoelementos en el sl sitio MDN (Mozilla Developed Network).

🔼 Inicio

Agrupación de selectores

La agrupacion de selectores mas sencilla es utilizando la coma "," y significa que a todos los selectores quevayan separados por coma "," se les aplicara el mismo estilo, ejemplo:

.form-agrupar-selectores input[type="text"],
.form-agrupar-selectores input[type="email"],
.form-agrupar-selectores textarea{
border-color: yellow;
background-color: black;
font-size: 20px;
}

🔼 Inicio

El algoritmo de CSS

En esta seccion veremos como funciona internamente CSS y como aplica los estilos.
El algoritmo de CSS es la forma en que el navegador va a aplicar los estilos a los documentos HTML y es de vital importancia comprender este concepto para poder entender como funciona CSS.

El algoritmo de css lo podemos subdividir en tres temas particulares:

  1. La cascada

    Conforme el navegador va leyendo las líneas de codigo que estan en el documento HTML, es decir el orden de aparicion, que es de arriba hacia abajo y de izquierda a derecha. La cascada es el mecanismo que tiene el navegador web para ir aplicando los estilos y en base a esto toma en cuenta lo siguiente en este orden:

    1. El origen del codigo

      Es decir de donde viene el codigo, y hay 3 posible origenes (conforme se mencionan a continuacion es como el navegador los va aplicando):
      • user agent stylesheet
        El usert agent stylesheet son los estilos que por defecto (by default) le va aplicando cada navegador a las etiquetas HTML.
        Cada navegador aplica sus propios estilos css por defecto.
      • Personalizaciones de usuario
        Todas las personalizaciones que nosotros como usuarios de nuestra propia computadora le hacemos al navegador o al sistema operativo, por ejemplo aumetar el zoom del navegador, poner un tema oscuro o claro al navegador, etc.
      • Los estilos del autor
        Es el codigo CSS que nosotros escribimos en nuestras hojas de estilo.

  2. 🔼 Inicio
  3. La especificidad del selector

    La especificidad es ver cual de los selectores que estan aplicando un estilo a un mismo elemento tienen mas peso (o especificidad) para css , el que mas peso o valor tenga, es el que al final quedara y aplicara el estilo al elemento y sobre escribira a los demas. El elemento que mas especificidad tiene en las hojas de estilo es cascada es el atributo style.

    Calculo de la especificidad

    La especificidad es el peso que tiene un selector cuando hay conflicto de estilos y se calcula de la siguiente forma.

    • Etiquetas y pseudoelementos--------------- 0,0,0,1
    • Clases, atributos y pseudoclases---------- 0,0,1,0
    • Identificadores----------------------------------- 0,1,0,0
    • Estilos en línea---------------------------------- 1,0,0,0
    • La palabra !important---- Rompe la especificidad

    Practicando cascada y especificidad

    "Se tolerante con los demás y estricto con tigo mismo." - Marco Aurelio
  4. La herencia

    Hace referencia a que los hijos heredan caracteristicas de sus padres, basicamente es la capacidad de un selector de obtener (heredar) los valores de sus ansestros más cercanos (padres, abuelos, bisabuelos, tatarabuelos), para aplicarla se usa el valor inherit, si queremos evitarla podemos asignar otro valor o inicializar la propiedad en cuestión con el valor initial.
    OJO: Hay ciertas propiedades que no se heredan como por ejemplo los bordes, el fondo, etc.

    Practicando herencia

    "Se tolerante con los demás y estricto con tigo mismo." - Marco Aurelio
    Enlace a documentacion de propiedades CSS que aplican la herencia.
🔼 Inicio

Reseteo y Normalización de estilos

Para inicializar a cero todos los estilos del navegador podemos utilizar una herramienta u hoja de reseteo de las cuales hay varias como estas:

Reset CSS

Esta hoja solo resetea algunos estilos, por lo que ya no es muy recomendado su uso.

Normalize.css

Es una libreria que busca normalizar, estandarizar o inicializar los estilos de los navegadores y es la mas recomendada para usar.

NOTA: Como las hojas de estilos Reset CSS y Normalize.css resetean y normalizan las etiqueta HTML por defecto, lo ideal (debido a la cascada) es que primero se apliquen estos estilos y despues nuestra hoja particular de estilos, por lo que al llamarlas dentro del elemento "head" de nuestro documento HTML con la etiqueta "link", deben ir primero (de arriba hacia a bajo) que nuestra hoja particular de estilos.

🔼 Inicio

Prefijos de los navegadores

Son unos prefijos que tenemos que anteponer a veces a las herramientas, por ejemplo:

Enlaces a documentacion de prefijos de los navegadores
Autoprefixer CSS
Can i use

🔼 Inicio

Márgenes negativos

Dentro del modelo de caja podemos aplicar valores negativos para los margenes porque los margenes son distancias externas, entonces al aplicar un margen negativo el elemento se movera hacia el lado sentido contrario.

Lo que no se puede aplicar padding negativo porque esta es la distancia que hay entre el content box y el border.

Ejemplos:

Lorem ipsum dolor sit amet consectetur adipisicing elit. Tenetur omnis optio nihil at odit ab quia minima, eaque ullam excepturi sapiente nobis placeat ducimus error impedit tempora consectetur quod explicabo.

🔼 Inicio

Enlaces, links de referencia y documentacion de css

Wikipedia
W3
W3
W3
MDN (Motzilla Developed Network)

CSS reference
Can i use
Guía de buenas practicas para escribir HTML y CSS: Code Guide
Pseudo-clases
Pseudoelementos

🔼 Inicio