z-index là một thuộc tính trong CSS được sử dụng để xác định thứ tự xếp chồng của các phần tử trên trang web. Thuộc tính này rất quan trọng khi bạn làm việc với các phần tử có vị trí (positioned elements) như absolute, relative, fixed, hoặc sticky. Bài viết này sẽ giải thích chi tiết về khái niệm và cách thức hoạt động của z-index.


1. Khái Niệm Về z-index

  • Thứ Tự Xếp Chồng: z-index xác định thứ tự xếp chồng của các phần tử. Các phần tử với z-index cao hơn sẽ được hiển thị trên các phần tử có z-index thấp hơn.
  • Giá Trị z-index: Giá trị của z-index có thể là một số nguyên dương, số nguyên âm, hoặc không có giá trị nào (có thể hiểu là 0 mặc định). Phần tử có z-index bằng 1 sẽ nằm trên phần tử có z-index bằng 0.

Cú Pháp:

.element {
    position: relative; /* hoặc absolute, fixed, sticky */
    z-index: 10; /* Giá trị z-index */
}

2. Cách Thức Hoạt Động

2.1. Xếp Chồng Trong Một Ngữ Cảnh

z-index chỉ hoạt động trong ngữ cảnh xếp chồng của các phần tử. Điều này có nghĩa là:

  • Ngữ Cảnh Xếp Chồng: Mỗi phần tử có thể tạo ra một ngữ cảnh xếp chồng mới nếu nó có thuộc tính position khác static và có giá trị z-index khác auto.
  • Các phần tử trong cùng một ngữ cảnh sẽ được xếp chồng dựa trên giá trị z-index của chúng.

2.2. Ví Dụ Về Ngữ Cảnh Xếp Chồng

<div class="parent">
    <div class="child1">Child 1</div>
    <div class="child2">Child 2</div>
</div>

<style>
    .parent {
        position: relative;
        z-index: 1; /* Ngữ cảnh xếp chồng */
    }

    .child1 {
        position: absolute;
        z-index: 2; /* Sẽ nằm trên child2 */
    }

    .child2 {
        position: absolute;
        z-index: 1; /* Sẽ nằm dưới child1 */
    }
</style>

Trong ví dụ này, child1 sẽ được hiển thị trên child2 mặc dù child2z-index thấp hơn trong ngữ cảnh của .parent.


3. Lưu Ý Khi Sử Dụng z-index

  • Phải Có Vị Trí: z-index chỉ có tác dụng trên các phần tử đã được định nghĩa vị trí (positioned elements). Nếu phần tử có position: static, z-index sẽ không có tác dụng.
  • Ngữ Cảnh Xếp Chồng: Các phần tử với z-index cao hơn trong một ngữ cảnh xếp chồng không nhất thiết phải được hiển thị trên các phần tử có z-index thấp hơn trong ngữ cảnh khác.
  • Giá Trị Mặc Định: Nếu không có thuộc tính z-index, giá trị mặc định của nó là auto, có nghĩa là nó sẽ không ảnh hưởng đến việc xếp chồng.

Kết Luận

z-index là một thuộc tính quan trọng trong CSS cho phép bạn kiểm soát thứ tự xếp chồng của các phần tử trên trang web. Bằng cách hiểu rõ cách hoạt động của z-index và ngữ cảnh xếp chồng, bạn có thể dễ dàng quản lý giao diện của trang web một cách hiệu quả và chính xác. Sử dụng z-index một cách hợp lý sẽ giúp tạo ra trải nghiệm người dùng tốt hơn với các yếu tố trực quan rõ ràng.