Я создал раскрывающееся меню, используя это руководство по W3 :
<nav>
<div class="nav_container">
<a href="#" class="logo"></a>
<ul>
<li class="dropdown">
<a href="">About Us <i class="fas fa-caret-down"></i></a>
<div class="dropdown-content">
<a href="">Benefits</a>
<a href="">Team</a>
<a href="">Partners</a>
</div>
</li>
<li><a href="">Solutions</a></li>
<li><a href="">Products</a></li>
<li><a href="">How to Buy</a></li>
<li class="dropdown">
<a href="">Expertise <i class="fas fa-caret-down"></i></a>
<div class="dropdown-content">
<a href="">Case Studies</a>
<a href="">Videos</a>
</div>
</li>
<li class="dropdown">
<a href="">Support <i class="fas fa-caret-down"></i></a>
<div class="dropdown-content">
<a href="">Resources</a>
<a href="">FAQ</a>
<a href="">Downloads</a>
<a href="">License Actication</a>
</div>
</li>
<li><a href="">News</a></li>
<li><a href="" id="special">Contact Us</a></li>
</ul>
</div>
</nav>
<script src="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.13.0/js/all.min.js"
integrity="sha256-KzZiKy0DWYsnwMF+X1DvQngQ2/FxF7MF3Ff72XcpuPs=" crossorigin="anonymous"></script>
/* START - Footer */
@import url("https://fonts.googleapis.com/css2?family=Montserrat&display=swap");
* {
margin: 0;
padding: 0;
box-sizing: border-box;
font-family: "Montserrat", sans-serif;
}
html {
background-color: rgba(0, 0, 0, .5);
}
a,
a:hover,
a:visited,
a:focus,
a:active {
text-decoration: none;
color: #ffffff;
}
/* START - Navigation Bar */
nav {
width: 100vw;
max-width: 100%;
left: 0;
top: 0;
position: fixed;
font-size: 1em;
transition: font-size 0.25s ease, top 0.5s ease;
background-color: rgba(47, 50, 56, 0.6);
z-index: 1000;
}
nav .nav_container {
width: 90%;
margin: 0 auto;
display: flex;
align-items: center;
padding: 0.5em 0;
}
nav .logo {
display: block;
width: 250px;
height: 4.2em;
background-image: url("../img/logo-white.png");
background-position: center;
background-repeat: no-repeat;
background-size: contain;
}
nav ul {
margin-left: auto;
display: flex;
flex-wrap: nowrap;
justify-content: space-evenly;
list-style-type: none;
transition: display 0.25s linear;
}
nav ul li {
white-space: nowrap;
transition: padding 0.25s ease;
color: #fffaff;
}
nav ul li a {
padding: 1em;
display: block;
transition: color 0.25s ease, text-shadow 0.25s ease;
text-shadow: 3px 0px 7px rgba(0, 0, 0, 0.4), -3px 0px 7px rgba(0, 0, 0, 0.4), 0px 4px 7px rgba(0, 0, 0, 0.4);
font-weight: bold;
}
nav ul li a:hover {
color: red;
text-shadow: 2px 0px 8px rgba(0, 0, 0, 0.6),
-2px 0px 8px rgba(0, 0, 0, 0.6),
0px 3px 8px rgba(0, 0, 0, 0.6);
}
nav ul #special {
color: #fffaff;
background-color: #e00024;
transition: background-color 0.25s ease;
border-radius: 5px;
text-shadow: none;
}
nav ul #special:hover {
background-color: #901418;
text-shadow: none;
}
nav .dropdown {
position: relative;
}
nav .dropdown-content {
display: none;
position: absolute;
background-color: rgba(47, 50, 56, 0.6);
/* min-width: 140px; */
box-shadow: 0px 8px 16px 0px rgba(0, 0, 0, 0.2);
z-index: 1;
}
nav .dropdown-content::before {
content: "";
position: absolute;
/* right: 100%; */
top: -0.5em;
left: 50%;
transform: translate(-50%, 0);
width: 0;
height: 0;
border-left: 0.5em solid transparent;
border-bottom: 0.5em solid #757c8c;
border-right: 0.5em solid transparent;
}
nav .dropdown-content a:hover {
background-color: rgba(47, 50, 56, 0.8);
}
nav .dropdown:hover .dropdown-content {
display: block;
}
/* END - Navigation Bar */
Вот кодовая ручка: https://codepen.io/bleah1/pen/dyYpeYr
Я добавил стрелку поверх dropdown-content
:
nav .dropdown-content::before {
content: "";
position: absolute;
/* right: 100%; */
top: -0.5em;
left: 50%;
transform: translate(-50%, 0);
width: 0;
height: 0;
border-left: 0.5em solid transparent;
border-bottom: 0.5em solid #757c8c;
border-right: 0.5em solid transparent;
}
Элемент dropdown-content
в настоящее время начинается в той же точке, что и dropdown
. Мне бы хотелось, чтобы каждая dropdown-content
и стрелка (dropdown-content::before
) были центрированы относительно текста dropdown
.
Кажется, я не могу понять это правильно.
Что вы думаете