老师有问题

老师有问题

http://img1.sycdn.imooc.com//climg/5e5f95130914078406910393.jpg

老师这里没有设置js,class active在html中也没有设置,它是那里冒出来的 

.dropdown-active .dropdown-toggle,这句话有什么用,hove后css不就发生改变了吗。不明白看了两遍

http://img1.sycdn.imooc.com//climg/5e5f95fc099dba2410800204.jpg

正在回答

登陆购买课程后可参与讨论,去登陆

3回答

同学你好,解答如下:

1、.dropdown-active是直接出现在css中,没有设置class ,但是js中设置了class啊:

http://img1.sycdn.imooc.com//climg/5e60ccb60955106a04540124.jpg

当设置了dropdown-active值的时候,样式才会生效,不设置就不生效。

2、凡是有.dropdown-active类名的样式,默认情况下是没有效果的,因为html中并没有添加相关的class名。但是如果动画中使用js方式,通过添加class来实现效果,那么有.dropdown-active类名的样式就会生效。

3、代码中做了双重保险,js不添加生效的话,hover也会生效的,如果觉得多余的话,自己测试的时候也可以去掉。

祝学习愉快!

提问者 早知今日何必当初 2020-03-05 15:22:09

1、css中是提前添加的,元素中有dropdown-active类名的时候,设置的样式就生效了。可以参考另外一个提问的问题:

css没有加,html也没有


  • .nav-site{ width: 100%; background-color: #f3f5f7; } .nav-site .container{ height: 44px; line-height: 44px; border-bottom: 1px solid #cdd0d4; } .nav-site-login{ color: #f01414; } .nav-site-signup, .nav-site-moblie{ margin-left: 10px; } .nav-site-category{ margin: 10px; } .nav-size-service{ margin-right: 15px; } /*dropdown*/ .dropdown{ position: relative; } .dropdown-toggle{ display: block; height: 100%; padding: 0 16px 0 12px; border-left:1px solid #f3f5f7 ; border-right:1px solid #f3f5f7 ; position: relative; z-index: 2; } .dropdown-arrow{ display: inline-block; width: 8px; height: 8px; background: url(../img/dropdown-arrow.png) no-repeat; margin-left: 8px; vertical-align: middle; } .dropdown-layer{ display: none; position: absolute; top: 43px; z-index: 1; background-color: #fff; border: 1px solid #cdd0d4; } .dropdown-left{ left: 0; right: auto; } .dropdown-right{ left: auto; right: 0; } .dropdown-item{ height: 30px; line-height: 30px; display: block; color: #4d555d; white-space: nowrap; padding: 0 12px; } .dropdown-item:hover{ background-color: #f3f5f7; } .dropdown-active .dropdown-toggle, .dropdown:hover .dropdown-toggle{ background-color:#fff; border-color:#cdd0d4; } .dropdown-active .dropdown-arrow, .dropdown:hover .dropdown-arrow{ background-image:url(../img/dropdown-arrow-active.png); } .dropdown-active .dropdown-layer, .dropdown:hover .dropdown-layer{ display:block; }
    2020-03-05 15:22:35
  • .dropdown-active是直接出现在css中,没有设置class ,.dropdown-active .dropdown-layer, 这句话没有任何意义,下面的.dropdown:hover .dropdown-layer就可以实现了,上个问题也是我问的。互相矛盾老师,最后一节课最后一节 .dropdown-active .dropdown-layer, 有什么用
    2020-03-05 15:25:39
好帮手慕星星 2020-03-05 10:32:39

同学你好,问题解答如下:

1、css中是提前添加的,元素中有dropdown-active类名的时候,设置的样式就生效了。可以参考另外一个提问的问题:

https://class.imooc.com/course/qadetail/199582

2、上图粘贴的代码中是两种实现方式:

http://img1.sycdn.imooc.com//climg/5e606456093b86df05850119.jpg

一种是js,通过代码添加dropdown-active类名实现效果;另外一种是css,通过:hover实现效果。

祝学习愉快!

问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
2.组件化网页开发
  • 参与学习           人
  • 提交作业       1121    份
  • 解答问题       14456    个

本阶段在运用JS实现动态网页开发的基础上,带你深入理解企业开发核心思想,完成一个企业级网页的开发,体验前端工程师的成就感。

了解课程
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师