Questions
44 of 49
1What is the display property in CSS used for?
2What is the default display value for <div>, <span>, <p>, and <a> tags?
3What is the difference between display: block and display: inline?
4How does display: inline-block behave?
5What happens when you set display: none on an element?
6How is display: none different from visibility: hidden?
7Can display: none affect layout reflow or accessibility?
8What’s the effect of display: block on inline elements like <span>?
9What’s the difference between display: table and actual HTML <table> elements?
10How do replaced elements (like <img> or <input>) behave with different display values?
11How is display: flex different from display: block?
12What is the difference between display: grid and display: flex?
13What happens if you apply display: inline-flex to a container?
14What is the difference between display: contents and display: none?
15What is display: list-item, and when is it used?
16How does display: run-in work, and why is it rarely used?
17What’s the difference between display: inline-grid and display: grid?
18How can you make an element behave like both inline and block elements?
19What happens to child elements when the parent has display: contents?
20How does the display property affect box model calculations?
21How can you change a block-level element to behave like an inline element without changing its tag?
22How do you center elements using display: flex or display: grid?
23How can you hide elements but keep their layout space?
24What happens to child elements when their parent has display: none?
25How can display: contents help improve semantic markup but hurt accessibility?
26What happens if you set display: flex on the <body> tag?
27How do you use display to build responsive layouts?
28What is the difference between using display and position to arrange elements?
29How can you visually hide an element but keep it accessible for screen readers?
30How does display affect stacking and z-index behavior?
31Does display: none remove an element from the DOM?
32Can an element with display: none trigger CSS transitions or animations?
33How does display interact with CSS pseudo-elements (::before, ::after)?
34What is the difference between visibility: collapse and display: none in table elements?
35How can you make text and icons align properly using display values?
36How do block formatting contexts relate to display types?
37What happens if you apply display: table to a flex container?
38How does display behave differently for replaced vs. non-replaced elements?
39Can display be animated using CSS transitions?
40How does display affect the accessibility tree and ARIA roles?
41How can you make a <li> element appear horizontally instead of vertically?
42How do you create a two-column layout without using float or position, using only display?
43How do you make an image and text sit side by side neatly?
44How would you make a navigation menu horizontally aligned using display?
45How can you make all elements behave as border-box and block-level by default?
46How would you use display: flex to make a footer stick to the bottom?
47How can display: grid simplify responsive design compared to floats?
48When would you prefer display: inline-flex over display: flex?
49How can you use display: contents to remove extra wrappers in semantic HTML structures? How can incorrect use of display lead to accessibility or SEO problems?
44 / 49

How would you make a navigation menu horizontally aligned using display?

Creating a Horizontal Navigation Menu Using CSS Display

Navigation menus are typically lists (<ul> with <li> items). By default, list items stack vertically. Using CSS display properties, you can align them horizontally without floats or positioning.

Common Approaches
  1. 1

    display: flex on the <ul> – Makes the list a flex container, aligning <li> children horizontally with control over spacing and alignment.

  2. 2

    display: inline-block on <li> – Each item behaves like an inline block, flowing horizontally while allowing padding and margin control.

  3. 3

    display: grid on the <ul> – Define columns to place menu items horizontally with precise spacing.

Example: Horizontal Menu Using Flex
Example: Horizontal Menu Using Inline-Block

Flex is recommended for responsive menus because it handles spacing, alignment, and wrapping more gracefully than inline-block. inline-block works for simpler static menus.

Best Practices
  1. 1

    Use flex for responsive and flexible horizontal menus.

  2. 2

    Use gap instead of individual margins for consistent spacing between items.

  3. 3

    Remove default list padding and bullets using list-style: none; padding: 0; margin: 0;.

  4. 4

    Use inline-block for simpler menus without flex dependencies, but be aware of whitespace issues between items.

Difficulty: 3/10
Topics: display property, flexbox, inline-block

Scenario Questions

0-2 years experience
  1. 1

    We have a simple <ul> navigation list. How would you use CSS display to make the list items appear side‑by‑side in one row?

  2. 2

    If you set display:inline on each <li>, what will the layout look like and why might that be insufficient?

  3. 3

    What difference does display:inline‑block make compared to inline for aligning the menu items horizontally?

2-5 years experience
  1. 1

    Your current nav uses float to line items up horizontally, but the dropdown submenu breaks the layout. How would you refactor the CSS using modern display values to keep the main menu horizontal and handle the dropdown?

  2. 2

    During a code review you notice the navigation bar overflows on mobile because the flex container doesn’t wrap. How would you adjust the display properties to make it responsive while preserving horizontal alignment?

  3. 3

    A teammate reports that using display:table‑cell for the menu caused extra spacing in some browsers. How would you replace it with a more reliable display technique and what trade‑offs would you consider?

5-8 years experience
  1. 1

    The navigation component must support LTR and RTL languages and allow items to be injected at runtime. How would you architect the CSS (display, flex, etc.) to keep the menu horizontally aligned in all cases, and what performance implications do you watch for?

  2. 2

    You discover that hovering a menu item triggers a display change that causes a full reflow. How would you redesign the component to minimize layout thrashing while preserving the horizontal layout?

  3. 3

    When the nav is rendered server‑side with critical CSS inlined, the external stylesheet sometimes fails to load. What CSS strategy using display properties would you employ to ensure the menu still aligns horizontally in that fallback scenario?

8+ years experience
  1. 1

    Our legacy monolith uses a table‑based navigation with display:table‑cell. We’re moving to a micro‑frontend architecture. How would you plan the migration to a flex‑based horizontal menu while guaranteeing backward compatibility across dozens of teams?

  2. 2

    You’re defining a cross‑team design‑token system for layout. How would you abstract the horizontal navigation alignment so teams can reference a single token yet choose between flex or grid implementations without breaking existing pages?

Follow-up Questions

  • What changes if you switch from flex to inline‑block?
  • How would you make the menu responsive on small screens?
  • Does this approach affect screen‑reader navigation?