i défini d'abord .submenu code> à
affichage: aucun; code>. Et ensuite je définis
.recpe: hover .submenu {affichage: bloc;} code>. Lorsque je survole sur le
.recpe code>, je voulais faire
.submenu code>
Affichage: bloc; code>. Mais ça ne marche pas. Pouvez-vous me dire pourquoi ça ne marche pas? Je ne peux pas vraiment comprendre cela. Utilise JavaScript la seule façon dont je peux résoudre ce problème? Voici mon code. Merci
8 Réponses :
Je ne suis pas le meilleur avec cela, mais je dirais que cela pourrait avoir quelque chose à voir avec la sélection du .recpe: survoler code> puis la sélection de
.submenu code> droite Après cela:
.recipe:hover .submenu{
display: block;
}
Je sais que je devrais réviser quelque chose là-bas, mais je ne peux pas comprendre ce que je devrais faire. Quelqu'un peut-il expliquer spécifiquement? ou je devrais juste utiliser JavaScript? Désolé pour ma connaissance
Merci d'avoir répondu. Votre avis était très serviable pour moi. :)
Vous pouvez ajouter! Important après votre code pour le rendre principal.
.recipe:hover .submenu{ display: block !important; }
Merci. J'ai essayé! Important, mais ça ne marche pas. Je téléchargerai dans un codepen.io. Merci pour votre réponse tellement. :)
Vous devez réellement ajouter la classe code> recette code> sur un élément, puis dans votre CSS, vous devez ajouter J'ai également apporté quelques modifications à la CSS afin de vous assurer que le sous-menu ne disparaît pas. P> p> ~ code> pour signifier que les éléments sont au même niveau dans Le DOM.
<!DOCTYPE html>
<html>
<meta charset="utf-8">
</html>
<head>
<title>
TEST
</title>
<style>
body {
margin: 0px;
}
#logo {
height: 56px;
padding-top: 15px;
padding-left: 45px;
font-size: 17px;
font-weight: 500;
}
.title {
padding-left: 30px;
padding-bottom: 15px;
}
.mainmenu {
border: 1px solid rgb(155, 155, 155);
text-align: center;
height: 30px;
padding-bottom: 5px;
font-size: 17px;
font-weight: 400;
display: flex;
list-style-type: none;
margin: 0px;
padding-top: 11px;
}
a + a {
box-shadow: -4px -3px 0 -3px rgb(155, 155, 155);
}
.submenu {
background-color: #f2efed;
height: 190px;
font-size: 16px;
font-weight: 300;
padding-top: 10px;
padding-left: 10px;
text-decoration: underline;
position: absolute;
margin-top: 36px;
width: 100%;
display: none;
}
a {
color: black;
text-decoration: none;
flex-grow: 1;
height: 30px;
padding-bottom: 6px;
}
.recipe:hover ~ .submenu {
display: block;
}
.submenu:hover {
display: block;
}
@font-face {
font-family: 'IBMPlexSansKR-Light';
src: url('https://cdn.jsdelivr.net/gh/projectnoonnu/noonfonts_20-07@1.0/IBMPlexSansKR-Light.woff') format('woff');
font-weight: normal;
font-style: normal;
}
</style>
</head>
<body>
<div id="logo">
<img width=45px src="icons8-solo-cup-100.png">
<span class="title">cafe in my home</span>
</div>
<div class="mainmenu">
<a href="Home.html">home</a>
<a href="Recipe.html" class="recipe">Recipe</a>
<a href="QNA.html">QNA</a>
<div class="submenu">
coffee
</div>
</div>
</body>
Wow .. Je n'ai même pas su que l'existence à propos de "~". Je l'ai essayé et ça marche ... merci beaucoup. Je respecte vos connaissances et votre gentillesse. J'étudierai plus plus fort qu'avant. Merci :)
Pouvez-vous cliquer sur le sous-menu? @Brian
Je l'ai réalisé maintenant. Le sous-menu apparaît lorsque je survole, mais lorsque j'essaie de me rapprocher du sous-menu, il disparaît. Est-ce que tu sais pourquoi?? Je suis Googling maintenant à ce sujet. Merci.
@Brian j'essaie de le réparer maintenant;).
@Brian j'ai fini de faire des modifications.
Pouvez-vous me dire comment puis-je le faire? Maintenant, je envisage d'apprendre JavaScript pour mon problème.
C'est réparé. Que voulez-vous exactement?
Pardon. Je l'ai confondu. Merci pour votre commentaire. Bonne journée :)
comme le dit Noahrgb, les sélecteurs CSS ne peuvent pas avoir cette syntaxe.
ceci: p> ne fonctionnera pas. P> Si vous voulez Sélectionnez la section verrôive du sous-menu et des classes de recette, "Chaîne": p> étant sûre de ne pas mettre d'espaces entre Si vous souhaitez le définir sur .recpe code> et
.hover code>. p>
Affichage: Bloc; Code> Lorsque le
est plané et le
.submenu code> n'est pas planifié, il suffit de mettre
affichage: bloc; code> dans le sélecteur de classe
.submenu code> indépendamment du
.recpe: plancher Sélecteur comme celui-ci: P>
.submenu {
...
display: block;
}
.recipe:hover {
...
display: block;
}
ou, pour un balisage semi-sévère, surtout si votre sous-menu recevra plus d'articles que vous pourriez faire: P> .Recipe: Hover .submenu {affichage: bloc;} code> implique que votre
.submenu code> est un enfant de
.Recpe code>.
Vous devez modifier votre balisage en quelque chose comme:
<ul class="menu">
<li>
<a class"recipe" href="Recipe.html">Recipe</a>
<ul class="submenu">
<li>coffee</li>
</ul>
</li>
</ul>
Vous pouvez absolument faire cela dans CSS3 à l'aide du sélecteur de sodiblon adjacent.
!DOCTYPE html> <html> <meta charset="utf-8"> </html> <head> <title> TEST </title> <style> body{ margin: 0px; } #logo{ height: 56px; padding-top: 15px; padding-left: 45px; font-size: 17px; font-weight: 500; } .title{ padding-left: 30px; padding-bottom: 15px; } .mainmenu{ border: 1px solid rgb(155,155,155); text-align: center; height: 30px; padding-top: 17px; padding-bottom: 5px; font-size: 17px; font-weight: 400; display: flex; list-style-type: none; margin: 0px; padding-top: 11px; } a:nth-of-type(1){ flex-grow: 1; border-right: 1px solid rgb(155,155,155); } a:nth-of-type(2){ flex-grow: 1; border-right: 1px solid rgb(155,155,155); } a:nth-of-type(3){ flex-grow: 1; } .submenu{ background-color: #f2efed; height: 190px; font-size: 16px; font-weight: 300; padding-top: 10px; padding-left: 10px; text-decoration: underline; position: absolute; margin-top: 36px; width: 100%; display: none; } a{ color: black; text-decoration: none; } .recipe:hover ~ .submenu{ display: block; } @font-face { font-family: 'IBMPlexSansKR-Light'; src: url('https://cdn.jsdelivr.net/gh/projectnoonnu/noonfonts_20-07@1.0/IBMPlexSansKR-Light.woff') format('woff'); font-weight: normal; font-style: normal; } </style> </head> <body> <div id="logo"> <img width=45px src="icons8-solo-cup-100.png"> <span class="title">cafe in my home</span> </div> <div class="mainmenu"> <a href="Home.html">home</a> <a class="recipe" href="Recipe.html">Recipe</a> <a href="QNA.html">QNA</a> <div class="submenu"> coffee </div> </div> </body> </html>
Vous ne pouvez pas survoler des articles sous-menus même qu'il est visible, il devrait être restructuré ou le faire JavaScript.
Vous ajoutez simplement ~ entre les sélecteurs pour les adjudiquer ensemble:
Je dirais que vous devez organiser votre sous-menus de manière structurelle de sorte que lorsque vous planiez l'élément, ils seraient visibles lorsque vous essayez de survoler le sous-menu.
Dans votre sous-menu de cas, vous serez caché si vous essayez de faire il est visible. J'ai un peu changé la structure pour montrer le sous-menu. Vous pouvez plus l'optimiser. P>
p>
<div id="logo"> <img width=45px src="icons8-solo-cup-100.png"> <span class="title">cafe in my home</span> </div> <ul class="mainmenu"> <li><a href="Home.html">home</a></li> <li class="recipe"><a href="Recipe.html">Recipe</a> <div class="submenuwrapper"> <div class="submenu"> coffee </div> </div> </li> <li><a href="QNA.html">QNA</a></li> </ul>
Aucun des éléments HTML n'a une recette
code> classe.