Bird
Raised Fist0
CSSmarkup~20 mins

ID selectors in CSS - Practice Problems & Coding Challenges

Choose your learning style10 modes available

Start learning this pattern below

Jump into concepts and practice - no test required

or
Recommended
Test this pattern10 questions across easy, medium, and hard to know if this pattern is strong
Challenge - 5 Problems
🎖️
ID Selector Master
Get all challenges correct to earn this badge!
Test your skills under time pressure!
selector
intermediate
2:00remaining
What color will the text be?
Given the following HTML and CSS, what color will the text inside the <h1> tag appear as in the browser?
CSS
/* CSS */
#title {
  color: blue;
}

h1 {
  color: red;
}

/* HTML */
<h1 id="title">Hello World</h1>
ARed
BBlack (default)
CBlue
DGreen
Attempts:
2 left
💡 Hint
Remember that ID selectors have higher specificity than element selectors.
📝 Syntax
intermediate
2:00remaining
Which CSS rule correctly selects the element with id 'main'?
Choose the correct CSS selector to style the element with id="main".
A#main { background: yellow; }
B.main { background: yellow; }
Cmain { background: yellow; }
D*main { background: yellow; }
Attempts:
2 left
💡 Hint
ID selectors start with a special symbol.
rendering
advanced
2:00remaining
What is the background color of the div?
Given this HTML and CSS, what background color will the <div> have when rendered?
CSS
/* CSS */
#box {
  background-color: lightgray;
}

.container #box {
  background-color: orange;
}

/* HTML */
<div class="container">
  <div id="box">Content</div>
</div>
AOrange
BLightgray
CTransparent
DWhite
Attempts:
2 left
💡 Hint
Look at the specificity and the selector that matches the element.
accessibility
advanced
2:00remaining
Why should IDs be unique in HTML?
Select the best reason why each ID attribute value should be unique on a webpage.
ATo make the page look better visually
BTo ensure CSS styles apply only once per page
CTo reduce page load time
DTo allow JavaScript and assistive technologies to identify elements uniquely
Attempts:
2 left
💡 Hint
Think about how scripts and screen readers find elements.
🧠 Conceptual
expert
3:00remaining
What happens if multiple elements share the same ID?
If two or more elements have the same id attribute value, what is the most likely effect in CSS and JavaScript?
ACSS styles apply only to the first element, and JavaScript throws an error
BCSS styles apply to all elements with that ID, and JavaScript selects only the first element with that ID
CCSS styles apply to none, and JavaScript selects all elements with that ID
DCSS styles apply to all, and JavaScript selects all elements with that ID
Attempts:
2 left
💡 Hint
Consider how browsers handle duplicate IDs in styling and scripting.

Practice

(1/5)
1. What does an ID selector in CSS target?
#header { color: blue; }
easy
A. All elements of a specific type
B. A single unique element with the specified ID
C. All elements with the specified class
D. All elements inside a container

Solution

  1. Step 1: Understand the meaning of # in CSS

    The # symbol in CSS is used to select an element by its unique ID attribute.
  2. Step 2: Identify what an ID selector targets

    An ID selector targets exactly one element that has the matching ID value.
  3. Final Answer:

    A single unique element with the specified ID -> Option B
  4. Quick Check:

    ID selector = unique element [OK]
Hint: ID selectors start with # and target one unique element [OK]
Common Mistakes:
  • Confusing ID selector with class selector (which uses .)
  • Thinking ID selects multiple elements
  • Using ID selector without # symbol
2. Which of the following is the correct syntax to select an element with ID main-content in CSS?
easy
A. #main-content { }
B. .main-content { }
C. main-content { }
D. *main-content { }

Solution

  1. Step 1: Recall the syntax for ID selectors

    ID selectors use the # symbol followed by the ID name without spaces.
  2. Step 2: Match the correct syntax

    The correct syntax is #main-content { } to select the element with ID "main-content".
  3. Final Answer:

    #main-content { } -> Option A
  4. Quick Check:

    ID selector syntax = #idname [OK]
Hint: Use # before ID name, no spaces [OK]
Common Mistakes:
  • Using . instead of # for ID
  • Omitting # symbol
  • Adding extra characters like * before ID
3. Given the HTML:
<div id="box">Hello</div>

And CSS:
#box { color: red; } .box { color: blue; }

What color will the text inside the div appear?
medium
A. Blue
B. Black (default)
C. Red
D. Both red and blue

Solution

  1. Step 1: Identify the selectors applied

    The div has an ID "box" but no class "box". The CSS has an ID selector #box and a class selector .box.
  2. Step 2: Determine which selector applies

    Since the div has ID "box", the #box selector applies, setting color to red. The class selector does not apply.
  3. Final Answer:

    Red -> Option C
  4. Quick Check:

    ID selector overrides class selector = red [OK]
Hint: ID selectors override class selectors in CSS [OK]
Common Mistakes:
  • Confusing class and ID selectors
  • Assuming both styles apply simultaneously
  • Ignoring CSS specificity rules
4. What is wrong with this CSS code if the element with ID nav is not styled?
#nav { background-color: yellow color: white }
medium
A. CSS property name is incorrect
B. ID selector should use a dot (.) instead of #
C. ID selector must be written as nav#
D. Missing semicolon after property value

Solution

  1. Step 1: Check CSS syntax for property declarations

    Each CSS property declaration must end with a semicolon ;. Omitting semicolons between properties causes errors.
  2. Step 2: Identify the missing semicolon

    The code #nav { background-color: yellow color: white } is missing a semicolon after yellow. This can cause some browsers to ignore the rule.
  3. Final Answer:

    Missing semicolon after property value -> Option D
  4. Quick Check:

    CSS properties end with ; [OK]
Hint: Always end CSS declarations with a semicolon [OK]
Common Mistakes:
  • Using . instead of # for ID selectors
  • Writing selector as nav# instead of #nav
  • Misspelling CSS property names
5. You want to style only the element with ID footer to have a green background and white text. Which CSS code correctly does this and ensures no other elements are affected?
hard
A. #footer { background-color: green; color: white; }
B. .footer { background-color: green; color: white; }
C. footer { background-color: green; color: white; }
D. *#footer { background-color: green; color: white; }

Solution

  1. Step 1: Identify the correct selector for an ID

    To select an element by ID, use #idname. Here, #footer targets the element with ID "footer".
  2. Step 2: Confirm the CSS properties and uniqueness

    The properties background-color: green; and color: white; style the background and text color. Using #footer ensures only that element is styled.
  3. Final Answer:

    #footer { background-color: green; color: white; } -> Option A
  4. Quick Check:

    ID selector with # targets one element [OK]
Hint: Use #footer to style only the footer element [OK]
Common Mistakes:
  • Using .footer which targets class, not ID
  • Using element selector footer which targets all footer tags
  • Adding unnecessary * before #footer