在大屏幕上,菜单和语言必须紧贴右边缘,这样就可以了。但是当窗口缩小时,语言\u200b\u200bis的块总是一样大小,溢出时菜单被切断。似乎溢出根本不起作用。
.container {
display: flex;
}
.header-logo {
border: 1px solid red;
width: 200px;
height: 87px;
display: flex;
margin-right: 85px;
}
.header-content {
width: 100%;
display: flex;
flex-wrap: wrap;
align-content: flex-end;
}
.header-content-menu {
display: flex;
flex-basis: 100%;
justify-content: flex-end;
}
.header-content-menu {
padding-bottom: 7px;
}
nav {
width: 100%;
}
nav ul {
display: flex;
justify-content: space-between;
padding-left: 32px;
}
nav a {
font-weight: 700;
white-space: nowrap;
}
.header-content-language {
margin-left: 20px;
display: flex;
}
.header-content-language a {
text-transform: uppercase;
margin-left: 5px;
font-size: 0.938em;
}
.current-language {
font-weight: 700;
}
@media (max-width: 1000px) {
nav {
overflow: hidden;
}
nav ul {
justify-content: flex-start;
overflow: hidden;
}
nav ul li {
margin-right: 10px;
}
nav ul::after {
content: "...";
}
}
<div class="container">
<div class="header-logo">
</div>
<div class="header-content">
<div class="header-content-menu">
<nav>
<ul>
<li><a href="#">Линк1</a></li>
<li><a href="#">Линк2</a></li>
<li><a href="#">Линк3</a></li>
<li><a href="#">Линк4</a></li>
<li><a href="#">Линк5</a></li>
<li><a href="#">Линк6</a></li>
</ul>
</nav>
<div class="header-content-language">
<a class="current-language" href="#">ru</a>
<a href="#">ua</a>
</div>
</div>
</div>
</div>
像这样:
width:
,而是通过flex:
在我们的例子中,这些是徽标和语言的固定 flex,并自动计算菜单的大小(我们通过 计数calc()
)。justify-content
在容器上设置缩进。list-style:none
在菜单上等等。缺点:
因为 我们这里只有 CSS,没有办法巧妙地隐藏菜单项。有的被切断。
要解决这个问题,你需要连接JS,计算菜单的宽度,计算每个项目的宽度,看看应该隐藏哪些项目。然后通过单击“隐藏”菜单项在下拉列表中显示的“点”附加到“后”按钮。
在“flex”上,这是无法组织的。
这是一个如何在一个好的 opencart 模板中组织它的示例:https ://unishop2.tk/
你可以从他们的 JS 代码中得到这个菜单项的“启发”。
像这样 - 溢出时,它在按钮下折叠