首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在较小的屏幕上有条件地显示角制表符?

问如何在较小的屏幕上有条件地显示角制表符?
EN

Stack Overflow用户
提问于 2021-07-02 00:25:27
回答 1查看 186关注 0票数 0

我想把内容放在标签里,但只放在较小的屏幕上。否则,内容应该退回到div块(或css中定义的其他布局)。对于较小的屏幕(@仅媒体屏幕和(max-width:600px) ),应出现选项卡

代码语言:javascript
复制
<mat-tab-group >
  <mat-tab label="First"><div> Content 1 </div></mat-tab>
  <mat-tab label="Second"><div> Content 2 </div></mat-tab>
  <mat-tab label="Third"><div> Content 3</div> </mat-tab>
</mat-tab-group>

现在,对于更大的屏幕,它必须回退到三个div块

代码语言:javascript
复制
<div> Content 1 </div>
<div> Content 2 </div>
<div> Content 3</div> 

如何使用angular / angular材质选项卡中的单个代码块来实现此目的?

EN

回答 1

Stack Overflow用户

发布于 2021-07-02 01:25:33

您应该能够使用CDK Layout BreakpointObserver并将内容分解为单独的组件来完成此操作。例如:

代码语言:javascript
复制
import { BreakpointObserver, Breakpoints } from '@angular/cdk/layout';
import { Component } from '@angular/core';
import { Observable } from 'rxjs';
import { map, shareReplay } from 'rxjs/operators';

@Component({
  selector: 'app-root',
  templateUrl: './app.component.html',
  styleUrls: ['./app.component.scss']
})
export class AppComponent {
  
  isHandset$: Observable<boolean> = this.breakpointObserver.observe(Breakpoints.Handset)
    .pipe(
      map(result => result.matches),
      shareReplay()
    );

  constructor(
    private breakpointObserver: BreakpointObserver,
  ) { }

}
代码语言:javascript
复制
<ng-container *ngIf="(isHandset$ | async) === true; then thenTemplate; else elseTemplate"></ng-container>

<ng-template #thenTemplate>
    <mat-tab-group>
      <mat-tab label="First"><div> <app-content-1></app-content-1> </div></mat-tab>
      <mat-tab label="Second"><div> <app-content-2></app-content-2> </div></mat-tab>
      <mat-tab label="Third"><div <app-content-3></app-content-3> </div> </mat-tab>
    </mat-tab-group>
</ng-template>

<ng-template #elseTemplate>
    <div>
      <div> <app-content-1></app-content-1> </div>
      <div> <app-content-2></app-content-2> </div>
      <div> <app-content-3></app-content-3> </div> 
    </div>
</ng-template>

请注意,每一段内容都需要抽象到它自己的子组件中。一些我认为可能有用的信息,你可以在this link上找到每个断点的确切尺寸和它的名称。

编辑:翻转的ng-if

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68213768

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档