CursosEmpresasBlogLiveConfPrecios

Anidaciones

Clase 9 de 21 • Curso de Sass 2018

Clase anteriorSiguiente clase

Contenido del curso

Preprocesador Sass

  • 1
    Qué aprenderás sobre Sass

    Qué aprenderás sobre Sass

    00:37 min
  • 2
    Introducción al Curso de Sass

    Introducción al Curso de Sass

    00:49 min
  • 3
    Diferencias entre Sass, Stylus y Less

    Diferencias entre Sass, Stylus y Less

    02:37 min
  • 4
    Compilación de código en archivos CSS

    Compilación de código en archivos CSS

    09:13 min

Instalación

  • 5
    Estructura de CSS

    Estructura de CSS

    08:59 min

Variables

  • 6
    Variables

    Variables

    15:22 min
  • 7
    Reto

    Reto

    03:12 min
  • 8
    Solución al reto

    Solución al reto

    15:54 min

Anidaciones

  • 9
    Anidaciones

    Anidaciones

    Viendo ahora

Mixins

  • 10
    Mixins

    Mixins

    10:27 min
  • 11
    Continuando con Mixins

    Continuando con Mixins

    05:42 min
  • 12
    Uso de la directiva `content` (`block` en Stylus)

    Uso de la directiva `content` (`block` en Stylus)

    05:38 min
  • 13
    Extend

    Extend

    11:01 min

Funciones

  • 14
    Funciones

    Funciones

    05:43 min
  • 15
    Directiva

    Directiva

    03:25 min
  • 16
    Ejemplos de funciones

    Ejemplos de funciones

    05:42 min
  • 17
    Reto

    Reto

    01:13 min
  • 18

    Reto - Solución

    00:44 min

Controles de Flujo

  • 19
    Listas y directiva each

    Listas y directiva each

    05:24 min
  • 20
    Ciclos FOR/EACH

    Ciclos FOR/EACH

    04:07 min
  • 21
    Condicionales

    Condicionales

    11:05 min
Tomar el examen del curso
Resumen

En esta clase nos vamos a concentrar en las anidaciones. Para mostrarte esto vamos a trabajar con los botones.

