【发布时间】:2020-10-07 16:22:23
【问题描述】:
CSS 有办法在窗口容器中包含绝对 div 吗? (如果 div position + div width > window.innerWidth,则将 div 向左平移)
我试图在 100% CSS (https://codepen.io/team/css-tricks/pen/ZYoJda) 中实现导航菜单,但是当我在屏幕右侧有菜单时,弹出菜单会按屏幕拆分。
这是一个重做的 sn-p:
nav > ul > li {
display: inline-block;
}
nav > ul > li ul {
visibility: hidden;
position: absolute;
top: 105%;
left: 0;
transition: 0.2s 1s;
}
nav > ul > li ul li {
width: 300px;
}
nav > ul > li:hover ul {
visibility: visible;
transition-delay: 0s;
}
nav ul {
list-style: none;
padding: 0;
margin: 0;
width: 100%;
}
nav li {
width: 100px;
background: #eee;
margin: 2px;
position: relative;
padding: 10px;
width: 15%;
}
nav a {
display: block;
}
div {
position: relative;
width: 100%;
overflow-x: hidden;
min-height: 200px;
}
body {
padding: 10px;
}
<div>
<nav>
<ul>
<li>No Menu 1</li>
<li>No Menu 2</li>
<li>Menu 3
<ul>
<li><a href="#">Menu 3-1</a></li>
<li><a href="#">Menu 3-2</a></li>
<li><a href="#">Menu 3-3</a></li>
</ul>
</li>
<li>Menu 4
<ul>
<li><a href="#">Menu 4-1</a></li>
<li><a href="#">Menu 4-2</a></li>
<li><a href="#">Menu 4-3</a></li>
</ul>
</li>
<li>
Menu 5
<ul>
<li><a href="#">Menu 5-1</a></li>
<li><a href="#">Menu 5-2</a></li>
<li><a href="#">Menu 5-3</a></li>
</ul>
</li>
</ul>
</nav>
</div>
【问题讨论】:
-
这没有任何意义 - “CSS 有办法在屏幕内包含绝对 div 吗?”你能让问题相对于你的问题更容易理解吗
-
我改变了问题,但很抱歉,我不知道如何更好地理解这个问题。
-
包含是什么意思?包含什么?发生了什么你不想发生的事情?
-
检查sn-p。如果您将鼠标悬停在菜单 5 上,您会看到下拉菜单,但它会被拆分。我希望这个下拉菜单向左移动(拥有整个菜单)并包含在这个容器(又名屏幕)中。
-
我认为问题是如何防止子菜单超出菜单的右边框并使它们与之对齐
标签: javascript css screen