Разбираемся в CSS
Anonymous
CSS: Как расширить раскрывающееся меню на панели навигации по горизонтали по ширине контейнера страницы?
Сообщение
Anonymous » 26 окт 2024, 23:13
В настоящее время при наведении курсора на элемент на панели навигации открывается вот такое горизонтальное раскрывающееся меню (обратите внимание на ширину раскрывающегося меню):
Можете ли вы помочь мне и показать, как это получить? Я предпринял несколько попыток, но мне это не удалось.
style.css:
Код: Выделить всё
* {
box-sizing: border-box;
}
/* Navbar */
.navbar {
background-color: #000033;
padding: 0px 0; /* Imposta il padding verticale invece dell'altezza */
display: flex;
align-items: center;
position: relative;
z-index: 1000;
}
/* Stile logo e testo del brand */
.logo {
height: 80px;
margin-right: 10px;
}
.brand-text {
color: #ffffff;
display: flex;
flex-direction: column;
justify-content: center;
text-align: left;
line-height: 1;
}
.fondazione {
font-size: 0.80em;
font-weight: normal;
letter-spacing: 0.28em;
}
.surname {
font-size: 2.4rem;
font-weight: bold;
letter-spacing: 0.05em;
}
/* Rettangolino colorato sotto le voci della navbar */
.navbar-nav .nav-link {
color: #ffffff;
margin-right: 10px;
padding: 0 10px; /* Gestisce lo spazio tra i link */
line-height: normal; /* Usa la line-height di default */
position: relative;
}
.navbar-nav .nav-link:hover::after {
content: '';
display: block;
width: 100%;
height: 3px; /* Altezza del rettangolo */
background-color: #459439;
position: absolute;
bottom: 0; /* Allineato al bordo inferiore */
left: 0;
z-index: 1000;
}
/* Rimozione della freccia dropdown */
.nav-link.dropdown-toggle::after {
display: none;
}
/* Dropdown orizzontale */
.dropdown-menu-horizontal {
display: none;
background-color: #000033 !important;
padding: 20px !important;
min-width: 100%;
border-radius: 0;
position: absolute;
left: 0;
top: 100%;
z-index: 9999;
}
.dropdown-item-horizontal {
color: #ffffff;
display: inline-flex;
align-items: center;
padding: 10px 20px;
margin-right: 30px;
white-space: nowrap;
}
.dropdown-item-horizontal img {
width: 50px;
height: 50px;
margin-right: 15px;
}
.dropdown-item-horizontal:hover {
color: #d4d4ff;
text-decoration: none;
}
/* Mostra il menu a tendina al passaggio del mouse */
.nav-item:hover .dropdown-menu-horizontal {
display: flex;
justify-content: space-around;
}
/* Responsive per dispositivi mobili */
@media (max-width: 768px) {
.navbar-expand-md .navbar-nav .nav-link {
padding-top: 20px;
padding-bottom: 20px;
}
}
index.html:
Код: Выделить всё
Example
[*]
[url=#]
[img]img/...[/img]
AAAAAAA
XXXX
[/url]
[list]
[url=#]COMPANY[/url]
[url=#]
[img]...[/img]
Example 1[/url]
[url=#]
[img]...[/img]
Example 2[/url]
[url=#]
[img]...[/img]
Example 3[/url]
[*][url=#]Item 2[/url]
[*][url=#]Item 3[/url]
[*][url=#]Item 4[/url]
[*][url=#]Item 5[/url]
[*][url=#]Item 6[/url]
[*][url=#]Item 7[/url]
[*][url=#]Item 8[/url]
[/list]
script.js:
Код: Выделить всё
document.addEventListener("DOMContentLoaded", function () {
const dropdowns = document.querySelectorAll(".nav-item.dropdown");
dropdowns.forEach(dropdown => {
dropdown.addEventListener("mouseenter", function () {
const menu = this.querySelector(".dropdown-menu-horizontal");
if (menu) menu.style.display = "flex";
});
dropdown.addEventListener("mouseleave", function () {
const menu = this.querySelector(".dropdown-menu-horizontal");
if (menu) menu.style.display = "none";
});
});
});
Спасибо
Подробнее здесь:
https://stackoverflow.com/questions/791 ... s-the-widt
1729973584
Anonymous
В настоящее время при наведении курсора на элемент на панели навигации открывается вот такое горизонтальное раскрывающееся меню (обратите внимание на ширину раскрывающегося меню): [img]https://i.sstatic.net/ANCfM18J.png[/img] Можете ли вы помочь мне и показать, как это получить? Я предпринял несколько попыток, но мне это не удалось. [b]style.css:[/b] [code]* { box-sizing: border-box; } /* Navbar */ .navbar { background-color: #000033; padding: 0px 0; /* Imposta il padding verticale invece dell'altezza */ display: flex; align-items: center; position: relative; z-index: 1000; } /* Stile logo e testo del brand */ .logo { height: 80px; margin-right: 10px; } .brand-text { color: #ffffff; display: flex; flex-direction: column; justify-content: center; text-align: left; line-height: 1; } .fondazione { font-size: 0.80em; font-weight: normal; letter-spacing: 0.28em; } .surname { font-size: 2.4rem; font-weight: bold; letter-spacing: 0.05em; } /* Rettangolino colorato sotto le voci della navbar */ .navbar-nav .nav-link { color: #ffffff; margin-right: 10px; padding: 0 10px; /* Gestisce lo spazio tra i link */ line-height: normal; /* Usa la line-height di default */ position: relative; } .navbar-nav .nav-link:hover::after { content: ''; display: block; width: 100%; height: 3px; /* Altezza del rettangolo */ background-color: #459439; position: absolute; bottom: 0; /* Allineato al bordo inferiore */ left: 0; z-index: 1000; } /* Rimozione della freccia dropdown */ .nav-link.dropdown-toggle::after { display: none; } /* Dropdown orizzontale */ .dropdown-menu-horizontal { display: none; background-color: #000033 !important; padding: 20px !important; min-width: 100%; border-radius: 0; position: absolute; left: 0; top: 100%; z-index: 9999; } .dropdown-item-horizontal { color: #ffffff; display: inline-flex; align-items: center; padding: 10px 20px; margin-right: 30px; white-space: nowrap; } .dropdown-item-horizontal img { width: 50px; height: 50px; margin-right: 15px; } .dropdown-item-horizontal:hover { color: #d4d4ff; text-decoration: none; } /* Mostra il menu a tendina al passaggio del mouse */ .nav-item:hover .dropdown-menu-horizontal { display: flex; justify-content: space-around; } /* Responsive per dispositivi mobili */ @media (max-width: 768px) { .navbar-expand-md .navbar-nav .nav-link { padding-top: 20px; padding-bottom: 20px; } } [/code] [b]index.html:[/b] [code] Example [*] [url=#] [img]img/...[/img] AAAAAAA XXXX [/url] [list] [url=#]COMPANY[/url] [url=#] [img]...[/img] Example 1[/url] [url=#] [img]...[/img] Example 2[/url] [url=#] [img]...[/img] Example 3[/url] [*][url=#]Item 2[/url] [*][url=#]Item 3[/url] [*][url=#]Item 4[/url] [*][url=#]Item 5[/url] [*][url=#]Item 6[/url] [*][url=#]Item 7[/url] [*][url=#]Item 8[/url] [/list] [/code] [b]script.js:[/b] [code]document.addEventListener("DOMContentLoaded", function () { const dropdowns = document.querySelectorAll(".nav-item.dropdown"); dropdowns.forEach(dropdown => { dropdown.addEventListener("mouseenter", function () { const menu = this.querySelector(".dropdown-menu-horizontal"); if (menu) menu.style.display = "flex"; }); dropdown.addEventListener("mouseleave", function () { const menu = this.querySelector(".dropdown-menu-horizontal"); if (menu) menu.style.display = "none"; }); }); }); [/code] Спасибо Подробнее здесь: [url]https://stackoverflow.com/questions/79129133/css-in-a-navbar-how-can-i-extend-the-dropdown-menu-horizontally-across-the-widt[/url]