Escuelas

  • Desarrollo Web
    • Fundamentos del Desarrollo Web Profesional
    • Diseño y Desarrollo Frontend
    • Desarrollo Frontend con JavaScript
    • Desarrollo Frontend con Vue.js
    • Desarrollo Frontend con Angular
    • Desarrollo Frontend con React.js
    • Desarrollo Backend con Node.js
    • Desarrollo Backend con Python
    • Desarrollo Backend con Java
    • Desarrollo Backend con PHP
    • Desarrollo Backend con Ruby
    • Bases de Datos para Web
    • Seguridad Web & API
    • Testing Automatizado y QA para Web
    • Arquitecturas Web Modernas y Escalabilidad
    • DevOps y Cloud para Desarrolladores Web
  • English Academy
    • Inglés Básico A1
    • Inglés Básico A2
    • Inglés Intermedio B1
    • Inglés Intermedio Alto B2
    • Inglés Avanzado C1
    • Inglés para Propósitos Específicos
    • Inglés de Negocios
  • Marketing Digital
    • Fundamentos de Marketing Digital
    • Marketing de Contenidos y Redacción Persuasiva
    • SEO y Posicionamiento Web
    • Social Media Marketing y Community Management
    • Publicidad Digital y Paid Media
    • Analítica Digital y Optimización (CRO)
    • Estrategia de Marketing y Growth
    • Marketing de Marca y Comunicación Estratégica
    • Marketing para E-commerce
    • Marketing B2B
    • Inteligencia Artificial Aplicada al Marketing
    • Automatización del Marketing
    • Marca Personal y Marketing Freelance
    • Ventas y Experiencia del Cliente
    • Creación de Contenido para Redes Sociales
  • Inteligencia Artificial y Data Science
    • Fundamentos de Data Science y AI
    • Análisis y Visualización de Datos
    • Machine Learning y Deep Learning
    • Data Engineer
    • Inteligencia Artificial para la Productividad
    • Desarrollo de Aplicaciones con IA
    • AI Software Engineer
  • Ciberseguridad
    • Fundamentos de Ciberseguridad
    • Hacking Ético y Pentesting (Red Team)
    • Análisis de Malware e Ingeniería Forense
    • Seguridad Defensiva y Cumplimiento (Blue Team)
    • Ciberseguridad Estratégica
  • Liderazgo y Habilidades Blandas
    • Fundamentos de Habilidades Profesionales
    • Liderazgo y Gestión de Equipos
    • Comunicación Avanzada y Oratoria
    • Negociación y Resolución de Conflictos
    • Inteligencia Emocional y Autogestión
    • Productividad y Herramientas Digitales
    • Gestión de Proyectos y Metodologías Ágiles
    • Desarrollo de Carrera y Marca Personal
    • Diversidad, Inclusión y Entorno Laboral Saludable
    • Filosofía y Estrategia para Líderes
  • Diseño de Producto y UX
    • Fundamentos de Diseño UX/UI
    • Investigación de Usuarios (UX Research)
    • Arquitectura de Información y Usabilidad
    • Diseño de Interfaces y Prototipado (UI Design)
    • Sistemas de Diseño y DesignOps
    • Redacción UX (UX Writing)
    • Creatividad e Innovación en Diseño
    • Diseño Accesible e Inclusivo
    • Diseño Asistido por Inteligencia Artificial
    • Gestión de Producto y Liderazgo en Diseño
    • Diseño de Interacciones Emergentes (VUI/VR)
    • Desarrollo Web para Diseñadores
    • Diseño y Prototipado No-Code
  • Contenido Audiovisual
    • Fundamentos de Producción Audiovisual
    • Producción de Video para Plataformas Digitales
    • Producción de Audio y Podcast
    • Fotografía y Diseño Gráfico para Contenido Digital
    • Motion Graphics y Animación
    • Contenido Interactivo y Realidad Aumentada
    • Estrategia, Marketing y Monetización de Contenidos
  • Desarrollo Móvil
    • Fundamentos de Desarrollo Móvil
    • Desarrollo Nativo Android con Kotlin
    • Desarrollo Nativo iOS con Swift
    • Desarrollo Multiplataforma con React Native
    • Desarrollo Multiplataforma con Flutter
    • Arquitectura y Patrones de Diseño Móvil
    • Integración de APIs y Persistencia Móvil
    • Testing y Despliegue en Móvil
    • Diseño UX/UI para Móviles
  • Diseño Gráfico y Arte Digital
    • Fundamentos del Diseño Gráfico y Digital
    • Diseño de Identidad Visual y Branding
    • Ilustración Digital y Arte Conceptual
    • Diseño Editorial y de Empaques
    • Motion Graphics y Animación 3D
    • Diseño Gráfico Asistido por Inteligencia Artificial
    • Creatividad e Innovación en Diseño
  • Programación
    • Fundamentos de Programación e Ingeniería de Software
    • Herramientas de IA para el trabajo
    • Matemáticas para Programación
    • Programación con Python
    • Programación con JavaScript
    • Programación con TypeScript
    • Programación Orientada a Objetos con Java
    • Desarrollo con C# y .NET
    • Programación con PHP
    • Programación con Go y Rust
    • Programación Móvil con Swift y Kotlin
    • Programación con C y C++
    • Administración Básica de Servidores Linux
  • Negocios
    • Fundamentos de Negocios y Emprendimiento
    • Estrategia y Crecimiento Empresarial
    • Finanzas Personales y Corporativas
    • Inversión en Mercados Financieros
    • Ventas, CRM y Experiencia del Cliente
    • Operaciones, Logística y E-commerce
    • Gestión de Proyectos y Metodologías Ágiles
    • Aspectos Legales y Cumplimiento
    • Habilidades Directivas y Crecimiento Profesional
    • Diversidad e Inclusión en el Entorno Laboral
    • Herramientas Digitales y Automatización para Negocios
  • Blockchain y Web3
    • Fundamentos de Blockchain y Web3
    • Desarrollo de Smart Contracts y dApps
    • Finanzas Descentralizadas (DeFi)
    • NFTs y Economía de Creadores
    • Seguridad Blockchain
    • Ecosistemas Blockchain Alternativos (No-EVM)
    • Producto, Marketing y Legal en Web3
  • Recursos Humanos
    • Fundamentos y Cultura Organizacional en RRHH
    • Atracción y Selección de Talento
    • Cultura y Employee Experience
    • Gestión y Desarrollo de Talento
    • Desarrollo y Evaluación de Liderazgo
    • Diversidad, Equidad e Inclusión
    • AI y Automatización en Recursos Humanos
    • Tecnología y Automatización en RRHH
  • Finanzas e Inversiones
    • Fundamentos de Finanzas Personales y Corporativas
    • Análisis y Valoración Financiera
    • Inversión y Mercados de Capitales
    • Finanzas Descentralizadas (DeFi) y Criptoactivos
    • Finanzas y Estrategia para Startups
    • Inteligencia Artificial Aplicada a Finanzas
    • Domina Excel
    • Financial Analyst
    • Conseguir trabajo en Finanzas e Inversiones
  • Startups
    • Fundamentos y Validación de Ideas
    • Estrategia de Negocio y Product-Market Fit
    • Desarrollo de Producto y Operaciones Lean
    • Finanzas, Legal y Fundraising
    • Marketing, Ventas y Growth para Startups
    • Cultura, Talento y Liderazgo
    • Finanzas y Operaciones en Ecommerce
    • Startups Web3 y Blockchain
    • Startups con Impacto Social
    • Expansión y Ecosistema Startup
  • Cloud Computing y DevOps
    • Fundamentos de Cloud y DevOps
    • Administración de Servidores Linux
    • Contenerización y Orquestación
    • Infraestructura como Código (IaC) y CI/CD
    • Amazon Web Services
    • Microsoft Azure
    • Serverless y Observabilidad
    • Certificaciones Cloud (Preparación)
    • Plataforma Cloud GCP

