#html #css #web #drop-down-menu
Вопрос:
У меня проблема с моим выпадающим списком. Когда я нажму на второй пункт в первом раскрывающемся списке с именем «Сатурн», появится второй раскрывающийся список. Это поведение верно только в том случае, если положение второго выпадающего списка блокирует метку «Сатурн». Я хотел бы, чтобы второй выпадающий список вел себя так же, как когда я нажимаю «венера».
.container2 {
width: 1000px;
height: 500px;
margin: 100px auto;
background: #00002e;
position: relative;
}
.dropdd {
position: absolute;
top: 35%;
left: 50%;
transform: translate(-50%, -50%);
background: white;
width: 400px;
line-height: 40px;
padding: 8px 25px;
border-radius: 20px;
}
nav label {
color: sandybrown;
font-size: 22px;
font-weight: 500;
display: block;
cursor: pointer;
}
.button span {
float: right;
line-height: 40px;
transition: 0.5s;
}
.button span.rotate {
transform: rotate(-180deg);
}
nav ul {
position: absolute;
background: white;
list-style: none;
top: 75px;
left: 0;
width: 100%;
display: none;
}
[id^=btn]:checked ul {
display: block;
position: absolute;
background: white;
}
nav .menu:before {
position: absolute;
content: '';
height: 20px;
width: 20px;
background: white;
right: 20px;
top: -10px;
transform: rotate(45deg);
z-index: -1;
}
nav ul li {
line-height: 50px;
padding: 8px 20px;
cursor: pointer;
border-bottom: 1px solid rgba(0, 0, 0, 0.2);
}
nav ul li label {
font-size: 18px;
}
nav ul li a {
color: sandybrown;
text-decoration: none;
font-size: 18px;
display: block;
}
nav ul li a:hover,
nav ul li label:hover {
color: rgb(4, 4, 32);
}
nav ul ul {
position: static;
}
nav ul ul li {
line-height: 30px;
padding-left: 30px;
border-bottom: none;
}
nav ul ul li a {
color: sandybrown;
font-size: 17px;
}
nav ul li span {
font-size: 20px;
float: right;
margin-top: 10px;
padding: 0 10px;
transition: 0.5s;
}
nav ul li span.rotate {
transform: rotate(-180deg);
}
input {
display: none;
}
.a {
margin-top: 100px;
}
<html>
<body>
<div class="container2">
<center>
<h1 class="ourlabs">Our labs</h1>
</center>
<nav class="dropdd">
<label for="btn" class="button">AndroMedical labs
<span class="fas fa-caret-down"></span>
</label>
<input type="checkbox" id="btn">
<ul class="menu">
<li>
<label for="btn-2" class="first">venus
<span class="fas fa-caret-down"></span>
</label>
<input type="checkbox" id="btn-2">
<ul>
<li><a href="https://www.almokhtabar.com/">lab 1</a></li>
<li><a href="https://www.medicalcardeg.com/معامل-البرج">lab 2</a></li>
</ul>
</li>
<li>
<label for="btn-3" class="second">Saturn
<span class="fas fa-caret-down"></span>
</label>
<input type="checkbox" id="btn-3">
<ul>
<li><a href="http://www.royal-lab.net/">lab 3</a></li>
<li><a href="https://www.alfalaboratory.com/arabic/">lab 4</a></li>
</ul>
</li>
</ul>
</nav>
</body>
</html>
Комментарии:
1. Что вы подразумеваете под выпадающим списком, перемещающимся наверх? Не могли бы вы уточнить, пожалуйста? Вот что я вижу, когда нажимаю на «Андромедицинские лаборатории». prnt.sc/148t7vg
2. основной контейнер перемещается наверх, когда я нажимаю на название или стрелку
3. Вы имеете в виду, что когда вы нажмете на вторую ссылку «Сатурн», перед надписью «Сатурн» появится второй выпадающий список, и тогда вы больше не сможете нажать на него?
Ответ №1:
Трудно понять ваш вопрос, потому что у вас есть вложенные раскрывающиеся списки. Кажется, я нашел твою проблему. Когда нажимается последний элемент в раскрывающемся списке «Сатурн», появляющийся раскрывающийся список будет охватывать элемент в первом раскрывающемся списке, поэтому он охватывает элемент «Сатурн». По крайней мере, я думаю, что это то, что ты имел в виду, говоря «Двигаться наверх».Я исправил это, добавив верхнюю часть поля в ul, См. Пример кода ниже:
.container2 {
width: 1000px;
height: 500px;
margin: 100px auto;
background: #00002e;
position: relative;
}
.dropdd {
position: absolute;
top: 35%;
left: 50%;
transform: translate(-50%, -50%);
background: white;
width: 400px;
line-height: 40px;
padding: 8px 25px;
border-radius: 20px;
}
nav label {
color: sandybrown;
font-size: 22px;
font-weight: 500;
display: block;
cursor: pointer;
}
.button span {
float: right;
line-height: 40px;
transition: 0.5s;
}
.button span.rotate {
transform: rotate(-180deg);
}
nav ul {
position: absolute;
background: white;
list-style: none;
top: 75px;
left: 0;
width: 100%;
display: none;
}
[id^=btn]:checked ul {
display: block;
position: absolute;
background: white;
}
nav .menu:before {
position: absolute;
content: '';
height: 20px;
width: 20px;
background: white;
right: 20px;
top: -10px;
transform: rotate(45deg);
z-index: -1;
}
nav ul li {
line-height: 50px;
padding: 8px 20px;
cursor: pointer;
border-bottom: 1px solid rgba(0, 0, 0, 0.2);
}
nav ul li label {
font-size: 18px;
}
nav ul li a {
color: sandybrown;
text-decoration: none;
font-size: 18px;
display: block;
}
nav ul li a:hover,
nav ul li label:hover {
color: rgb(4, 4, 32);
}
nav ul ul {
position: static;
}
nav ul ul li {
line-height: 30px;
padding-left: 30px;
border-bottom: none;
}
nav ul ul li a {
color: sandybrown;
font-size: 17px;
}
nav ul li span {
font-size: 20px;
float: right;
margin-top: 10px;
padding: 0 10px;
transition: 0.5s;
}
nav ul li span.rotate {
transform: rotate(-180deg);
}
input {
display: none;
}
.a {
margin-top: 100px;
}
.last-item
{
margin-top:58px;
}
<html>
<body>
<div class="container2">
<center>
<h1 class="ourlabs">Our labs</h1>
</center>
<nav class="dropdd">
<label for="btn" class="button">AndroMedical labs
<span class="fas fa-caret-down"></span>
</label>
<input type="checkbox" id="btn">
<ul class="menu">
<li>
<label for="btn-2" class="first">venus
<span class="fas fa-caret-down"></span>
</label>
<input type="checkbox" id="btn-2">
<ul>
<li><a href="https://www.almokhtabar.com/">lab 1</a></li>
<li><a href="https://www.medicalcardeg.com/معامل-البرج">lab 2</a></li>
</ul>
</li>
<li>
<label for="btn-3" class="second">Saturn
<span class="fas fa-caret-down"></span>
</label>
<input type="checkbox" id="btn-3">
<ul class="last-item">
<li><a href="http://www.royal-lab.net/">lab 3</a></li>
<li><a href="https://www.alfalaboratory.com/arabic/">lab 4</a></li>
</ul>
</li>
</ul>
</nav>
</body>
</html>
кстати, у вас также отсутствует html-тег в начале
Комментарии:
1. Ладно, это была проблема. но также и на главном веб-сайте, когда я добавляю этот раскрывающийся список и нажимаю на «Andromedical labs», он перемещается вверх, оставляя свою область. Надеюсь, вы понимаете, что я имею в виду.
2. а также есть кнопка со стрелкой, но я не знаю, почему она невидима -_-
3. Стрелка не видна, потому что библиотека fontawesome, используемая для значков, не видна, если вы не включаете css/javascript
4. Извините, я не понимаю, что вы подразумеваете под повышением. Когда я нажимаю на ваш пример, все находится на определенном месте. Вы имеете в виду, что пространство между надписью «Andromedical» и выпадающим меню слишком велико?
5. Я исправил это.. проблема заключалась в (NAV UL) на навигационной панели : когда я редактирую ее и даю позицию: абсолютную; она также изменяет позицию «выпадающего списка».