提问人:Saif eldeen Adel 提问时间:1/25/2021 最后编辑:DanialSaif eldeen Adel 更新时间:8/6/2021 访问量:741
阻止 div 在导航栏上重叠
Stop div from overlapping over nav bar
问:
我有一个 App 容器,它有两个组件,导航栏和内容 div。现在的问题是出于某种原因,当我调整窗口大小时,特别是高度,内容 div 会偷偷地与导航栏重叠。窗口的高度越小,它覆盖的导航栏就越多。
编辑:刚刚意识到,当我完全删除内容时,它仍然这样做???就像空虚的虚无仍然在导航栏上一样。那么,是导航栏的高度在降低吗?但如果是这样,文本仍然完美地放置,这是怎么回事。空白空间如何接管导航栏
主布局:.js
// Defining styles
const AppContainer = styled.div`
box-sizing: border-box;
`;
// Defining styles
const Content = styled.div `
display:flex;
min-height: 94vh;
width: 100vw;
`;
const Container = styled.div `
background-color: #FAFFEB;
padding: 15px;
flex-grow: 12;
`;
// -------------
// Nav Bar styles
// ------------
[enter image description here][1]
const NavBar = styled.nav `
background-color: #f06e6c;
width: 100vw;
height:6vh;
`;
const NavList = styled.ul `
padding: 0px 0px;
list-style: none;
height:6vh;
margin: 0px;
display: flex;
align-items: center;
flex-direction: row;
`;
const NavItem = styled.li `
padding: 30px 10px 0px 10px;
height:6vh;
font-family: 'Poppins', sans-serif;
font-size: 12pt;
font-weight: 600;
color: #FAFFEB;
text-align: center;
&:hover {
background: #ff8987;
cursor: pointer;
}
`;
const Logo = styled.li `
padding: 10px 10px 0px 10px;
height:6vh;
font-family: 'Roboto Slab', serif;
font-size: 24pt;
font-weight: 600;
color: #FAFFEB;
text-align: center;
&:hover {
cursor: pointer;
}
`;
function MainLayout({children}) {
return (
<AppContainer>
<NavBar>
<NavList>
<Logo>Tasks</Logo>
<NavItem>Login</NavItem>
</NavList>
</NavBar>
<Content>
<SideBar />
<Container>
{children}
</Container>
</Content>
</AppContainer>
)
}
export default MainLayout
答:
0赞
cbpolley
1/25/2021
#1
我认为您的问题可能来自“最小高度”属性;这给出了最小高度,但不是最大高度,因此这可能会导致内容 div 在调整大小时变得大于 94VH。
也许更好的方法是采用以下样式:
内容 div = '高度 : 94%' Nav div = '高度: 6%'。
让父 div AppContainer 具有以下样式: '高度:100vh; 宽度:100vw;
这样,子项 divs Content 和 Nav 将始终与其父项成正比。
评论
0赞
Saif eldeen Adel
1/25/2021
不,没有区别。这很奇怪。因为是的,正如您所说,内容高度由于某种原因而发生变化,但不是从底部开始的。它从顶部?因为它一点一点地增加,直到它覆盖它上面的导航栏。即使我输入了 90% 的高度,它也会从底部裁剪它,但仍然会爬到导航栏上
0赞
Saif eldeen Adel
1/25/2021
哦不,刚刚意识到当我完全删除内容时,它仍然这样做???就像空虚的虚无仍然在导航栏上一样。那么是导航栏的高度降低了吗?但如果是,文本仍然完美地放置,这是怎么回事
0赞
Saif eldeen Adel
1/25/2021
NVM,意识到在导航栏上使用 6VH 并不是最聪明的想法,因为它只会越来越小,我不希望我的导航栏变小。所以现在我只使用 px。但我还有其他问题。FFS。我们坚持不懈
0赞
cbpolley
1/26/2021
为您的导航栏设置一个静态宽度是个好主意,Saif。恐怕很难想象您的描述出了什么问题(也许屏幕截图会有所帮助?我认为 css 导致它以您意想不到的方式运行。也许尝试尝试:从容器 div 中删除 flex:grow,或者正如 Yasin 所说,删除 'display:flex' 属性,或者修复导航栏的位置 ( 'position:fixed' ) 或者将导航栏的 z 索引向前移动 ( 'z-index: 9999' )。
评论