gpt4 book ai didi

html - Flexbox Holy Grail 布局 : Fixed Header, 固定左侧导航、流动内容区域、固定右侧边栏

转载 作者:技术小花猫 更新时间:2023-10-29 12:01:53 24 4
gpt4 key购买 nike

我正在尝试使用 Flexbox 构建“ chalice ”布局。

  • 固定标题
  • 固定、可折叠、可滚动的左侧导航
  • 灵活内容区
  • 固定、可折叠、可滚动的右侧导航

见下文:

enter image description here

除了标题下方“应用程序”区域的高度外,我一切正常。现在它是 100vh(视口(viewport)高度的 100%),但这包括 64px 标题。

我尝试了 calc(100vh - 64px),但这与 flex 的配合并不好。

这是我的基本 HTML 结构:

<main>
<header></header>
<app>
<nav>Left Nav</nav>
<article>Content</article>
<aside>Right Nav</aside>
</app>
</main>

和支持的 CSS:

main {
display: flex;
flex-direction: column;
}

header {
z-index: 0;
flex: 0 0 64px;
display: flex;
}

app {
flex: 1 1 100vh;
display: flex;
}

nav {
flex: 0 0 256px;
order: 0;
}

article {
flex: 1 1 100px;
order: 1;
}

aside {
flex: 0 0 256px;
order: 2;
}

- - - Full jsFiddle Here - - -

- - - Simplified jsFiddle Here - - -

最佳答案

<main> 存在一些 CSS 冲突和 <body> ,我所要做的就是删除 <main>包装器,然后将 flex 定义直接添加到页面主体。

- - - Here's the full working jdFiddle - - -

- - - Here's the simplified jdFiddle - - -

html,
body {
margin: 0;
height: 100%;
min-height: 100%;
}

body {
margin: 0;
display: flex;
flex-direction: column;
}

header {
z-index: 0;
flex: 0 64px;
display: flex;
}

app {
flex: 1;
display: flex;
}

nav {
flex: 0 0 256px;
order: 0;
}

article {
flex: 1;
order: 1;
overflow: auto;
}

aside {
flex: 0 0 256px;
order: 2;
}
<header></header>
<app>
<nav>Left Nav</nav>
<article></article>
<aside>Right Nav</aside>
</app>

关于html - Flexbox Holy Grail 布局 : Fixed Header, 固定左侧导航、流动内容区域、固定右侧边栏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33514047/

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