Platzi y comunidad

  • Platzi Business
  • Live Classes
  • Lanzamientos
  • Executive Program
  • Trabaja con nosotros
  • Podcast

Recursos

  • Manual de Marca

Soporte

  • Preguntas Frecuentes
  • Contáctanos

Legal

  • Términos y Condiciones
  • Privacidad
  • Tyc promociones
Reconocimientos
Reconocimientos
Logo reconocimientoTop 40 Mejores EdTech del mundo · 2024
Logo reconocimientoPrimera Startup Latina admitida en YC · 2014
Logo reconocimientoPrimera Startup EdTech · 2018
Logo reconocimientoCEO Ganador Medalla por la Educación T4 & HP · 2024
Logo reconocimientoCEO Mejor Emprendedor del año · 2024
De LATAM conpara el mundo
YoutubeInstagramLinkedInTikTokFacebookX (Twitter)Threads
      Sergio Toshio Minei

      Sergio Toshio Minei

      student•
      hace 7 años
        Alexander Valencia

        Alexander Valencia

        student•
        hace 7 años
        Jonathan Martinez Martinez

        Jonathan Martinez Martinez

        student•
        hace 5 años
      Alan Mena

      Alan Mena

      student•
      hace 8 años
        Daniel Martínez

        Daniel Martínez

        teacher•
        hace 8 años
        Alan Mena

        Alan Mena

        student•
        hace 8 años
      Sergio Toshio Minei

      Sergio Toshio Minei

      student•
      hace 7 años
        Emerson Cedeño

        Emerson Cedeño

        student•
        hace 7 años
        Sergio Toshio Minei

        Sergio Toshio Minei

        student•
        hace 7 años
      Fabricio Micheli

      Fabricio Micheli

      student•
      hace 7 años
      Pablo Pérez Chueca

      Pablo Pérez Chueca

      student•
      hace 7 años
        Francisco Manuel Velásquez Escobar

        Francisco Manuel Velásquez Escobar

        student•
        hace 7 años
        Enrique Devars

        Enrique Devars

        teacher•
        hace 7 años
      Juan C Felizzola

      Juan C Felizzola

      student•
      hace 8 años
        Gerardo Nava Pereda

        Gerardo Nava Pereda

        student•
        hace 7 años
      José Heriberto López Ruiz

      José Heriberto López Ruiz

      student•
      hace 6 años
        Massimo Di Berardino

        Massimo Di Berardino

        student•
        hace 6 años
        Victor Juan Morales Romo

        Victor Juan Morales Romo

        student•
        hace 6 años
      Enzo Ivan Valdez

      Enzo Ivan Valdez

      student•
      hace 5 años
      Pablo Andres

      Pablo Andres

      student•
      hace 7 años
        Enrique Espina

        Enrique Espina

        student•
        hace 7 años
        Carlos Jesús Fernández Salazar

        Carlos Jesús Fernández Salazar

        student•
        hace 7 años
      Hernán Arica

      Hernán Arica

      student•
      hace 6 años
      Ivan Daniel Cuevas

      Ivan Daniel Cuevas

      student•
      hace 5 años
      Gerardo Ruiz

      Gerardo Ruiz

      student•
      hace 7 años
        Diego Forero

        Diego Forero

        Team Platzi•
        hace 7 años
        Jose Antonio Padron Fernandez

        Jose Antonio Padron Fernandez

        student•
        hace 7 años
      jorge espinoza

      jorge espinoza

      student•
      hace 7 años
      Anderson Gil Petit

      Anderson Gil Petit

      student•
      hace 6 años
      Asis Melgarejo Lopez

      Asis Melgarejo Lopez

      student•
      hace 6 años
      Juan Vicente Cordero

      Juan Vicente Cordero

      student•
      hace 7 años
      Jhon Alexander Romero Gonzaga

      Jhon Alexander Romero Gonzaga

      student•
      hace 6 años
        Christian Velázquez

        Christian Velázquez

        student•
        hace 6 años
      Cesar Israel Aguilar Carrera

      Cesar Israel Aguilar Carrera

      student•
      hace 6 años
      Enrique Alejandro Saban

      Enrique Alejandro Saban

      student•
      hace 6 años
        Yamid Vélez Muñoz

        Yamid Vélez Muñoz

        student•
        hace 6 años
      Fabricio Micheli

      Fabricio Micheli

      student•
      hace 7 años
        Edward Steven Ramos Palacios

        Edward Steven Ramos Palacios

        teacher•
        hace 6 años

      Creo que las anidaciones pueden ser muy útiles para las pseudoclases. Algo así:

      .btn { color: red; &:hover { color:blue; } }

      exacto

      Buen Aporte!

      En proyectos grandes cuya finalidad es crear componentes reutilizables, la metodología BEM juega un papel muy importante.

      SASS:

      .Block { &__Element { &-Modifier { } } }

      CSS:

      .Block__Element-Modifier

      Un detalle, el Modifier, va con DOS guiones:

      .Block { &__Element { &--Modifier { } } }```

      Incluso es válido tener una sintaxis personalizada, pues en realidad la idea es que se respete el concepto base de tener esos tres niveles. (Bloque, elemento, modificador)

      En el sitio oficial de la metodología lo manejan de las dos formas:
      Con uno y con dos.

      BEM.png

      Por jerarquía me hace un poco más de sentido que el modificador maneje solo un guión. Pero en efecto. Es indistinto.

      Anidaciones

      .btn { font-size: 15pt; &__icon { font-size: .6em; } &.btn--info { background-color: $color-info; } }

      El comodín & se usa para hacer referencia al padre.

      Pueden ver el resumen completo del curso aquí.

      oiga mi hermano, ese repositorio de los resúmenes de los cursos suyo en github está muy elegante! felicitaciones! #aplausos

      muchas gracias @ecedenyo 😃

      Acá escribo una serie de definiciones interesantes para entender cada uno de los componentes de la metodología BEM:

      BLOCK: Entidad individual que tiene significado por sí misma (Ej. header, container, menu, input).

      ELEMENT: Parte de un bloque que no tiene sentido individual y está semánticamente vinculado a una entidad de tipo bloque (Ej. Menu item, list item, header title)

      MODIFIER: Es una bandera de un bloque o elemento. Se usa para cambiar o modificar una apariencia o un comportamiento (Ej. disabled, highlighted, fixed)

      ¿Hay alguna forma de hacer que el IntelliSense de VS Code sugiera las variables definidas en Sass?

      Tengo la misma duda

      Pueden hacerlo con esta extensión 😃

      SCSS IntelliSense

      Block Element Modifier = BEM

      Para referirnos al padre usamos &

      Ahora es más útil (entre otras convenciones de naming):

      A partir del min. 11:03 da la impresión de que debió de haber mostrado la pantalla, pero no lo hizo. ¿Es a caso un error de edición?

      ¡Hola Jose! Gracias por tu feedback, lo vamos a comunicar al equipo para solucionarlo.

      Hola Pepe el se referia a que iban en el mismo niven asi ya que btn--ejemplo se refiere a modificador si tu cliente te pide cambiarlo varias veces

      .btn{ display: inline-block; color: $buttoncolor; background-color: $buttonbackgroundcolor; line-height: 2.5; border-radius: $border-radius; &__icon{ font-size: $buttonfontsize; } } .btn--info{ background-color:$color-info; }

      Pueden declarar la variable: $font-size: 62.5%; _Y esto los dejará jugar con rem, ejemplo:: 1rem == 10px.

      Qué muestra acá? Alguien se da cuenta?

      &__icon { font-size:.6em; } &.btn--info { background-color: $color-info; } }

      Exacto, también se podría usar

      & &--info { ... }

      😄

      Que buen curso!!!!! lo necesitaba muchoooo gran profesor!!

      En algunas propiedades de CSS también podemos utilizar anidaciones como por el ejemplo con padding o con margin. Esto se hace de la siguiente forma:

      //Código en Sass p { padding: auto { bottom: 25px; top: 50px; right: 30px; }
      /*Código compilado en CSS*/ p { padding: auto; padding-bottom: 25px; padding-top: 50px; padding-right: 30px; }

      Si llama al padre con & se heredan los atributos del padre o no los hereda?

      El signo de & es como un placeholder que completa con el padre para crear al final el nombre de la clase, en ningún momento pone los atributos definidos para la clase padre dentro de la clase anidada. Por ejemplo

      .Boton { width: 100px &--default { background: blue color: white } &--success { background: green color: white } }

      Esto da como salida

      .Boton { width: 100px } .Boton--default { background: blue color: white } .Boton--success { background: green color: white }

      Para usarlo pones la clase Boton y Boton--default en el atributo class del tag html, si usas solo Boton--default el tag no va a tener el width del 100px

      tengo una duda, no entendí muy bien el final del vídeo, cual de las 3 opciones es mejor para anidar?, personalmente me parece mejor la opción 1 pero quiero saber sus opiniones:

      opción 1 .btn{ &--default { } &--success { } } opción 2 .btn{ } btn--default { } btn--success { } opción 3 .btn{ btn--default { } btn--success { } }```

      BEM

      Para los que quieran profundizar en la metodologia BEM: https://en.bem.info

      La diferencia entre:

      .btn .btn__info{ }``` y

      .btn__info{ }

      es que la primera tiene un valor de 20y la segunda un valor de 10.

      Para no perderse en los niveles de anidamiento, sería conveniente hacer como en otros lenguajes de programación, en la medida de lo posible de las exigencias del código, no extender los anidamientos más haya de cuatro niveles.

      http://getbem.com/

      Gracias por el dato

      Excelentes conceptos

      No se vió lo que hizo al final.

      En Bootstrap se usa por ejemplo : class="btn btn-info", se puede lograr esto ?

      Yo como propuesta, sin ser muy conocedor del frontend ni de Bootstrap usaria extend para replicar la misma funcionalidad que hace class=“btn btn-info”,

      Te dejo mi propuesta o mi solución

      Código sass

      .btn { display: inline-block; width: 100px; height: 80px; background-color: grey; } .btn-info { @extend .btn; color: #fff; background-color: #5bc0de; border-color: #46b8da; }

      Este código es solo un ejemplo y nos daria como resultado algo asi :

      .btn, .btn-info { display: inline-block; width: 100px; height: 80px; background-color: grey; } .btn-info { color: #fff; background-color: #5bc0de; border-color: #46b8da; }

      Considero que con esta alternativa y pensando en que son clases para usar en botones, se podria usar de la siguiente forma

      <button type="button" class="btn-info">Info</button>

      Pregunta… las anidaciones son recomendables utilizarlas siempre utilizarlas con la metodología BEM? o podemos también usarlas para reflejar alguna estructura del DOM más compleja para que sea más legible en el CSS?

      BEM es una metodología muy transversal. Desde mi opinión yo te recomiendo que siempre la uses, ya que de esta forma tus estilos no van acoplados a la estructura de tu HTML. BEM te permite tener tus estilos reusables.