我正在尝试使用Flexboox和Bootstrap 4实现此布局:
我不知道如何修复标题和侧边栏。到目前为止,其他所有工作都是我想要的:
HTML:
<header>
header
</header>
<app>
<nav>
nav
</nav>
<article>
Content
</article>
</app>
CSS:
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;
background: white;
box-shadow: 0px 2px 4px rgba(0, 0, 0, 0.24);
}
app {
flex: 1;
display: flex;
}
nav {
background: #FAF9F8;
flex: 0 0 256px;
order: 0;
border-right: 1px solid #d9d9d9;
}
article {
background: #F3F3F5;
flex: 1 1 100px;
order: 1;
// Simulate large height
height: 2000px;
}
答案 0 :(得分:1)
以下是使用flexbox的解决方案:http://jsfiddle.net/loic294/7hbjq82w/
修复问题的想法是删除正文中的主滚动条:
<article>
<div>
Content
</div>
</article>
还添加一个div以使主要部分可滚动:
div {
height: 2000px;
}
overflow-y: auto; // Adds scrollbar
并添加此CSS以使其全部工作:
* def json = { foo: 'world', hey: 'ho', zee: [1, 2, 3] }
* remove json.hey
* match json == { foo: 'world', zee: [1, 2, 3] }
答案 1 :(得分:0)
我根本不会使用flexbox,而是固定元素的固定位置:
html,
body {
margin: 0;
height: 100%;
}
header {
position: fixed;
z-index: 2;
top: 0;
left: 0;
width: 100%;
height: 20px;
background: white;
box-shadow: 0px 2px 4px rgba(0, 0, 0, 0.24);
}
nav {
position: fixed;
z-index: 1;
top: 20px;
left: 0;
width: 200px;
height: calc(100% - 20px);
background: #FAF9F8;
border-right: 1px solid #d9d9d9;
}
article {
background: #F3F3F5;
position: relative;
top: 20px;
left: 200px;
width: calc(100% - 200px);
/* Simulate large height */
height: 2000px;
}
&#13;
<header>
header
</header>
<nav>
nav
</nav>
<article>
Content
</article>
&#13;