我正在尝试设计一个响应式页面,其中移动视图仅显示所选级别及其相应的子级,而桌面视图将显示所有级别和相应的子级。这甚至可能吗?
这就是顶级应该是这样的:
On mobile&桌面(级别0):
现在这是一个有点棘手的地方:
在移动设备上(第1级):
在桌面上(级别1):
我尝试过使用 <ng-container [ngSwitch]="true">
<div *ngSwitchCase="foo === 1">First</div>
<div *ngSwitchCase="bar === 2">Second</div>
<div *ngSwitchDefault>Third</div>
</ng-container>
,但这并不完全正常,因为隐藏的元素仍然会中断DOM的流程。想法?
编辑:这里有一些代码来显示问题(尽管它与上面呈现的标记基本相同)在桌面断点上我希望以下所有标记都显示:
visibility: hidden
但是,在移动断点上,我只希望显示以下标记片段:
<ul>
<li>
<span>Top Level</span>
<ul>
<li>
<span>Second Level</span>
<ul>
<li><span>Third Level</span></li>
<li><span>Third Level</span></li>
</ul>
</li>
<li>
<span>Second Level</span>
</li>
</ul>
</li>
</ul>
答案 0 :(得分:0)
visibiility: hidden
使元素不可见,但它仍占用空间。
你想要display:none;
。最好将它从DOM中删除。
<span>
。你显然需要对ul
的填充做一些事情。
<ul>
<li>
<span class="hideme">Top Level</span>
<ul>
<li>
<span>Second Level</span>
<ul>
<li><span>Third Level</span></li>
<li><span>Third Level</span></li>
</ul>
</li>
<li>
<span>Second Level</span>
</li>
</ul>
</li>
</ul>
CSS:
li {
list-style: none;
}
@media (max-width : 768px) {
.hideme {
display: none;
}