πŸŽ‰ 75% of content is free forever β€” Unlock Premium from $10/mo β†’
CW
Search courses…
πŸ’Ό Servicesℹ️ Aboutβœ‰οΈ ContactView Pricing Plansfrom $10

Container Queries

Web Styles🟒 Free Lesson

Advertisement

Container Queries

Element queries, container types, and component-level responsive design.

Overview

Container queries style elements based on their parent's size.

Key Concepts

  • container-type β€” Define query container
  • container-name β€” Named containers
  • @container β€” Query container size
  • Container queries β€” Component responsiveness
  • CQ units β€” Container-relative units

Code Examples

/* Basic container query */
.card-container {
  container-type: inline-size;
  container-name: card;
}

@container card (min-width: 400px) {
  .card {
    display: flex;
    gap: 1rem;
  }
  
  .card-image {
    flex: 0 0 200px;
  }
}

/* Named containers */
.widget-wrapper {
  container-type: inline-size;
  container-name: widget;
}

@container widget (min-width: 300px) {
  .widget-content {
    display: grid;
    grid-template-columns: 1fr 1fr;
  }
}

/* Multiple queries */
.sidebar {
  container-type: inline-size;
  container-name: sidebar;
}

@container sidebar (max-width: 200px) {
  .sidebar-nav {
    display: none;
  }
}

@container sidebar (min-width: 201px) and (max-width: 400px) {
  .sidebar-nav {
    display: flex;
    flex-direction: column;
  }
}

@container sidebar (min-width: 401px) {
  .sidebar-nav {
    display: flex;
    flex-direction: row;
  }
}

/* CQ units */
.responsive-text {
  font-size: max(1rem, 3cqi);
}

/* Container query support check */
@supports (container-type: inline-size) {
  .container-query-support {
    container-type: inline-size;
  }
}

/* Component patterns */
.product-card {
  container-type: inline-size;
}

@container (min-width: 450px) {
  .product-card {
    display: grid;
    grid-template-columns: 200px 1fr;
  }
}

@container (min-width: 700px) {
  .product-card {
    grid-template-columns: 300px 1fr auto;
  }
}

/* Responsive form */
.form-group {
  container-type: inline-size;
}

@container (min-width: 500px) {
  .form-row {
    display: flex;
    gap: 1rem;
  }
  
  .form-group {
    flex: 1;
  }
}

Practice

Build a component library with container queries for responsiveness.

⭐

Premium Content

Container Queries

Unlock this lesson and 900+ advanced tutorials with a Premium plan.

🎯End-to-end Projects
πŸ’ΌInterview Prep
πŸ“œCertificates
🀝Community Access

Already a member? Log in

Need Expert Web Development Help?

Get personalized tutoring, project support, or professional consulting.

Advertisement