关于购物车及其下拉菜单覆盖的问题
来源:3-5 自由编程
粉墨登场
2021-01-15 17:14:37
问题描述:
老师你好,鼠标移入购物时,下拉菜单并不是被购物车覆盖的,而是下拉菜单覆盖购物车。设置z-index也没用,不知道哪里出了问题。
相关截图:

相关代码:
HTML结构
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>慕淘网</title>
<!-- 引入重置样式文件 -->
<link rel="stylesheet" href="base.css">
<!-- 引入公共样式和组件模块化文件 -->
<link rel="stylesheet" href="common.css">
<!-- 引入css样式文件 -->
<link rel="stylesheet" href="css.css">
</head>
<body>
<!-- 顶部导航结构开始 -->
<section class="nav-site">
<div class="container">
<ul class="fl">
<li class="fl">
<a href="javascript:;" class="nav-site-login">亲,请登录</a>
</li>
<li class="fl">
<a href="javascript:;" class="nav-site-signup link">免费注册</a>
</li>
<li class="fl">
<a href="##" target="_blank" class="nav-site-mobile link">手机逛慕淘</a>
</li>
</ul>
<ul class="fr">
<li class="menu dropdown fl" data-active="menu">
<a href="##" target="_blank" class="dropdown-toggle transition link">
我的慕淘
<i class="dropdown-arrow icon icon-xialajiantou transition"></i>
</a>
<ul class="dropdown-layer dropdown-left">
<li>
<a href="##" target="_blank" class="menu-item">
已买到的宝贝
</a>
</li>
<li>
<a href="##" target="_blank" class="menu-item">
我的足迹
</a>
</li>
</ul>
</li>
<li class="menu dropdown fl" data-active="menu">
<a href="##" target="_blank" class="dropdown-toggle transition link">
收藏夹
<i class="dropdown-arrow icon icon-xialajiantou
transition"></i>
</a>
<ul class="dropdown-layer dropdown-left">
<li>
<a href="##" target="_blank" class="menu-item">
收藏的宝贝
</a>
</li>
<li>
<a href="##" target="_blank" class="menu-item">
收藏的店铺
</a>
</li>
</ul>
</li>
<li class="fl">
<a href="##" target="_blank" class="nav-site-category link">
商品分类
</a>
</li>
<li class="menu dropdown fl" data-active="menu">
<a href="##" target="_blank" class="dropdown-toggle transition link">
卖家中心
<i class="dropdown-arrow icon icon-xialajiantou transition"></i>
</a>
<ul class="dropdown-layer dropdown-left">
<li>
<a href="##" target="_blank" class="menu-item">
免费开店
</a>
</li>
<li>
<a href="##" target="_blank" class="menu-item">
已卖出的宝贝
</a>
</li>
<li>
<a href="##" target="_blank" class="menu-item">
出售中的宝贝
</a>
</li>
<li>
<a href="##" target="_blank" class="menu-item">
卖家服务市场
</a>
</li>
<li>
<a href="##" target="_blank" class="menu-item">
卖家培训中心
</a>
</li>
<li>
<a href="##" target="_blank" class="menu-item">
体验中心
</a>
</li>
</ul>
</li>
<li class="menu dropdown fl nav-site-service" data-active="menu">
<a href="##" target="_blank" class="dropdown-toggle transition link">
联系客服
<i class="dropdown-arrow icon icon-xialajiantou transition"></i>
</a>
<ul class="dropdown-layer dropdown-right">
<li>
<a href="##" target="_blank" class="menu-item">
消费者客服
</a>
</li>
<li>
<a href="##" target="_blank" class="menu-item">
卖家客服
</a>
</li>
</ul>
</li>
</ul>
</div>
</section>
<!-- 顶部导航结构结束 -->
<!-- 头部内容结构开始 -->
<section class="header">
<div class="container">
<!-- 左边logo区域 -->
<h1 class="fl">
<a href="实战:慕淘网.html" class="header-logo text-hidden">慕课网</a>
</h1>
<!-- 中间搜索框区域 -->
<div class="header-search fl">
<form action="https://s.taobao.com/search" class="header-search-form">
<input type="text" name="q" class="header-search-input fl" placeholder="灵魂美食一元抢" autocomplete="off">
<input type="submit" class="header-search-btn fl" value="搜索">
</form>
<ul class="header-search-layer">
</ul>
</div>
<!-- 右边购物车区域 -->
<div class="header-cart fr transition">
<i class="icon-gouwuche icon transition fl cart-icon"></i>
<span class="header-cart-text">购物车</span>
<span class="header-cart-line">|</span>
<span class="header-cart-number">0</span>
<span class="dropdown-arrow icon-xialajiantou icon transition"></span>
<div class="header-cart-dropdown-layer dropdown-layer">
<p>购物车里还没有商品<br>快去选购吧!</p>
<i class="icon-konggouwuche icon"></i>
</div>
</div>
</div>
</section>
<!-- 头部内容结构结束 -->
<!-- 引入jQuery文件 -->
<script src="../jquery.js"></script>
<script>
// 实际的开发中都是从别的服务器上引入jQuery文件,比如百度资源库、CDN资源库,如果这些服务器出现问题无法引入时,就从本地引入。所以这里使用逻辑运算符判断一下。如果没有成功引入jQuery文件,便从本地引入。 使用短路操作符 或||
window.jQuery || document.write('<script src="../jquery.js"><\/script');
</script>
<!-- 引入查看浏览器是否支持transition属性的代码文件 -->
<script src="transition.js"></script>
<!-- 引入各种动画类型和动画效果的js代码文件 -->
<script src="showHide.js"></script>
<!-- 引入下拉菜单的组件模块化文件 -->
<script src="dropdown.js"></script>
<!-- 引入search搜索框组件模块化文件 -->
<script src="search.js"></script>
<!-- 引入JS脚本代码文件 -->
<script src="js.js"></script>
</body>
</html>
相关代码:
CSS样式代码 1
/* 顶部导航栏样式开始 */
/* 左侧导航项 */
.nav-site {
background: #f3f5f7;
}
.nav-site>.container {
z-index: 3;
height: 44px;
line-height: 44px;
border-bottom: 1px solid #cdd0d4;
}
.nav-site-login {
color: #f01414;
margin-left: 15px;
}
.nav-site-signup,
.nav-site-mobile {
margin-left: 10px;
}
.nav-site-category {
margin: 0 10px;
}
.nav-site-service {
margin-right: 15px;
}
/* 顶部导航栏样式结束 */
/* 头部内容样式开始 */
.header {
height: 124px;
background: #f3f5f7;
}
.header-logo {
display: block;
width: 136px;
height: 48px;
background: url(img/header-logo.png) no-repeat;
margin-left: 15px
}
.header .header-search {
margin-left: 145px;
}
.header-logo,
.header .header-search,
.header .header-cart {
margin-top: 36px;
}
.header-cart {
width: 150px;
height: 40px;
background-color: red;
color: #fff;
cursor: pointer;
position: relative;
}
.cart-icon {
line-height: 40px;
margin-left: 13px;
}
.header-cart-text,
.header-cart-line,
.header-cart-number,
.dropdown-arrow {
line-height: 40px;
margin-left: 10px;
}
.header-cart-dropdown-layer {
position: absolute;
top: 38px;
width: 350px;
height: 150px;
left: -200px;
box-shadow: 0 0 5px 1px #cdd0d4;
border: 1px solid #cdd0d4;
background: #fff;
}
.header-cart-dropdown-layer>p {
color: #cdd0d4;
font-size: 15px;
position: absolute;
top: 50%;
left: 50%;
transform: translate(0, -50%);
line-height: 21px;
}
.header-cart-dropdown-layer>i {
color: #cdd0d4;
font-size: 45px;
position: absolute;
top: 50%;
left: 33%;
transform: translate(0, -50%);
}
.cart-active {
border: 1px solid #cdd0d4;
background: #fff;
color: red;
box-shadow: 0 0 3px 1px #cdd0d4;
}
/* 头部内容样式结束 */
相关代码:
CSS样式代码 2
/* 公共重复的样式文件 */
.container {
width: 1200px;
margin: 0 auto;
position: relative;
z-index: 1;
}
.link {
color: #4d555d;
}
.link:hover {
color: #f01414;
}
/* 隐藏文字的类名 */
.text-hidden {
font-size: 0;
}
/* 文字过长时使用省略号代替 */
.text-ellipsis {
/*文字过长时使用省略号代替*/
text-overflow: ellipsis;
overflow: hidden;
/*文字过长时不换行*/
white-space: nowrap;
}
/* 添加过渡效果0.5秒,谁需要就给谁添加上类名,增加复用性 */
.transition {
transition: 0.4s;
}
/* 下拉菜单使用css3动画效果类型的公共样式 */
.fadeOut {
opacity: 0;
visibility: hidden;
}
.slideUpDownColl {
height: 0 !important;
padding-top: 0 !important;
padding-bottom: 0 !important;
}
.slideLeftRightColl {
width: 0 !important;
padding-left: 0 !important;
padding-right: 0 !important;
}
.dropdown-loading {
width: 32px;
height: 32px;
background: url(img/loading.gif) no-repeat;
margin: 20px;
}
/* HTML标签中的class值只要包含 -active下的类名是dropdown-arrow的元素就可以上箭头往上旋转180度,这样所有下拉箭头都可以用,增加复用性 */
[class*='-active'] .dropdown-arrow {
transform: rotate(180deg);
}
/* 图标字体 */
@font-face {
font-family: "iconfont";
src: url('icon-font/iconfont.eot?t=1609826206954');
/* IE9 */
src: url('icon-font/iconfont.eot?t=1609826206954#iefix') format('embedded-opentype'),
/* IE6-IE8 */
url('icon-font/data:application/x-font-woff2;charset=utf-8;base64,d09GMgABAAAAAAKMAAsAAAAABjwAAAJBAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHEIGVgCCcApAXwE2AiQDCAsGAAQgBYRtBzYbiwXILrBt5DMDa2LARkEXfZ8D4LwQQTXG9v4fE0kM3bNoIpOYTqSqtEiINBLZS+D+19pwYiXN6+fxEmbpNK7O3/W/b3YOaSaZRyRUIqVAJh3ZI5l+mOAZkv+BFq2B44TO57mc3gQ6kPmBzrE9aKxJk3oB9eJACnQPjCIroYwbxi54gY8J1BrUtLS+uT+GmsJeFYjjwLOgVogqCitUC5UNB4u4VaE6naUX3ETfjz8LUSOpyOyWraMNF5Y/dUqKJ/8ncBgQYgR0vAIZ80Ah9hqzG4qCcUW12ZJRcKzG4NN/gUcc1SnYX2fX14N+qHomtbdSgASPNVUr0D1pE9Hq3DV9+OWiYzLztz+dto/vPdfpY9W2UL3ZqrjmY7IM/iyLN4HgvZYLg/5qdQV8gI+RsQzzU70PX/Av1AMHiqG13alo6sbRpPUcbbVq8Q8HW71PtXWcuBiqdUzwVxnIkFUbJws7jwp1FlGp2hJqzdk6XqcNK4pSg1mXAKHZE5JGr8iavZKFXaBCp19Uao4iah2EF9aZjKAxkyXkon2MgaNT5XqlETcOyZvHFue1ET8lzoME9trdcmGLUuIltuQHXl9EoWKd4CZ4juJYY8Y6JEfavkg26HRU05vajk6gYQ0jFkFcyHYMBRxaSgXjRaPy+SHimYtZuKOvrpwiLBfMjnraugPILVM6qO9RXskd8PQJoSCFaQm0CeaRWExDWfO8EHGINn9COjPQcYapoab29pbk705ALduewmnN6k8CK7ZCvyIVPQcAAA==') format('woff2'),
url('icon-font/iconfont.woff?t=1609826206954') format('woff'),
url('icon-font/iconfont.ttf?t=1609826206954') format('truetype'),
/* chrome, firefox, opera, Safari, Android, iOS 4.2+ */
url('icon-font/iconfont.svg?t=1609826206954#iconfont') format('svg');
/* iOS 4.1- */
}
.icon {
font-family: "iconfont" !important;
font-size: 14px;
font-style: normal;
/* 这两个是抗锯齿 */
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
}
.icon-xialajiantou:before {
content: "\e638";
}
.icon-gouwuche:before {
content: "\e628";
}
.icon-konggouwuche:before {
content: "\e647";
}
/* 下拉菜单组件模块化样式 */
/* 下拉菜单公共的样式(共性、相同的样式) */
.dropdown {
position: relative;
}
.dropdown-toggle {
position: relative;
z-index: 2;
}
.dropdown-arrow {
display: inline-block;
vertical-align: middle;
}
.dropdown-layer {
z-index: 3;
display: none;
position: absolute;
overflow: hidden;
}
.dropdown-left {
left: 0;
}
.dropdown-right {
right: 0;
}
/* 顶部导航项 menu特性(独有的,唯一的)css样式 */
.menu .dropdown-toggle {
display: block;
height: 100%;
padding: 0 13px 0 12px;
border-left: 1px solid #f3f5f7;
border-right: 1px solid #f3f5f7;
}
.menu .dropdown-arrow {
margin-left: 5px;
}
.menu .dropdown-layer {
border: 1px solid #cdd0d4;
top: 42px;
background: #fff;
}
.menu-item {
display: block;
height: 30px;
line-height: 30px;
padding: 0 12px;
color: #4d555d;
white-space: nowrap;
}
.menu-item:hover {
background-color: #f3f5f7;
}
/*
顶部右侧导航项使用css实现交互效果(前提条件是使用JS添加dropdown-active这个类名)
*/
.menu-active .dropdown-toggle {
background-color: #fff;
border-color: #cdd0d4;
}
/* 搜索框组件共同的样式 */
.header-search {
position: relative;
border: 1px solid #cfd2d5;
z-index: 1;
}
.header-search-input {
width: 585px;
height: 40px;
line-height: 40px;
border: none;
background: #fff;
padding: 0 10px;
outline: none;
}
.header-search-btn {
width: 74px;
height: 40px;
line-height: 40px;
text-align: center;
color: #fff;
background-color: #07111b;
font-size: 14px;
cursor: pointer;
border: none;
}
.header-search-layer {
display: none;
position: absolute;
left: -1px;
top: 100%;
width: 100%;
background: #fff;
border: 1px solid #cfd2d5;
}
.header-search-layer-item {
cursor: pointer;
height: 24px;
line-height: 24px;
padding: 0 10px;
}
.header-search-layer-item:hover {
background: #f3f5f7;
}
1回答
好帮手慕言
2021-01-15
同学你好,因为两者是父子级关系,所以就算子元素的层级小于父元素的层级,子元素也不会在父元素的下方显示。
建议:将两者调整为兄弟级元素。例如:

祝学习愉快~
相似问题