Quay lại Blog

Các Kỹ Thuật CSS Hiện Đại Mà Mọi Lập Trình Viên Nên Biết

28 tháng 11, 20242 min read
CSSTailwindCSSDesign
Ngôn ngữ:

Các Kỹ Thuật CSS Hiện Đại

CSS đã phát triển mạnh mẽ trong những năm gần đây. Hãy cùng khám phá một số kỹ thuật hiện đại và mạnh mẽ nhất.

Container Queries

Container queries cho phép bạn áp dụng style dựa trên kích thước của phần tử cha, thay vì toàn bộ viewport:

.card-container {
  container-type: inline-size;
}

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

CSS Grid Subgrid

Subgrid cho phép các grid lồng nhau có thể căn chỉnh theo grid cha:

.parent {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1rem;
}

.child {
  display: grid;
  grid-template-columns: subgrid;
  grid-column: span 3;
}

Selector :has()

Selector :has() giống như một “parent selector” — điều mà các lập trình viên CSS đã mong chờ từ rất lâu:

/* Style thẻ card khác đi khi nó chứa hình ảnh */
.card:has(img) {
  grid-template-rows: auto 1fr;
}

/* Style nhóm form khi input bên trong được focus */
.form-group:has(input:focus) {
  border-color: blue;
}

Scroll-Driven Animations

CSS hiện nay hỗ trợ animation dựa trên vị trí cuộn (scroll):

@keyframes fade-in {
  from { opacity: 0; transform: translateY(20px); }
  to { opacity: 1; transform: translateY(0); }
}

.animate-on-scroll {
  animation: fade-in linear;
  animation-timeline: view();
  animation-range: entry 0% entry 100%;
}

Nesting

CSS thuần (native) hiện đã hỗ trợ nesting:

.card {
  padding: 1rem;
  border: 1px solid #eee;

  & .title {
    font-size: 1.25rem;
    font-weight: bold;
  }

  &:hover {
    border-color: #333;
  }
}

Kết luận

CSS hiện đại vô cùng mạnh mẽ. Những tính năng này giúp giảm sự phụ thuộc vào JavaScript và làm cho stylesheet dễ bảo trì hơn. Hãy tiếp tục thử nghiệm và khám phá giới hạn mới của CSS!