锋盈数科-知识库 Logo
首页
软件开发
计算机基础
Hello Halo
新手必读
关于本知识库
登录 →
锋盈数科-知识库 Logo
首页 软件开发 计算机基础 Hello Halo 新手必读 关于本知识库
登录
  1. 首页
  2. 软件开发
  3. z-index属性

z-index属性

0
  • 软件开发
  • 发布于 2024-09-20
  • 0 次阅读
黄健
黄健

1.属性特点

z-index属性是用来控制元素的堆叠顺序,z-index的值越大,元素的层级越高。当元素重叠时,层级高的会覆盖在层级低的上面,使层级低的元素的重叠部分被遮盖住。

2.取值范围

z-index属性的值分为三种:auto(默认值):与父元素的层级相等,如各级祖先元素均未设置该属性,则类似于0、number:整数数值,在兼容所有浏览器的取值范围是 -2147483584 \~ 2147483584,数值越大,层级越高,数值越小,层级越低、inherit:继承父元素的z-index的属性值。

3.适用范围

z-index属性只能在设置了position: relative \| absolute \| fixed的元素和父元素设置了 display: flex属性的子元素中起作用,在其他元素中是不作用的。

4.从父属性

当父元素设置了z-index属性时,子元素的z-index属性只与同级元素和父级元素作比较时才有意义,与其他元素对比时无意义。此时子元素与父元素外的所有的外部元素进行堆叠层级顺序对比时,都以父元素的z-index属性值为准进行对比,子元素本身的z-index属性值无效。

当父元素未设置了z-index属性,子元素的z-index属性与父元素外的所有的外部元素进行堆叠层级顺序对比时,都以元素本身的z-index属性值为准进行对比

5.举例说明

1.普通例子

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>Document</title>
    <style>
      .box1 {
        width: 200px;
        height: 200px;
        background: #f00;
        position: absolute;
        left: 0px;
        top: 0px;
        z-index: 2;
      }
      .box2 {
        width: 400px;
        height: 400px;
        background: rgb(0, 255, 123);
        position: absolute;
        left: 50px;
        top: 50px;
        /*定层 */
        z-index: 1;
      }
      .box3 {
        width: 600px;
        height: 600px;
        background: rgb(55, 0, 255);
        position: absolute;
        left: 100px;
        top: 100px;
        /*定层 */
        z-index: 3;
      }
    </style>
  </head>
  <body>
    <div class="box1"></div>
    <div class="box2"></div>
    <div class="box3"></div>
  </body>
</html>
<!-- 场景:改变定位元素的层级
属性名:z-index
属性值:数字
数字越大,层级越高 -->

这个例子很简单,很容易看出,z-index的取值越大,层级越高(层级高的覆盖层级低的)。

2.从父例子

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>Document</title>
  </head>
  <style>
    * {
      margin: 0;
      padding: 0;
    }

    .father1 {
      width: 200px;
      height: 200px;
      background-color: red;
      position: relative;
      z-index: 2;
    }

    .father2 {
      width: 200px;
      height: 200px;
      background-color: green;
      position: relative;
      top: -30px;
      left: 30px;
      z-index: 1;
    }

    .son1 {
      width: 100px;
      height: 100px;
      background-color: blue;
      position: absolute;
      left: 110px;
      top: 143px;
      z-index: 1;
    }

    .son2 {
      width: 100px;
      height: 100px;
      background-color: yellow;
      position: absolute;
      left: 51px;
      top: 7px;
      z-index: 6;
    }
  </style>
  <body>
    <div class="father1">
      <div class="son1"></div>
    </div>
    <div class="father2">
      <div class="son2"></div>
    </div>
  </body>
</html>

从这个例子可以看出它的从父属性

当父元素设置了z-index属性时,即认为设置了一个结界,父元素里面的子元素z-index只跟自己结界内有关,结界内子元素比较遵循以下原则:
1、子元素无论是否设置z-index或者设置值比父元素小,层级一定都在父元素之上。所以例子里的蓝在红的上面,黄在绿的上面。因为两个父级元素中红大于绿,所以红在绿上面。所以总体排序为蓝,红,黄,绿。(这个例子懂了,从父属性就懂了)
2、子元素的z-index属性只与结界内元素对比有意义,如子元素未设置z-index则视为0。结界外的元素只会与父元素z-index比较,根据层级大小整体覆盖在父元素的上面或整体垫底在父元素的下面,不会参与结界内部z-index排序。
3、当父元素未设置z-index属性,不会生成结界,默认父元素z-index=0,父元素会参与子元素的z-index排序。
4、相同的z-index值比较,元素书写顺序在后面的层级高于前面的。


















原文链接: https://blog.csdn.net/2302_78593467/article/details/135970772

标签: #前端 145
相关文章

万字:支付“核心系统”详解 2024-11-02 15:33

专栏作者:隐墨星辰 \| 主编:陈天宇宙 这篇文章也尝试化繁为简,探寻支付系统的本质,讲清楚在线支付系统最核心的一些概念和设计理念。 虽然支付行业已经过了风头最劲的时光,但跨境支付仍然在蓬勃发展,每年依然有很多新人进入这个行业,这篇文章尝试为这些刚入行的新人提供一点帮助。 文章只介绍一些支付行业十几

资深支付架构师视角:实战从问题定义到代码落地的完整套路 2024-11-02 15:33

前言 今天从一个实际案例入手,介绍站在架构师的角度,如何识别并定义问题,提炼需求,技术方案选型,再到详细设计,最后利用AI的能力协助写出核心的代码,验证与调优。 解决问题存在一定的模式,也可以称之为框架,总结出自己的思考和解题框架,以后再碰到同类型的问题就可以如庖丁解牛一样容易。 很多年前,我写代码

Spring 实现 3 种异步接口 2024-10-18 09:07

大家好,我是苏三~ 如何处理比较耗时的接口? 这题我熟,直接上异步接口,使用 Callable、WebAsyncTask 和 DeferredResult、CompletableFuture等均可实现。 但这些方法有局限性,处理结果仅返回单个值。在某些场景下,如果需要接口异步处理的同时,还持续不断地

重学SpringBoot3-集成Redis(五)之布隆过滤器 2024-10-08 11:24

更多SpringBoot3内容请关注我的专栏:《SpringBoot3》 期待您的点赞👍收藏⭐评论✍ 重学SpringBoot3-集成Redis(五)之布隆过滤器 1. 什么是布隆过滤器? * 基本概念 适用场景 2. 使用 Redis 实现布隆过滤器 * 项目依赖 Redis 配置

设计模式第16讲——迭代器模式(Iterator) 2024-10-08 11:24

一、什么是迭代器模式 迭代器模式是一种行为型设计模式,它提供了一种统一的方式来访问集合对象中的元素,而不是暴露集合内部的表示方式。简单地说,就是将遍历集合的责任封装到一个单独的对象中,我们可以按照特定的方式访问集合中的元素。 二、角色组成 抽象迭代器(Iterator):定义了遍历聚合对象所需的方法

vue2路由和vue3路由区别及原理 2024-10-08 11:24

一、Vue2 与 Vue3 路由的区别 1. 创建路由实例方式的不同 Vue 2 中,通过 Vue.use() 注册路由插件,并通过 new VueRouter() 来创建路由实例。 import Vue from 'vue';import VueRouter from 'vue-router';i

目录

IT 外包服务商

  • 意见投递
  • zyf6619

软件开发应用

主菜单

  • 首页
  • 软件开发
  • 计算机基础
  • Hello Halo
  • 新手必读
  • 关于本知识库
Copyright © 2024 your company All Rights Reserved. Powered by Halo.