auto、0 和无 z-index 之间的区别


网页元素的位置对于开发者来说是一个至关重要的属性。如果元素位置安排不当,可能会导致显示混乱或无序。因此,开发者需要谨慎地设置每个HTML元素的位置。

有时,即使元素分别指定了位置,也可能发生重叠的情况。这些重叠的元素可能会堆叠在一起,隐藏其他元素。为了解决这个问题,CSS 提供了 z-index 属性用于网页设计。在本文中,我们将学习 CSS 的 z-index 属性。我们还将讨论 z-index 的不同值以及它们之间的区别。

什么是 z-index 属性?

CSS 的 z-index 属性使开发者能够指定在 z 轴上(即屏幕内或屏幕外)重叠元素的顺序。但是,z-index 属性仅适用于 position 值不是 static 的元素。

HTML 元素的堆叠级别由 z-index 属性决定。“堆叠级别”指的是元素在 Z 轴上的位置(与 X 轴或 Y 轴相对)。值越高,元素在堆叠顺序中的位置越靠上。这种堆叠顺序垂直于视口或显示。

HTML页面中Z轴上组件的自然堆叠顺序受多种因素影响。这些因素按显示顺序排列:具有负堆叠上下文的元素、非定位、非浮动、块级元素、非定位、浮动元素、内联元素和定位元素。

语法

element{
   z-index: values;
}

此属性的值如下:

  • auto - 重叠顺序与父元素的值相同。这是默认值。

  • 数字 - 重叠顺序指定为数字,例如 1、2、3 等。

  • initial - 将顺序设置为默认值。

  • inherit - 重叠顺序由父元素继承。

示例

<!DOCTYPE html>
<html>
<head>
   <title>z-index property</title>
   <style>
      .demo1{
         font-family: cursive, Cochin, Georgia;
         background-color: red;
         position: absolute;
         top: 100px;
      }
      .demo2{
         font-family: cursive, Cochin, Georgia;
         background-color: #FFFF00;
         position: absolute;
         top: 100px;
         left: 300px;
         z-index: 2;
         width: 200px;
      }
   </style>
</head>
<body>
   <center>
      <h2> z-index property </h2>
      <div class= "demo1"> This is an example. </div>
      <div class= "demo2"> This is an example. </div>
   </center>
</body>
</html>

z-index 属性的 auto 值

z-index 属性的 auto 值表示元素的顺序与父元素相同。

示例

<!DOCTYPE html>
<html>
<head>
   <title>Auto value of z-index property</title>
   <style>
      .demo1{
         font-family: verdana,'cursive';
         background-color: #FFFF00;
         position: absolute;
         top: 120px;
         z-index: auto;
      }
      .demo2{
         font-family: cursive, Cochin, Georgia;
         background-color: red;
         position: absolute;
         top: 200px;
         z-index: auto;
      }
   </style>
</head>
<body>
   <center>
      <h2>z-index property</h2>
      <p class= "demo1"> This is an example. </p>
      <p class= "demo2"> This is an example. </p>
   </center>
</body>
</html>

z-index 属性的零值

z-index 属性的零值是元素顺序的数值。将 z-index 值指定为 0,会创建一个堆叠上下文。例如,如果我们有两个元素 element 1 和 element 2,它们的 z-index 分别为 1 和 0。那么,element 1 将堆叠在 element 2 上方。而如果它们的 z-index 分别为 -1 和 0,则 element 1 将堆叠在 element 2 下方。请考虑以下示例。

示例

<!DOCTYPE html>
<html>
<head>
   <title>Zero value of z-index property</title>
   <style>
      .demo1{
         font-family: cursive, Cochin, Georgia;
         background-color: #FF0000;
         position: absolute;
         top: 120px;
         z-index: 0;
      }
      .demo2{
         font-family: cursive, Cochin, Georgia;
         background-color: red;
         position: absolute;
         top: 100px;
         left: 300px;
         z-index: 0;
         width: 200px;
      }
   </style>
</head>
<body>
   <h1>Tutorialspoint</h1>
   <h2>z-index property</h2>
   <p class= "demo1">This is an example.</p>
   <p class= "demo2">This is an example.</p>
</body>
</html>

z-index 属性无值

z-index 属性无值通常与 auto 值相同。

示例

<!DOCTYPE html>
<html>
<head>
   <title>No value for z-index property</title>
   <style>
      .demo{
         font-family: cursive, Cochin, Georgia;
         background-color: #FFFF00;
         position: absolute;
         top: 120px;
      }
   </style>
</head>
<body>
   <h2>z-index property</h2>
   <p class= "demo">This is an example.</p>
</body>
</html>

结论

CSS 中的堆叠上下文是一个具有挑战性的主题。在本文中,我们对 z-index 如何影响网页上的堆叠上下文进行了全面描述,充分理解后,它将成为一个强大的 CSS 属性。现在,新手开发者应该能够有效地使用此属性并避免一些常见的错误。高级开发者也应该更清楚地了解如何正确应用 z-index 来解决各种布局问题并提供各种创意 CSS 设计选项。

更新于:2023年2月20日

190 次浏览

启动您的 职业生涯

完成课程获得认证

开始学习
广告
© . All rights reserved.