【问题标题】:Responsive Navigation with Angular 8 Material Sidenav?Angular 8 Material Sidenav 的响应式导航?
【发布时间】:2019-09-21 17:18:25
【问题描述】:
【问题讨论】:
标签:
javascript
html
css
angular
typescript
【解决方案1】:
如果您阅读 Angular schematics,您实际上可以使用 Angular Material 生成响应式 NAV 栏
【解决方案2】:
您无法完全使用媒体查询,因为桌面、平板和移动设备之间的 DOM 结构通常不同。
例如,这是一个带有侧边栏的桌面。
+-----+----------+
| | |
| | |
| | |
| | |
+-----+----------+
DOM 结构可能是这样的:
<div class="container">
<div class="sidebar"></div>
<div class="content"></div>
</div>
当我们切换到类似移动设备时,侧边栏经常重叠与.container,以便用户可以打开或关闭侧边栏。侧边栏显示在容器的顶部,有时会有一个变暗的背景覆盖。
DOM 结构可能是这样的:
<div class="sidebar"></div>
<div class="container">
<div class="content"></div>
</div>
使用 flex 布局可以修改 DOM 元素的 order,但无法更改 DOM 结构。唯一的替代方法是在 HTML 中渲染两次侧边栏,这样您就可以为桌面显示一个,另一个用于移动设备,但这本身并不是最佳做法。