Warum werden beim Schweben keine Arbeit und keine Stile angezeigt?
P粉842215006
2023-08-02 20:04:07
<p>Ich entwerfe eine Navigationsleiste, aber mein Mouseover funktioniert nicht. Wenn ich den Mauszeiger über das Element „Mann“ in meinem Dropdown-Menü bewege, funktioniert der Hover-Stil nicht und der Stil wird im Inspektor nicht angezeigt.有什么问题吗?这是我的HTML代码:</p>
<p><br /></p>
<pre class="brush:css;toolbar:false;">/* Navbar-Container */
Körper {
Rand: 0;
Polsterung: 0;
Boxgröße: border-box;
}
li {
Textdekoration: keine;
}
.nav-container {
Regie: RTL;
Textausrichtung: rechts
}
.navbar {
Überlauf versteckt;
Hintergrundfarbe: #333;
Schriftfamilie: Arial;
}
/* Links innerhalb der Navigationsleiste */
.navbar a {
schweben rechts;
Schriftgröße: 16px;
Farbe weiß;
Textausrichtung: Mitte;
Polsterung: 14px 16px;
Textdekoration: keine;
}
/* Der Dropdown-Container */
.runterfallen {
schweben rechts;
Überlauf versteckt;
}
/* Dropdown-Schaltfläche */
.dropdown .dropbtn {
Schriftgröße: 16px;
Grenze: keine;
Gliederung: keine;
Farbe weiß;
Polsterung: 14px 16px;
Hintergrundfarbe: erben;
Schriftart: erben;
/* Wichtig für die vertikale Ausrichtung auf Mobiltelefonen */
Rand: 0;
/* Wichtig für die vertikale Ausrichtung auf Mobiltelefonen */
}
/* Dropdown-Inhalt (standardmäßig ausgeblendet) */
.dropdown-content {
Anzeige: keine;
Position: absolut;
Hintergrundfarbe: #f9f9f9;
Breite: 100 %;
links: 0;
Box-Shadow: 0px 8px 16px 0px rgba(0, 0, 0, 0,2);
Z-Index: 1;
}
.dropdown:hover .dropdown-content {
Bildschirmsperre;
}
.megamenu-container {
Hintergrundfarbe: Aqua;
Breite: 100 %;
}
.megmenu {
Breite: 100 %;
}
.megamenu-title {
Breite: 20 %;
Hintergrundfarbe: blau;
Anzeige: Inline-Block;
Polsterung: 5px 15px;
vertikal ausrichten: oben;
}
.megamenu-subitems-default {
Breite: 70 %;
Hintergrundfarbe: blauviolett;
Anzeige: Inline-Block;
Polsterung: 15px;
}
.megamenu-item {
float: nicht gesetzt !important;
Polsterung: 0 !important;
}
.man:hover .megamenu-subitems-default {
Sichtbarkeit: verborgen;
}
#subitems {
Anzeige: Inline-Block;
Sichtbarkeit: verborgen;
Hintergrundfarbe: gelbgrün;
Breite: 70 %;
}
.man:hover #subitems {
Sichtbarkeit: sichtbar;
}
.prüfen {
Farbe Gelb;
}
.man:hover .test {
Farbe: Weizen;
}</pre>
<pre class="brush:html;toolbar:false;"><!DOCTYPE html>
<html lang="de">
<Kopf>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link rel="stylesheet" href="./megamenu.css">
<title>Dokument</title>
</head>
<Körper>
<div class="nav-container">
<div class="navbar">
<a href="#home">Home</a>
<a href="#news">Neuigkeiten</a>
<div class="dropdown">
<button class="dropbtn">Dropdown
<i class="fa fa-caret-down"></i>
</button>
<div class="dropdown-content">
<div class="megamenu-container">
<div class="megmenu">
<div class="megamenu-title">
<ul>
<li >
<div class="man">
<a class="megamenu-item" href="#">man</a>
</div>
</li>
<li id="woman">
<a class="megamenu-item" href="#">woman</a>
</li>
<li id="kid">
<a class="megamenu-item" href="#">kid</a>
</li>
</ul>
</div>
<div class="megamenu-subitems-default">
<p>hello-default</p>
</div>
<div class="megamenu-subitems-test" id="subitems">
<p>hello-1</p>
</div>
<div class="megamenu-subitems">
<p>hello-2</p>
</div>
<div class="megamenu-subitems">
<p>hello-3</p>
</div>
<div class="megamenu-subitems">
<p>hello-4</p>
</div>
</div>
</div>
<p class="test">test</p>
</div>
</div>
</div>
</div>
</body>
</html></pre>
<p><br /></p>
<p>gt;
在您的CSS文件中,您有这个规则:
然而,#subitems不是.man的后代。您需要将#subitems放置在与.man相同的层级上,或者作为它的后代。
这个CSS规则指定了当.hover在具有类.man的祖先之一上悬停时,具有id为#subitems的元素将变为可见;但是,在您的HTML中,.man是一个只有一个子元素.megamenu-item的div。
为了隐藏默认的子项div,请尝试替换这个选择器:
with:
对于每个菜单项的子项,我建议您要么为每个子项div提供一个唯一的ID并使用JavaScript控制它们的可见性,要么更改您的布局,使.megamenu-subitems div与li元素处于同一级别,并使用兄弟选择器,或者将它们作为li元素的后代。