This example shows a menu block with items as elements and an active item as a modifier. The CSS uses BEM naming combined with & in Sass (shown here as compiled CSS) to style them clearly.
Remember to compile Sass to CSS before using it in the browser.
Using & keeps your styles connected to the parent block, making your CSS easier to maintain.
Summary
Combining & with BEM helps write neat, organized CSS.
Use &__element for elements and &--modifier for modifiers inside a block.
This method reduces repetition and keeps styles easy to find and update.
Practice
(1/5)
1. What does the & symbol represent when used in Sass with BEM naming?
easy
A. It resets all styles inside the block.
B. It creates a new CSS class unrelated to the parent.
C. It imports external CSS files.
D. It refers to the current parent selector in the nested block.
Solution
Step 1: Understand the role of & in Sass
The & symbol in Sass means "use the current parent selector" inside nested rules.
Step 2: Connect with BEM naming
When combined with BEM, &__element or &--modifier appends to the parent block's class name.
Final Answer:
It refers to the current parent selector in the nested block. -> Option D
Quick Check:
& = current parent selector [OK]
Hint: Remember & means "this block" in nested Sass [OK]
Common Mistakes:
Thinking & creates a new unrelated class
Confusing & with a CSS variable
Using & to import files
2. Which of the following Sass snippets correctly uses & to create a BEM modifier for a block named .card?
easy
A. &__active { background: green; }
B. .card--active { background: green; }
C. &--active { background: green; }
D. &-active { background: green; }
Solution
Step 1: Identify BEM modifier syntax
Modifiers use double dashes: --modifier, so &--active appends --active to the parent block.
Step 2: Check other options
.card--active { background: green; } repeats the full class, not using &. &__active { background: green; } uses __ which is for elements, not modifiers. &-active { background: green; } uses a single dash, which is incorrect for BEM modifiers.
Final Answer:
&--active { background: green; } -> Option C
Quick Check:
Modifier = &--modifier [OK]
Hint: Use &--modifier for modifiers inside blocks [OK]
Common Mistakes:
Using single dash instead of double dash for modifiers
Confusing elements (__element) with modifiers (--modifier)
Writing full class name instead of using &
3. Given the Sass code below, what CSS will it generate?
A. The modifier should use double dashes: &--active instead of &-active.
B. The element selector &__item is invalid and should be &-item.
C. The parent selector .menu is missing a dot.
D. The color property cannot be inside &__item.
Solution
Step 1: Check BEM modifier syntax
Modifiers in BEM use double dashes --, so &-active is incorrect; it should be &--active.
Step 2: Verify element syntax
&__item is correct for elements, so no error there.
Final Answer:
The modifier should use double dashes: &--active instead of &-active. -> Option A
Quick Check:
Modifier syntax = &--modifier [OK]
Hint: Modifiers always use double dashes -- not single [OK]
Common Mistakes:
Using single dash for modifiers
Confusing element and modifier syntax
Thinking &__item is invalid
5. You want to style a BEM block .profile with an element avatar and a modifier highlighted. Which Sass code correctly combines & with BEM naming to style both the element and modifier inside .profile?