Learn and master the top 20 CSS Flexbox interview questions along with detailed answers and code snippets:

  1. What is CSS Flexbox?
    CSS Flexbox is a layout module that provides a more efficient way to align and distribute space among items in a container. It allows you to create flexible and responsive layouts without relying on floats or positioning.
  2. How do you enable Flexbox on a container?
    To enable Flexbox on a container, you need to set the display property to flex or inline-flex. For example:
.container {
  display: flex;
}
  1. How do you align items horizontally in a Flexbox container?
    You can align items horizontally in a Flexbox container using the justify-content property. Here are some commonly used values:
  • flex-start: Aligns items to the start of the container.
  • flex-end: Aligns items to the end of the container.
  • center: Centers items along the main axis.
  • space-between: Distributes items with equal spacing between them.
  • space-around: Distributes items with equal spacing around them.
.container {
  display: flex;
  justify-content: center;
}
  1. How do you align items vertically in a Flexbox container?
    You can align items vertically in a Flexbox container using the align-items property. Here are some commonly used values:
  • flex-start: Aligns items to the start of the container.
  • flex-end: Aligns items to the end of the container.
  • center: Centers items along the cross axis.
  • baseline: Aligns items based on their baseline.
  • stretch: Stretches items to fill the container vertically.
.container {
  display: flex;
  align-items: center;
}
  1. How do you change the order of Flexbox items?
    You can change the order of Flexbox items using the order property. By default, items have an order of 0, but you can assign positive or negative values to change their order.
.item {
  order: 1;
}
  1. How do you specify the width or height of Flexbox items?
    In Flexbox, you can use the flex property to specify the width or height of Flexbox items. The flex property is shorthand for flex-grow, flex-shrink, and flex-basis.
.item {
  flex: 1; /* Equal width or height for all items */
}
  1. How do you align an individual Flexbox item differently from other items?
    To align an individual Flexbox item differently from other items, you can use the align-self property on the specific item. This property overrides the align-items property set on the container.
.item {
  align-self: flex-end; /* Aligns this item to the end */
}
  1. How do you wrap Flexbox items onto multiple lines?
    By default, Flexbox items are displayed in a single line. However, you can wrap them onto multiple lines using the flex-wrap property.
.container {
  display: flex;
  flex-wrap: wrap;
}
  1. How do you specify the spacing between Flexbox items?
    You can specify the spacing between Flexbox items using the gap property or the margin property on the items.
See also  Extracting Source Code with Puppeteer: A Step-by-Step Guide

Using the gap property:

.container {
  display: flex;
  gap: 10px; /* Adds 10px spacing between items */
}

Using the margin property:

.item {
  margin-right: 10px; /* Adds 10px

 spacing between items */
}
  1. How do you align Flexbox items along the main axis when they wrap onto multiple lines?
    When Flexbox items wrap onto multiple lines, you can use the align-content property to align them along the main axis. This property works when there is extra space in the container.
.container {
  display: flex;
  flex-wrap: wrap;
  align-content: center; /* Aligns items along the main axis */
}
  1. How do you create equal height columns in a Flexbox layout?
    In a Flexbox layout, you can create equal height columns by setting the align-items property to stretch on the container. This stretches the items to fill the height of the container.
.container {
  display: flex;
  align-items: stretch; /* Equal height columns */
}
  1. How do you create a sticky header or footer in a Flexbox layout?
    To create a sticky header or footer in a Flexbox layout, you can use the position: sticky property on the header or footer element. This property keeps the element fixed at its position relative to the viewport.
.header {
  position: sticky;
  top: 0; /* Sticky to the top */
}

.footer {
  position: sticky;
  bottom: 0; /* Sticky to the bottom */
}
  1. How do you center a Flexbox container both horizontally and vertically in the viewport?
    To center a Flexbox container both horizontally and vertically in the viewport, you can use a combination of CSS properties on the container.
.container {
  display: flex;
  justify-content: center;
  align-items: center;
  height: 100vh; /* Full viewport height */
}
  1. How do you create a responsive layout using Flexbox?
    To create a responsive layout using Flexbox, you can combine media queries with Flexbox properties to adjust the layout based on different screen sizes.
