为什么悬停(hover)不起作用,样式不显示?
P粉842215006
P粉842215006 2023-08-02 20:04:07
[CSS3讨论组]
<p>我正在设计导航条,但是我的鼠标悬停不起作用。当我悬停在“man”项目在我的下拉菜单,它的悬停样式,不工作,不显示样式在检查。有什么问题吗?这是我的HTML代码:</p> <p><br /></p> <pre class="brush:css;toolbar:false;">/* Navbar container */ body { margin: 0; padding: 0; box-sizing: border-box; } li { text-decoration: none; } .nav-container { direction: rtl; text-align: right } .navbar { overflow: hidden; background-color: #333; font-family: Arial; } /* Links inside the navbar */ .navbar a { float: right; font-size: 16px; color: white; text-align: center; padding: 14px 16px; text-decoration: none; } /* The dropdown container */ .dropdown { float: right; overflow: hidden; } /* Dropdown button */ .dropdown .dropbtn { font-size: 16px; border: none; outline: none; color: white; padding: 14px 16px; background-color: inherit; font: inherit; /* Important for vertical align on mobile phones */ margin: 0; /* Important for vertical align on mobile phones */ } /* Dropdown content (hidden by default) */ .dropdown-content { display: none; position: absolute; background-color: #f9f9f9; width: 100%; left: 0; box-shadow: 0px 8px 16px 0px rgba(0, 0, 0, 0.2); z-index: 1; } .dropdown:hover .dropdown-content { display: block; } .megamenu-container { background-color: aqua; width: 100%; } .megmenu { width: 100%; } .megamenu-title { width: 20%; background-color: blue; display: inline-block; padding: 5px 15px; vertical-align: top; } .megamenu-subitems-default { width: 70%; background-color: blueviolet; display: inline-block; padding: 15px; } .megamenu-item { float: unset !important; padding: 0 !important; } .man:hover .megamenu-subitems-default { visibility: hidden; } #subitems { display: inline-block; visibility: hidden; background-color: yellowgreen; width: 70%; } .man:hover #subitems { visibility: visible; } .test { color: yellow; } .man:hover .test { color: wheat; }</pre> <pre class="brush:html;toolbar:false;">&lt;!DOCTYPE html&gt; &lt;html lang="en"&gt; &lt;head&gt; &lt;meta charset="UTF-8"&gt; &lt;meta http-equiv="X-UA-Compatible" content="IE=edge"&gt; &lt;meta name="viewport" content="width=device-width, initial-scale=1.0"&gt; &lt;link rel="stylesheet" href="./megamenu.css"&gt; &lt;title&gt;Document&lt;/title&gt; &lt;/head&gt; &lt;body&gt; &lt;div class="nav-container"&gt; &lt;div class="navbar"&gt; &lt;a href="#home"&gt;Home&lt;/a&gt; &lt;a href="#news"&gt;News&lt;/a&gt; &lt;div class="dropdown"&gt; &lt;button class="dropbtn"&gt;Dropdown &lt;i class="fa fa-caret-down"&gt;&lt;/i&gt; &lt;/button&gt; &lt;div class="dropdown-content"&gt; &lt;div class="megamenu-container"&gt; &lt;div class="megmenu"&gt; &lt;div class="megamenu-title"&gt; &lt;ul&gt; &lt;li &gt; &lt;div class="man"&gt; &lt;a class="megamenu-item" href="#"&gt;man&lt;/a&gt; &lt;/div&gt; &lt;/li&gt; &lt;li id="woman"&gt; &lt;a class="megamenu-item" href="#"&gt;woman&lt;/a&gt; &lt;/li&gt; &lt;li id="kid"&gt; &lt;a class="megamenu-item" href="#"&gt;kid&lt;/a&gt; &lt;/li&gt; &lt;/ul&gt; &lt;/div&gt; &lt;div class="megamenu-subitems-default"&gt; &lt;p&gt;hello-default&lt;/p&gt; &lt;/div&gt; &lt;div class="megamenu-subitems-test" id="subitems"&gt; &lt;p&gt;hello-1&lt;/p&gt; &lt;/div&gt; &lt;div class="megamenu-subitems"&gt; &lt;p&gt;hello-2&lt;/p&gt; &lt;/div&gt; &lt;div class="megamenu-subitems"&gt; &lt;p&gt;hello-3&lt;/p&gt; &lt;/div&gt; &lt;div class="megamenu-subitems"&gt; &lt;p&gt;hello-4&lt;/p&gt; &lt;/div&gt; &lt;/div&gt; &lt;/div&gt; &lt;p class="test"&gt;test&lt;/p&gt; &lt;/div&gt; &lt;/div&gt; &lt;/div&gt; &lt;/div&gt; &lt;/body&gt; &lt;/html&gt;</pre> <p><br /></p> <p>当我悬停在“man”项目在我的下拉菜单,它的悬停样式不工作,不显示样式在Inspect</p>
P粉842215006
P粉842215006

全部回复(1)
P粉226413256

在您的CSS文件中,您有这个规则:

.man:hover #subitems {
 visibility: visible;    
}

然而,#subitems不是.man的后代。您需要将#subitems放置在与.man相同的层级上,或者作为它的后代。

这个CSS规则指定了当.hover在具有类.man的祖先之一上悬停时,具有id为#subitems的元素将变为可见;但是,在您的HTML中,.man是一个只有一个子元素.megamenu-item的div。

为了隐藏默认的子项div,请尝试替换这个选择器:

.man:hover .megamenu-subitems-default{
    visibility: hidden;
}

with:

.megamenu-title:hover ~ .megamenu-subitems-default{
    visibility: hidden;
}

对于每个菜单项的子项,我建议您要么为每个子项div提供一个唯一的ID并使用JavaScript控制它们的可见性,要么更改您的布局,使.megamenu-subitems div与li元素处于同一级别,并使用兄弟选择器,或者将它们作为li元素的后代。


热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号