有没有办法只在特定的视口宽度上应用特定的类? (除了使用媒体查询)
例如,<div class="mb-1>Hello world</div>
会始终应用margin-bottom
。
但是如果我只想在视口大于sm
时才应用它呢?
我正在使用Angular,因此解决方案可以使用Angular助手。
答案 0 :(得分:0)
不确定为什么您不想使用@media
查询,我的意思是,这就是他们的目的所在。但是,如果必须使用替代方法,则可以使用JS / TS和@HostListener
检测视口宽度以侦听resize事件,然后使用[ngClass]
来应用该类。
类似的东西:
viewportWidth: number;
@HostListener('window:resize', ['$event'])
onResize(event) {
this.viewportWidth = event.target.innerWidth;
}
viewportIsGreaterThan(viewportWidth: number): boolean {
return this.viewportWidth > viewportWidth;
}
然后在你的模板中:
<div [ngClass]="{ 'mb-1' : viewportIsGreaterThan(499) }">Hello world</div>
答案 1 :(得分:0)