.container {
  display: flex;
  flex-wrap: wrap;
}

@media screen and (max-width: 600px) {
  .item {
    width: 100%; /* Full width on small screens */
  }
}

@media screen and (min-width: 601px) {
  .item {
    width: 50%; /* Half width on larger screens */
  }
}
  1. How do you create a navigation menu using Flexbox?
    To create a navigation menu using Flexbox, you can use the flex-direction property to set the direction of the items, and then adjust the alignment and spacing as needed.
.nav {
  display: flex;
  justify-content: space-between;
  align-items: center;
}

.nav-item {
  margin-right: 10px;
}
  1. How do you vertically center Flexbox items without using align-items: center?
    To vertically center Flexbox items without using align-items: center, you can use a combination of Flexbox properties and margin auto.
.container {
  display: flex;
}

.item {
  margin-top: auto;
  margin-bottom: auto;
}
  1. How do you create a responsive grid using Flexbox?
    To create a responsive grid using Flexbox, you can use a combination of Flexbox properties, such as flex-wrap, flex-basis, and media queries.
.container {
  display: flex;
  flex-wrap: wrap;
}

.item {
  flex-basis: 25%; /* Four items per row */
}

@media screen and (max-width: 600px) {
  .item {
    flex-basis: 50%; /* Two items per row on small screens */
  }
}

18. How do you create a sticky sidebar using Flexbox?
To create a sticky sidebar using Flexbox, you can use a combination of Flexbox properties and position sticky.

See also  Top 30 CSS Flex Interview Questions and Answers

css
.container {
display: flex;
}

.sidebar {
position: sticky;
top: 0;
height: 100vh;
}

19. How do you create a card layout using Flexbox?
To create a card layout using Flexbox, you can use a combination of Flexbox properties and adjust the alignment, spacing, and styling of the card elements.

css
.container {
display: flex;
justify-content: center;
}

.card {
width: 300px;
padding: 20px;
margin: 10px;
border: 1px solid #ccc;
border-radius: 5px;
}

20. How do you create a centered content layout using Flexbox?
To create a centered content layout using Flexbox, you can use a combination of Flexbox properties and adjust the alignment and spacing of the content elements.

css
.container {
display: flex;
justify-content: center;
align-items: center;
height: 100vh;
}

21. How do you create a sticky footer using Flexbox?
To create a sticky footer using Flexbox, you can use a combination of Flexbox properties and position sticky.

css
.container {
display: flex;
flex-direction: column;
min-height: 100vh;
}

.content {
flex-grow: 1;
}

.footer {
flex-shrink: 0;
position: sticky;
bottom: 0;
}

22. How do you create a flexible grid with variable column widths using Flexbox?
To create a flexible grid with variable column widths using Flexbox, you can use the `flex-grow` property to allow columns to expand and fill the available space.

css
.container {
display: flex;
}

.column {
flex-grow: 1;
margin: 10px;
}

23. How do you create a horizontally scrollable container using Flexbox?
To create a horizontally scrollable container using Flexbox, you can use the `overflow-x` property to enable horizontal scrolling and adjust the alignment and spacing of the items.

css
.container {
display: flex;
overflow-x: auto;
flex-wrap: nowrap;
}

.item {
flex-shrink: 0;
width: 200px;
margin-right: 10px;
}

24. How do you create a responsive sidebar layout using Flexbox?
To create a responsive sidebar layout using Flexbox, you can use a combination of Flexbox properties and media queries to adjust the layout based on different screen sizes.

css
.container {
display: flex;
}

See also  Top 20 CSS Pseudo-Elements Interview Questions Answers

.sidebar {
width: 250px;
flex-shrink: 0;
}

.content {
flex-grow: 1;
}

@media screen and (max-width: 600px) {
.container {
flex-direction: column;
}

.sidebar {
width: 100%;
}
}
“`

  1. How do you create a masonry layout using Flexbox?
    Creating a pure CSS masonry layout using Flexbox alone is not straightforward. It’s recommended to use CSS Grid for a masonry layout as it provides better support for this specific layout.