我的一个要素与其他要素重叠

问题描述

我是Web开发的初学者。

我不知道如何使用CSS将我的徽标摆在前面。我已经尝试将z-index设置为1000并将其位置设置为相对,但是仍然失败。

在这里,我提供了完整的代码,因为我无法弄清楚我要去哪里了!

我该怎么做才最重要?

¯\ _(ツ)_ /¯

*{
    margin: 0;
    padding: 0;
}
body{
    font-family: 'Gill Sans','Gill Sans MT',Calibri,'Trebuchet MS',sans-serif;
    background: linear-gradient(to right,#9c27b0,#8ecdff);
}

.logo{
    display: inline-block;
    position: relative;
    flex-basis: 20%;
    z-index: 1;
}
.logo img{
    width: 13vw;
    margin-left: 1vw;
    margin-top: 1vw;
}
nav{
    position: sticky;
}
.navbar{
    float: right;
}
.navbar ul{
    display: flex;
    list-style: none;
}
.navbar ul li{
    margin-top: 1.8vw;
    margin-right: 3vw;
}
.navbar ul li a{
    text-decoration: none;
    color: #fff;
}
.info{
    z-index: 0;
    width: 60vw;
    height: 140vh;
    position: absolute;
    top: 50%;
    left: -10%;
    transform: translateY(-50%);
}
#circle{
    width: 60vw;
    height: 140vh;
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    border-radius: 50%;
    background-color: #ccc ;    
}
<!DOCTYPE html>
<html lang="en">
<head>
    <Meta charset="UTF-8">
    <Meta name="viewport" content="width=device-width,initial-scale=1.0">
    <link rel="stylesheet" href="style.css">
    <title>Real Phone</title>
</head>
<body>
    <div class="wrapper">
        <nav>
            <div class="logo">
                <!-- I've commented the actual logo -->
                <!-- <img src="images/resourses/logo.png" alt=""> -->
                <h1>logo</h1>
            </div>
            <div class="navbar">
                <ul>
                    <li><a href="#">Home</a></li>
                    <li><a href="#">Phones</a></li>
                    <li><a href="#">Accessories</a></li>
                    <li><a href="#">Cart</a></li>
                </ul>
            </div>
        </nav>
        <div class="info">
            <div id="circle">
                <div class="feature" id="f1"></div>
                <div class="feature" id="f2"></div>
                <div class="feature" id="f3"></div>
                <div class="feature" id="f4"></div> 
            </div>
        </div>
    </div>
</body>
</html>

解决方法

尝试一下:

<body>
    <div class="wrapper">
      <div class="info">
            <div id="circle">
                <div class="feature" id="f1"></div>
                <div class="feature" id="f2"></div>
                <div class="feature" id="f3"></div>
                <div class="feature" id="f4"></div> 
            </div>
        </div>
        <nav>
            <div class="logo">
                <!-- I've commented the actual logo -->
                <!-- <img src="images/resourses/logo.png" alt=""> -->
                <h1>LOGO</h1>
            </div>
            <div class="navbar">
                <ul>
                    <li><a href="#">Home</a></li>
                    <li><a href="#">Phones</a></li>
                    <li><a href="#">Accessories</a></li>
                    <li><a href="#">Cart</a></li>
                </ul>
            </div>
        </nav>
    </div>
</body>

从本质上讲,通过将dev元素与info类一起放在导航之前,浏览器将优先于导航并在信息上显示导航。

,

您的解决方案无效,因为您将z-index设置在圆圈后面已经存在的导航元素中。 z-index仅适用于容器内的所有元素,因此仅适用于nav元素内。

要解决此问题,请将z-index中的.info置于其他所有内容的后面,因此#circle内部的.info也位于其他所有内容的后面。

*{
    margin: 0;
    padding: 0;
}
body{
    font-family: 'Gill Sans','Gill Sans MT',Calibri,'Trebuchet MS',sans-serif;
    background: linear-gradient(to right,#9c27b0,#8ecdff);
}

.logo{
    display: inline-block;
    position: relative;
    flex-basis: 20%;
    z-index: 1;
}
.logo img{
    width: 13vw;
    margin-left: 1vw;
    margin-top: 1vw;
}
nav{
    position: sticky;
}
.navbar{
    float: right;
}
.navbar ul{
    display: flex;
    list-style: none;
}
.navbar ul li{
    margin-top: 1.8vw;
    margin-right: 3vw;
}
.navbar ul li a{
    text-decoration: none;
    color: #fff;
}
.info{
    /* set the z-index of the entire info to be behind everything else */
    z-index: -1;
    width: 60vw;
    height: 140vh;
    position: absolute;
    top: 50%;
    left: -10%;
    transform: translateY(-50%);
}
#circle{
    width: 60vw;
    height: 140vh;
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    border-radius: 50%;
    background-color: #ccc ;    
}
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width,initial-scale=1.0">
    <link rel="stylesheet" href="style.css">
    <title>Real Phone</title>
</head>
<body>
    <div class="wrapper">
        <nav>
            <div class="logo">
                <!-- I've commented the actual logo -->
                <img src="images/resourses/logo.png" alt="">
                <h1>LOGO</h1>
            </div>
            <div class="navbar">
                <ul>
                    <li><a href="#">Home</a></li>
                    <li><a href="#">Phones</a></li>
                    <li><a href="#">Accessories</a></li>
                    <li><a href="#">Cart</a></li>
                </ul>
            </div>
        </nav>
        <div class="info">
            <div id="circle">
                <div class="feature" id="f1"></div>
                <div class="feature" id="f2"></div>
                <div class="feature" id="f3"></div>
                <div class="feature" id="f4"></div> 
            </div>
        </div>
    </div>
</body>
</html>

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...