Trong nhiều trường hợp, một yếu tố phải được định vị z-index
để làm việc.
Thật vậy, áp dụng position: relative
cho các yếu tố trong câu hỏi có thể sẽ giải quyết vấn đề (nhưng không có đủ mã được cung cấp để biết chắc chắn).
Trên thực tế, position: fixed
, position: absolute
và position: sticky
cũng sẽ cho phép z-index
, nhưng những giá trị cũng thay đổi bố cục. Với position: relative
bố cục không bị xáo trộn.
Về cơ bản, miễn là phần tử không position: static
(cài đặt mặc định), nó được coi là định vị và z-index
sẽ hoạt động.
Nhiều câu trả lời cho "Tại sao z-index không hoạt động?" câu hỏi khẳng định rằng z-index
chỉ hoạt động trên các yếu tố định vị. Kể từ CSS3, điều này không còn đúng nữa.
Các yếu tố là vật phẩm flex hoặc vật phẩm lưới có thể sử dụng z-index
ngay cả khi position
có static
.
Từ thông số kỹ thuật:
4.3. Đặt hàng linh hoạt Z
Các mục Flex vẽ chính xác giống như các khối nội tuyến, ngoại trừ thứ tự tài liệu được sửa đổi theo thứ tự được sử dụng thay cho thứ tự tài liệu thô và z-index
các giá trị khác ngoài việc auto
tạo bối cảnh xếp chồng ngay cả khi position
có static
.
5.4. Đặt hàng trục Z: thuộc z-index
tính
Thứ tự vẽ của các mục lưới hoàn toàn giống với các khối nội tuyến, ngoại trừ thứ tự tài liệu được sửa đổi thứ tự được sử dụng thay cho thứ tự tài liệu thô và z-index
các giá trị khác ngoài việc auto
tạo bối cảnh xếp chồng ngay cả khi
position
có static
.
Dưới đây là một minh chứng về cách z-index
làm việc trên các mục flex không định vị: https://jsfiddle.net/m0wddwxs/
Stacking Context
.