gpt4 book ai didi

html - 固定元素(100% 高度)和 css3 变换/过渡的奇怪行为

转载 作者:太空宇宙 更新时间:2023-11-03 18:21:01 27 4
gpt4 key购买 nike

我在 Windows Vista PC 上使用 Google Chrome 32。我目前正在为一个元素构建一个非 Canvas 菜单,使用 position:fixed 设置布局,使用 css transform 显示/隐藏菜单。

为此,我遇到了一个奇怪的布局行为。如果我在一个狭窄的窗口中打开以检查带有 Canvas 外菜单的移动版本,一切都很好,菜单位置正确并且具有 100% height,就像我希望的那样。但是,如果我调整窗口大小,菜单将失去其 100% 的高度,元素将获得父级高度(也使用 position: fixed)。有没有人也遇到过这个问题?如果是,我该如何避免?

这是菜单的标记:

<body>
<header>
<div class="container">
<span id="logo">LOGO</span>
<a href="#" id="mobile-nav">Menu</a>
<nav>
<ul id="menu" >
<li><a href="#">Link</a></li>
<li><a href="#">Link</a></li>
<li><a href="#">Link</a></li>
<li><a href="#">Link</a></li>
<li><a href="#">Link</a></li>
</ul>
</nav>
</div>
</header>
</body>

还有 CSS:

body{
font-family: sans-serif;
}

header, nav{
position: fixed;
top: 0;
}
header{
width: 100%;
left: 0;
height: 45px;
background-color: #ffcc00;
-webkit-transition: all .2s ease-in-out;
transition: all .2s ease-in-out;
}

.container{
max-width: 1024px;
position: relative;
margin: 0 auto;
display: block;
}

#logo{
position: absolute;
top: 10px;
left: 10px;
}

#mobile-nav{
display: inline-block;
padding: 7px 10px;
position: absolute;
top: 5px;
right: 5px;
background-color: #cc3300;
color: #fff;
text-decoration: none;
}

nav{
right: 0;
bottom: 0;
width: 30%;
background-color: #cc3300;
z-index: 999;
-webkit-transform: translateX(100%);
transform: translateX(100%);
}

body.active header
{
-webkit-transform: translateX(-30%);
transform: translateX(-30%);
}

#menu{
margin: 0;
padding: 0;
list-style: none;
}

#menu a{
display: block;
padding: 20px;
text-decoration: none;
color: #fff;
font-weight: bold;
}

#menu a:hover{
background-color: #ff3300;
}

您可以 check this pen重现行为。先使用菜单按钮打开/关闭菜单,然后打开菜单并调整 View 大小以检查问题。

最佳答案

我修改了 HTML 结构以及您的一些 CSS 以解决您遇到的问题。这是一个 pen的解决方案。

我认为这个问题与 translate 有关,所以我将其改为使用 position

关于html - 固定元素(100% 高度)和 css3 变换/过渡的奇怪行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21841296/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com