CSS|14 z-index

z-index

  • z-index表示谁压盖着谁,数值大的会压盖住数值小的。
  • 只有定位的元素才有z-index值,只有设置了固定定位、相对定位、绝对定位了的元素,才会拥有z-index
  • z-index的值是没有单位 的,值是一个正整数,默认的z-index值是0
  • 如果多个定位元素没有设置z-index属性,或者z-index设置一样,那么卸载HTML后面的定位元素就会压盖住前面的定位元素

案例一:z-index

html 复制代码
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>z-index</title>
    <style type="text/css">
        div{
            width: 200px;
            height: 200px;
        }
        /*.div1和.div2都设置了绝对定位,所以他们就是拥有了z-index属性,但是并没有给其设置z-index属性,那么他们的值就是0。
        我们观察HTML中的结构.div2这个元素它写在.div1前面,然后就能知道.div2会压盖住.div1
        */

        .div1{
            background-color: #f00;
            /*绝对定位*/
            position: absolute;
            left: 100px;
            top: 100px;

        }
        .div2{
            background-color: #00f;
            /*绝对定位*/
            position: absolute;
            left: 200px;
            top: 200px;
        }
    </style>
</head>
<body>
    <div class="div1"></div>
    <div class="div2"></div>
</body>
</html>

.div1和.div2都设置了绝对定位,所以他们就是拥有了z-index属性,但是并没有给其设置z-index属性,那么他们的值就是0。

我们观察HTML中的结构.div2这个元素它写在.div1前面,然后就能知道.div2会压盖住.div1

案例二:设置z-index

html 复制代码
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>设置z-index</title>
    <style type="text/css">
        div{
            width: 200px;
            height: 200px;
        }
        /*不设置z-index,应该是div2遮住div1,因为在HTML结构中div2写在后面,默认z-index都是0
        设置z-index后,数值大的显示在上面,所以是div1遮住div2
        */
        .div1{
            background-color: #f00;
            /*绝对定位*/
            position: absolute;
            left: 100px;
            top: 100px;
            z-index: 2;
        }
        .div2{
            background-color: #00f;
            /*绝对定位*/
            position: absolute;
            left: 200px;
            top: 200px;
            z-index: 1;
        }
    </style>
</head>
<body>
    <div class="div1"></div>
    <div class="div2"></div>
</body>
</html>

不设置z-index,应该是div2遮住div1,因为在HTML结构中div2写在后面,默认z-index都是0

设置z-index后,数值大的显示在上面,所以是div1遮住div2

案例三:z-index属性在工作中使用

html 复制代码
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>z-index属性在工作中使用</title>
    <style type="text/css">
        *{
            margin: 0;
            padding: 0;
        }
        .nav{
            width: 100%;
            height: 60px;
            background-color: #222222;
            /*使用固定定位*/
            position: fixed;
            left: 0px;
            top: 0px;
            /*设置z-index*/
            /*不设置z-index的话,下面的p标签的内容会遮挡住导航栏*/
            z-index: 99999999;
        }
        .nav .inner_c{
            width: 1000px;
            height: 60px;
            margin: 0px auto;
            background-color: #f00;
        }
        ul{
            /*清除无序列表前面的项目符号*/
            list-style: none;
        }
        ul li{
            /*左浮动*/
            float: left;
            width: 100px;
            height: 60px;
            line-height: 60px;
            text-align: center;
        }
        ul li a{
            display: block;
            width: 100px;
            height: 60px;
            text-decoration: none;
            color: white;
            font-weight: bold;
        }
        ul li a:hover{
            background-color: gold;
        }
        body{
            padding-top: 60px;
        }
        p{
            width: 100px;
            height: 30px;
            line-height: 30px;
            text-align: center;
            background-color: #f00;
            /*相对定位*/
            position: relative;
        }

    </style>
</head>
<body>
    <div class="nav">
        <div class="inner_c">
            <ul>
                <li><a href="#">网站栏目</a></li>
                <li><a href="#">网站栏目</a></li>
                <li><a href="#">网站栏目</a></li>
                <li><a href="#">网站栏目</a></li>
                <li><a href="#">网站栏目</a></li>
                <li><a href="#">网站栏目</a></li>
                <li><a href="#">网站栏目</a></li>
                <li><a href="#">网站栏目</a></li>
                <li><a href="#">网站栏目</a></li>
                <li><a href="#">网站栏目</a></li>

            </ul>
        </div>
    </div>
    <img src="../img/jyff.JPG" alt="">
    <img src="../img/jyff.JPG" alt="">
    <img src="../img/jyff.JPG" alt="">
    <p>看看我在哪里</p>
    <img src="../img/jyff.JPG" alt="">
    <img src="../img/jyff.JPG" alt="">
</body>
</html>
相关推荐
漂流瓶jz5 小时前
Webpack如何实现万物皆可import?loader的使用/配置/手写实践
前端·javascript·webpack
ZC跨境爬虫5 小时前
跟着 MDN 学CSS day_41:显式轨道、隐式网格与区域命名放置
前端·javascript·css·ui·交互
修己xj6 小时前
告别手动存图!这款叫 Fatkun 的浏览器插件,简直是素材收集神器
前端
袋鼠云数栈7 小时前
从前端到基础设施,ACOS 如何打通企业全链路可观测
运维·前端·人工智能·数据治理·数据智能
AskHarries7 小时前
系统提示词、开发者指令和用户输入的优先级
java·前端·数据库
Moment7 小时前
长上下文会最终杀死 Rag 吗?
前端·javascript·后端
qcx238 小时前
【系统学AI】25 论文导读 ①:两篇改变 AI 的开山之作——Attention Is All You Need & ReAct
前端·人工智能·react.js·transformer
kyriewen9 小时前
大文件上传最全指南:分片、断点续传、秒传,一篇就够了
前端·javascript·面试
郑洁文9 小时前
基于Python的Web命令执行漏洞自动化检测系统
前端·python·网络安全·自动化
新酱爱学习10 小时前
手搓 10 个 Skill 后,我把重复劳动收敛成了一套零依赖 CLI 工具
前端·javascript·人工智能