CSS Debugging
๐ Covered in this chapter:
DevTools ยท Inspect ยท Computed Styles ยท Box Model ยท Flexbox Inspector ยท Grid Inspector ยท Specificity ยท Overflow ยท Z-index ยท Responsive Mode ยท Validation ยท Cross-Browser
Welcome to Chapter 48: CSS Debugging โ part of the CSS Complete Roadmap. This lesson covers all subtopics with clear explanations, code examples, and best practices used in professional web development.
๐ What You Will Learn
- Chrome/Firefox DevTools CSS debugging workflow
- Box model, computed styles, and specificity inspection
- Flexbox and Grid visual inspectors
- Z-index stacking context debugging
- Responsive device mode and cross-browser testing
๐ก Why This Matters
Every professional CSS developer spends significant time in DevTools. Knowing how to quickly find why a style is not applying, why flexbox is not centering, or why z-index is not working โ these skills save hours of frustration.
1DevTools Essentials โ Inspect & Computed
Open DevTools: F12 or Right-click โ Inspect. Key panels:
- Elements โ Styles: All applied rules, crossed-out overridden rules
- Elements โ Computed: Final computed value after cascade
- Elements โ Layout (Box Model): Visual margin/padding/border/content diagram
- Filter in Styles panel: Type property name to find specific rule
- :hov button: Force :hover, :focus, :active states without interacting
CSS โ Debugging Specificityโถ Try in Editor
/* Styles panel shows WHY rule crossed out */
/* Higher specificity rule wins */
/* Look for: inline styles > #id > .class > element */
/* DevTools shows selector specificity in tooltip */
2Flexbox & Grid Inspectors
Chrome DevTools lo flex/grid container select cheste overlay badges kanipistayi:
- Flexbox: "flex" badge click โ shows main/cross axis, item sizes, gap visualization
- Grid: "grid" badge click โ shows grid lines, track sizes, named areas
- Flexbox editor: Toggle justify-content, align-items visually without writing code
- Grid editor: Add/remove tracks, change fr units interactively
CSS โ Common Flex Debugโถ Try in Editor
.container {
display: flex;
align-items: center; /* not working? */
/* Check: does container have height? */
/* align-items needs cross-axis space */
min-height: 200px; /* add explicit height */
}
3Z-index, Overflow & Responsive Debugging
CSS โ Z-index Debug Checklistโถ Try in Editor
/* z-index not working? Check:
1. Is element position: relative/absolute/fixed/sticky?
2. Is it in a lower stacking context?
3. Parent with opacity < 1 creates new context
4. Parent with transform creates new context
5. Parent with z-index creates new context
*/
.modal { z-index: 1000; position: fixed; }
.dropdown { z-index: 100; position: absolute; }
/* Modal always above dropdown โ
*/
Overflow debug: Red outline trick โ * { outline: 1px solid red; } temporarily to find overflowing elements.
Responsive mode: DevTools โ Toggle device toolbar (Ctrl+Shift+M) โ test breakpoints without resizing browser.
4CSS Validation & Cross-Browser Testing
- W3C CSS Validator: jigsaw.w3.org/css-validator โ syntax errors catch
- caniuse.com: Feature support across browsers
- BrowserStack: Real Safari, Firefox, Edge on different OS
- Stylelint: Automated CSS linting in CI/CD pipeline
- Common issues: Flexbox gap in old Safari, container queries in Firefox ESR
โ ๏ธ Common Mistakes
- Changing CSS blindly without DevTools โ guessing specificity
- Not checking Computed tab โ wondering why flex: 1 not working
- Testing only in Chrome โ Safari flexbox bugs miss avuthayi
- Ignoring crossed-out rules in Styles panel โ cascade confusion
- Not using device mode for mobile breakpoint testing
โ
Quick Recap
- F12 โ Elements โ Styles for applied rules, Computed for final values
- Flexbox/Grid badges in DevTools for visual layout debugging
- z-index issues = stacking context problem โ check parents
- Force :hover/:focus states with DevTools :hov button
- Responsive device mode (Ctrl+Shift+M) for breakpoint testing
- caniuse.com before using new CSS features in production