【发布时间】:2017-09-19 22:09:09
【问题描述】:
我正在使用 Angular 和 Angular Material 和 Flex Layout
我正在尝试为 Web 应用程序创建一个与 this site 完全相同的布局。注意固定的标题,固定的侧边栏,固定的内容痛苦。没有使用浏览器滚动,只有 div 滚动并且完全适合浏览器视口。
这是我用来提供基本结构的 html:
<md-toolbar color="primary">
<span>Application Title</span>
</md-toolbar>
<md-sidenav-container>
<md-sidenav mode="side" opened="true">Drawer content</md-sidenav>
<div class="my-content">Main content</div>
</md-sidenav-container>
另外我设置了以下样式:
html, body {
margin: 0;
width: 100%;
height: 100%;
overflow: hidden;
}
md-sidenav-container, .main-content {
margin: 0;
width: 100%;
height: 100%;
}
我注意到,如果没有页面上的工具栏,一切都可以完美运行。然后我添加了一个 padding-bottom: 64px;到 md-sidenav-container、.main-content 类。似乎它为内容修复了它,但不是sidenav。 sidenav 滚动条仍然位于浏览器窗口下方。
如果有人能告诉我如何使用 flex 指令,我确实在我的 Angular 应用程序中安装了 flex-layout。否则,纯 css 也可以。
【问题讨论】:
-
我建议使用绝对定位的sidenav,其中的div相对定位。然后溢出滚动/自动相对div。这将使您免于高度不匹配的问题。
-
你有一个有效的例子吗?我也认为这是错误的容器过度浮动的问题......但我需要现场查看和测试......
标签: css angular flexbox angular-material2 angular-flex-layout