Help improve SovranCode?

Google Analytics can measure anonymous usage after you choose Allow. Essential account and progress features work either way.

Back to CSS course

CSS final assessment

First make decisions across all 16 lessons, then prove you can apply the core layout and accessibility techniques in code.

Cumulative CSS assessment

Answer 16 questions across the course. Score at least 80% to pass this knowledge check, then apply your skills in the capstone. Account scores are recomputed on the server. This is a learning check, not certification.

1. A stylesheet request returns the site's HTML error page with status 200. What repairs the missing styles?
2. A .menu contains nested lists. Only outer items should have borders. Which rule fits?
3. In @layer base, components, base uses #notice {color:red} and components uses .notice {color:blue}. Both match normal author rules. Which wins?
4. At a 1000px viewport and 16px root font, what is clamp(1rem, 4vw, 3rem)?
5. A border-box card is 320px wide with 24px padding and 2px borders on each side. What content width remains?
6. An absolute badge sticks to the viewport instead of its card. Which first change establishes local ownership?
7. A flexible text item forces a toolbar wide even though flex-shrink is enabled. Which repair addresses its minimum?
8. A 280px container overflows repeat(auto-fit, minmax(320px, 1fr)). Which repair preserves the intended card minimum when space permits?
9. The same card is in a 250px sidebar and a wide main area. Which condition should drive its layout?
10. A heading inherits a fixed 18px line-height but grows to 32px text. What makes inherited spacing scale appropriately?
11. White hero text becomes unreadable when its image fails. Which repair addresses both failure and variable image brightness?
12. A tab looks selected only while hovered. Which change represents a persistent current page?
13. A menu is clipped by its rounded overflow:hidden card even with z-index:999999. What should you inspect first?
14. A hover animation shifts surrounding cards. Which replacement reduces layout movement and supports reduced motion?
15. A legacy unlayered .notice rule overrides a layered component unexpectedly. What restores the intended normal-rule hierarchy?
16. At keyboard focus a button has no indicator; in reduced motion its label disappears. What must change?

Loading saved work…

Build the CSS capstone
PART 2 · APPLIED CSS

Make three interfaces pass practical checks.

The checks inspect the CSS you wrote. Passing them confirms the requested rules are present; inspect the preview yourself for visual quality and accessibility.

0/3 challenges passed

Build a resilient card grid

Complete the stylesheet so the cards form responsive columns without overflowing a narrow viewport.

Grid · minmax() · box sizing · intrinsic sizing

Automatic requirements

  • .cards uses CSS Grid.
  • Tracks use repeat() and minmax() for responsive columns.
  • The grid has a nonzero gap.
  • Long card text can wrap instead of forcing overflow.
Preview up to date

Code

<!doctype html>
<html lang="en">
<head>
  <meta charset="utf-8">
  <meta name="viewport" content="width=device-width, initial-scale=1">
  <title>Responsive cards</title>
  <style>
* { box-sizing: border-box; }
body { margin: 0; padding: 1rem; font: 1rem/1.6 system-ui; }
.cards {
  /* Create responsive tracks and a gap. */
}
.card {
  padding: 1rem;
  border: 2px solid #254fc0;
  /* Keep long content inside the card. */
}
  </style>
</head>
<body>
<main><h1>Learning tracks</h1><section class="cards"><article class="card"><h2>HTML</h2><p>Structure meaningful pages.</p></article><article class="card"><h2>CSS</h2><p>Style resilient interfaces.</p></article><article class="card"><h2>Accessibility</h2><p class="long">averylongunbrokenlabelthatmustnotbreakthelayout</p></article></section></main>
</body>
</html>

Result

Practice here: edit your HTML or CSS and compare the result. Live preview updates after a short pause. Scripts, form submissions, and external resources are blocked. Wide previews scroll inside this panel. Running code does not grade or save it; use the separate learning and save controls.

Loading saved work…

SovranCode
Learn
Learn on SovranCodeCourses5 free learning paths→ExercisesPractice with live challenges→GuidesDirect answers for developers→E-booksFocused field guides→
Build
Build on SovranCodeProjectsPortfolio-ready builds→TemplatesSovranCode team marketplace→Developer toolsFast browser utilities→
Connect
Connect on SovranCodeForumQuestions and discussions→JournalPractical development notes→AboutWhy SovranCode exists→PricingFree, Plus, and Student Plus→
Services
SearchCreate account
Explore SovranCodeLearn, practice, and build.
LearnCourses5 free learning paths→ExercisesPractice with live challenges→GuidesDirect answers for developers→E-booksFocused field guides→
BuildProjectsPortfolio-ready builds→TemplatesSovranCode team marketplace→Developer toolsFast browser utilities→
ConnectForumQuestions and discussions→JournalPractical development notes→AboutWhy SovranCode exists→PricingFree, Plus, and Student Plus→
Search
THE SOVRANCODE PLATFORM

Learn enough to build something real.

Start learning
100Learning modules
39exercises
6projects
2templates
4E-books
4guides
SovranCode

A free-first programming platform for people who learn best by understanding, practicing, and building.

● Core learning content is free
FollowYouTubePinterestX
LearnHTML courseCSS courseJSJavaScript coursePython courseC courseSQL courseDeveloper guidesAll exercises
BuildProjectsTemplate marketBuyer libraryTemplate licensesDeveloper toolsE-books
CommunityForumJournalContact
CompanyPricing previewAboutServicesPrivacyEnglish edition. Additional languages will be published only after full editorial review.
© 2026 SovranCode · Built for curious minds.Next.js · Node.js · PostgreSQL