老师请检查
来源:2-12 项目作业
迷迷糊糊学习
2021-12-07 19:39:47
相关代码:
*{ padding: 0; margin: 0; } .banner{ position: relative; } .banner img{ width: 100%; /* 使用min-width 限制最小宽度 */ min-width: 1152px; /* 图片和底部可能产生一点缝隙,此时可以使用一个小技巧*/ /* 这是一个小技巧,添加上图片就不会有缝隙了 垂直居中 */ vertical-align: middle; } /* 给居中的盒子设置样式 */ .banner .wrap{ position: absolute; top: 0; left: 50%; margin-left: -576px; height: 100%; width: 1152px; } /* 取消小圆点 */ .banner .wrap .banner-nav ul{ list-style: none; } /* 取消倾斜 */ /* 后面还需要定义列表,所以这里写后代选择器 */ .banner .wrap .banner-nav ul li>dl>dd em{ font-style: normal; } .banner .wrap .banner-nav{ height: 100%; } .banner .wrap .banner-nav>ul{ height: 100%; } .banner .wrap .banner-nav>ul>li{ height: 16.66%; width: 296px; background-color: rgba(0, 0, 0, 0.53); border-bottom: 1px solid #9e9e9e; /* box-sizing: border-box;属性的作用就是让height属性是盒子的总高度,这种情况:在盒子的高度是百分比写的 */ /* 此时就要让盒子的边框涵盖在height里面,就要使用box-sizing: border-box; */ box-sizing: border-box; } .banner .wrap .banner-nav>ul>li:last-child{ border-bottom:none } .banner .wrap .leftbtn{ position: absolute; top:50%; margin-top:-22px; left:-38px; width: 28px; height: 44px; background:url(img/icons.png) no-repeat -21px -94px; } .banner .wrap .rightbtn{ position: absolute; top:50%; margin-top:-22px; right:-38px; width: 28px; height: 44px; background:url(img/icons.png) no-repeat -21px -29px; } .banner .center-wrap .leftbtn:hover,.banner .center-wrap .rightbtn:hover{ /* 透明度 */ opacity: 0.8; } .banner .wrap .banner-nav>ul>li{ position:relative; } .banner .wrap .banner-nav>ul>li>dl{ position: absolute; height: 48px; top: 50%; margin-top: -24px; left: 42px; color: white; } .banner .wrap .banner-nav>ul>li>dl>dt{ font-size: 18px; height: 26px; line-height: 26px; } .banner .wrap .banner-nav>ul>li>dl>dt>dd{ font-size: 16px; height: 22px; line-height: 22px; } .banner .wrap .banner-nav>ul>li::before{ content: ""; position: absolute; top:50%; left: 10px; background-image: url(img/icons.png) ; } .banner .wrap .banner-nav>ul>li.hot::before{ width: 22px; height: 18px; background-position: -29px -399px; margin-top: -9px; } .banner .wrap .banner-nav>ul>li.hk::before{ width: 18px; height: 21px; background-position: -28px -217px; margin-top: -10.5px; left: 13px; } .banner .wrap .banner-nav>ul>li.jp::before{ width: 24px; height: 19px; background-position: -25px -171px; margin-top: -9.5px; } .banner .wrap .banner-nav>ul>li.as::before{ width: 18px; height: 19px; background-position: -28px -262px; margin-top: -9.5px; left: 12px; } .banner .wrap .banner-nav>ul>li.eu::before{ width: 20px; height: 14px; background-position: -29px -351px; margin-top: -7px; } .banner .wrap .banner-nav>ul>li.au::before{ width: 18px; height: 17px; background-position: -28px -305px; margin-top: -8.5px; left: 12px; } .banner .wrap .banner-nav>ul>li .menu{ display: none; position: absolute; top: 0; left: 296px; width: 356px; height:524.5px; background-color:rgba(0, 0, 0, 0.63); color: white; padding: 16px; box-sizing: border-box; } .banner .wrap .banner-nav>ul>li:hover .menu{ display: block; } .banner .wrap .banner-nav>ul>li .menu a{ color: white; text-decoration: none; } .banner .wrap .banner-nav>ul>li.hot .menu>dl, .banner .wrap .banner-nav>ul>li.hk .menu>dl { margin-bottom:16px; } .banner .wrap .banner-nav>ul>li.hot .menu>dl>dt, .banner .wrap .banner-nav>ul>li.hk .menu>dl>dt{ line-height: 30px; font-size: 18px; } .banner .wrap .banner-nav>ul>li.hot .menu>dl>dd, .banner .wrap .banner-nav>ul>li.hk .menu>dl>dd{ line-height: 25px; font-size: 15px; } .banner .wrap .banner-nav>ul>li.hk .menu{ top: -87px; } .banner .wrap .banner-nav>ul>li:hover .hk{ display: block; }
相关代码:
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Document</title> <link rel="stylesheet" href="./css.css"> </head> <body> <!-- banner --> <section class="banner"> <img src="./img/banner2.jpg" alt=""> <!--先设置一个版心盒子居中 --> <div class="wrap"> <!-- 左右按钮 --> <a href="" class="leftbtn"></a> <a href="" class="rightbtn"></a> <!-- 设置左浮动 --> <nav class="banner-nav"> <ul> <li class="hot"> <dl> <dt>热门出发地</dt> <dd> <em>北京</em> <em>上海</em> <em>广深</em> <em>西南</em> <em>国内其他</em> </dd> </dl> <div class="menu"> <dl> <dt>港澳台</dt> <dd> <a href="">香港</a> <a href="">澳门</a> <a href="">台北</a> <a href="">高雄</a> <a href="">香港迪士尼</a> <a href="">香港海洋公园</a> <a href="">交通接驳</a> <a href="">澳门塔</a> <a href="">新濠天地水舞间</a> <a href="">澳门豪华自助</a> <a href="">台北101</a> <a href="">台湾美食</a> </dd> </dl> <dl> <dt>国内热门城市</dt> <dd> <a href="">三亚</a> <a href="">东北雪乡</a> <a href="">大理</a> <a href="">丽江</a> <a href="">昆明</a> <a href="">西双版纳</a> <a href="">拉萨</a> <a href="">成都</a> <a href="">重庆</a> <a href="">长白山</a> <a href="">厦门</a> <a href="">长沙</a> <a href="">桂林</a> <a href="">北京</a> <a href="">西安</a> <a href="">敦煌</a> <a href="">杭州</a> <a href="">上海</a> <a href="">无锡</a> <a href="">南京</a> <a href="">广州</a> <a href="">黄山</a> <a href="">莫干山</a> <a href="">新疆</a> <a href="">北海</a> <a href="">九华山</a> <a href="">太原</a> <a href="">张家口</a> </dd> </dl> <dl> <dt>国内热门景点</dt> <dd> <a href="">北京故宫</a> <a href="">东北滑雪</a> <a href="">恭王府</a> <a href="">长城</a> <a href="">青城山大熊猫基地</a> <a href="">峨眉山</a> <a href="">都江堰</a> <a href="">长恨歌表演</a> <a href="">兵马俑</a> <a href="">大唐芙蓉园</a> <a href="">三亚日游</a> <a href="">厦门鼓浪屿</a> <a href="">千岛湖</a> <a href="">呼伦贝尔草原</a> <a href="">希拉穆仁草原</a> <a href="">大理日游</a> <a href="">杭州</a> <a href="">重庆两江夜游船票</a> </dd> </dl> </div> </li> <li class="hk"> <dl> <dt>港澳台 国内</dt> <dd> <em>香港</em> <em>澳门</em> <em>台湾</em> <em>国内其他</em> </dd> </dl> <div class="menu"> <dl> <dt>港澳台</dt> <dd> <a href="">香港</a> <a href="">澳门</a> <a href="">台北</a> <a href="">高雄</a> <a href="">香港迪士尼</a> <a href="">香港海洋公园</a> <a href="">交通接驳</a> <a href="">澳门塔</a> <a href="">新濠天地水舞间</a> <a href="">澳门豪华自助</a> <a href="">台北101</a> <a href="">台湾美食</a> </dd> </dl> </div> </li> <li class="jp"> <dl> <dt>日本 韩国</dt> <dd> <em>东京</em> <em>大阪</em> <em>冲绳</em> <em>北海道</em> <em>福冈</em> </dd> </dl> </li> <li class="as"> <dl> <dt>东南亚 南亚</dt> <dd> <em>泰国</em> <em>新加坡</em> <em>马来西亚</em> <em>马尔代夫</em> </dd> </dl> </li> <li class="eu"> <dl> <dt>欧洲 美洲</dt> <dd> <em>英国</em> <em>法国</em> <em>美国</em> <em>加拿大</em> </dd> </dl> </li> <li class="au"> <dl> <dt>澳新 中东非</dt> <dd> <em>澳大利亚</em> <em>新西兰</em> <em>迪拜</em> </dd> </dl> </li> </ul> </nav> </div> </section> </body> </html>
问题描述:
问题描述:我用的是hover的办法,将二级菜单分别放到一级菜单的li中,先设置二级菜单为display:none,点击后设置为block,但是因为绝对定位的原因,二级菜单的父元素是每一个对应的li,导致我二级菜单的top值和二级菜单的宽都是手动计算的,不是很严谨。请问需要怎么优化呢。 另外那个图二的港澳台 国内,是需要点击出现二级菜单的同是,背景颜色也要改变吗, 还有没有什么其他的办法来实现二级菜单呢,比如浮动什么的?
1回答
同学你好,对于你的问题解答如下:
1、将二级菜单分别放到对应的一级菜单下是可以的,代码效果实现是可以的
2、暂无更好优化方法,目前使用css实现鼠标移入一级菜单,让二级菜单显示出来就可以了。
3、不需要改变,重点是实现移入一级菜单,显示对应的二级菜单即可,暂无其他办法,后面学习了js后,老师会讲解如何通过js实现效果的,到时候再重点学习下
祝学习愉快~
相似问题