Я пытался создать выпадающее меню, которое, кажется, работает с некоторым успехом, но подвох ... Это представляет выпадающее меню на правой стороне элемента, а не прямо под ним. Я подозреваю, что это как-то связано с позицией или отступом, но я не смог понять это. Спасибо, что посмотрели, я все еще новичок в css, и это много значит!
Html
<nav id="navigatie" class="nav">
<ul>
<li><a class="active" href="index.html">Home</a>
<li><a href="html/producten.html">Producten</a></li>
<li><a href="html/personaliseren.html">Personaliseren</a></li>
<li><a>Over ons</a>
<ul>
<li><a href="html/blog.html">Blog</a></li>
<li><a href="html/contact.html">Contact</a></li>
<li><a href="html/faq.html">FAQ</a></li>
</ul>
</li>
</ul>
</nav>
Css
html {
background: #936A4A;
}
nav {
position: absolute;
width: 100%;
top: 0;
left: 0;
background: #F5F5F5;
}
ul {
display: flex;
flex-wrap: wrap;
padding: 0;
}
ul li {
width: 25%;
}
ul li > ul {
display: none;
flex-direction: column;
}
ul li:hover > ul {
display: flex;
flex-wrap: wrap;
}
ul li > ul li {
width: 100%;
height: 100%;
}
li {
display: flex;
flex: auto;
}
li a {
color: #B85750;
text-decoration: none;
}
.active {
pointer-events: none
}
2 ответа
Да, вам нужно расположить подменю абсолютно по отношению к родителю li
.
html {
background: #936A4A;
}
nav {
position: absolute;
width: 100%;
top: 0;
left: 0;
background: #F5F5F5;
}
ul {
display: flex;
flex-wrap: wrap;
padding: 0;
}
ul li {
width: 25%;
position: relative;
}
ul li>ul {
position: absolute;
left: 0;
top: 100%;
width: 100%;
background: lightblue;
/* display: none; */
flex-direction: column;
}
ul li:hover>ul {
display: flex;
flex-wrap: wrap;
}
ul li>ul li {
width: 100%;
}
li {
display: flex;
flex: auto;
}
li a {
color: #B85750;
text-decoration: none;
}
.active {
pointer-events: none
}
<nav id="navigatie" class="nav">
<ul>
<li><a class="active" href="index.html">Home</a>
<li><a href="html/producten.html">Producten</a></li>
<li><a href="html/personaliseren.html">Personaliseren</a></li>
<li><a>Over ons</a>
<ul>
<li><a href="html/blog.html">Blog</a></li>
<li><a href="html/contact.html">Contact</a></li>
<li><a href="html/faq.html">FAQ</a></li>
</ul>
</li>
</ul>
</nav>
Пожалуйста, взгляните на следующее решение.
html {
background: #fff;
}
.parent-container{
position: relative;
width:100%;
height: 100%;
}
nav {
background: #F5F5F5;
}
ul {
list-style: none;
margin: 0;
padding-left: 0;
}
li {
background: #936A4A;
display: block;
float: left;
padding: 1rem;
position: relative;
text-decoration: none;
transition-duration: 0.5s;
}
li a {
color: #fff;
}
li:hover {
cursor: pointer;
}
ul li ul {
visibility: hidden;
opacity: 0;
min-width: 5rem;
position: absolute;
transition: all 0.5s ease;
margin-top: 1rem;
left: 0;
display: none;
background: lightblue;
}
ul li:hover > ul,
ul li ul:hover {
visibility: visible;
opacity: 1;
display: block;
}
ul li ul li {
clear: both;
width: 100%;
}
<!DOCTYPE html>
<html>
<head>
<link href="app.css" rel="stylesheet" type="text/css"/>
</head>
<body>
<div class="parent-container">
<nav role="navigation" class="nav" id="navigatie">
<ul>
<li><a class="active" href="index.html">Home</a>
<li><a href="html/producten.html">Producten</a></li>
<li><a href="html/personaliseren.html">Personaliseren</a></li>
<li><a href="#">Over ons</a>
<ul class="dropdown">
<li><a href="html/blog.html">Blog</a></li>
<li><a href="html/contact.html">Contact</a></li>
<li><a href="html/faq.html">FAQ</a>/<li>
</ul>
</li>
</ul>
</nav>
</div>
</body>
</html>
Похожие вопросы
Новые вопросы
html
HTML (язык разметки гипертекста) - это язык разметки для создания веб-страниц и другой информации, отображаемой в веб-браузере. Вопросы, касающиеся HTML, должны включать минимальный воспроизводимый пример и некоторое представление о том, чего вы пытаетесь достичь. Этот тег редко используется отдельно и часто используется вместе с [CSS] и [javascript].