z-index được sinh ra nhằm giải quyết cấp độ hiển thị của các thẻ HTML lên trình duyệt Browser, hay nói cách khác z-index giống như đánh số thứ tự hiển thị, thẻ nào có z-index cao thì nằm phía trên và thẻ nào có z-index thấp thì nằm phía dưới.z-index nên bạn phải biết các tính chất sau:z-index được cho các thẻ có khai báo position:absolute.z-index là một con số (âm hoặc dương).z-index thì sẽ tuân theo quy luật thẻ nào nằm dưới thì được hiển thị phía trên, thẻ con sẽ nằm trên thẻ cha.z-index mặc định của các thẻ HTML là 1, vì vậy các thẻ HTML thông thường nếu nằm phía dưới thì nó sẽ đè thẻ phía trên.z-index như sau:1 2 3 | selector{ z-index: value} |
| Giá trị | Ví dụ | Giải thích |
|---|---|---|
| auto | z-index: auto | Tự động sắp xếp chồng lên nhau theo thứ tự mặc định của HTML |
| một con số | z-index: 999 | Sắp xếp chồng lên nhau theo giá trị truyền vào. Như trong ví dụ là 999 |
| inherit | z-index:inherit | Thừa hưởng thuộc tính z-index của thành phần cha. |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | <!DOCTYPE html><html> <head> <meta name="viewport" content="initial-scale=1.0, user-scalable=no"> <meta charset="utf-8"> <title>Control z-index</title> </head> <body> <div id="map1"> </div> <div id="map2"> </div> </body></html> |
div#map2 có margin-top: -50px để nó đè thẻ div#map1 và này ta thiết lập z-index cho #map1 lớn hơn #map2.1 2 3 4 5 6 7 8 9 10 11 12 13 | #map1{ width: 200px; height: 100px; background: blue; z-index: 2;}#map2{ width: 200px; height: 100px; background: yellow; margin-top: -50px; z-index:1} |
z-index và lúc nó sẽ hiển thị tuân theo quy luật mặc định của HTML.position:absolute và màu xanh không có, lúc này thẻ màu vàng có thể sử dụng được thuộc tính z-index. Tuy nhiên việc sử dụng là không cần thiết bởi vì theo cách hiển thị mặc định thì thẻ vàng luôn luôn đè lên thẻ xanh. Vậy câu hỏi đặt ra là làm sao thẻ vàng nằm dưới thẻ xanh? Chúng ta xem đoạn CSS sau:1 2 3 4 5 6 7 8 9 10 11 12 13 14 | #map1{ width: 200px; height: 100px; background: blue;}#map2{ width: 200px; height: 100px; position:absolute; top: 50px; left: 8px; background: yellow; z-index:-1} |
z-index:-1. Như vậy ta sử dụng giá trị âm để xử lý cho trường hợp này.1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | #map1{ width: 200px; height: 100px; position:absolute; top: 50px; left: 50px; background: blue; z-index: 2;}#map2{ width: 200px; height: 100px; position:absolute; top: 80px; left: 70px; background: yellow; z-index:1} |
z-index cao hơn.