css - CSS网格,Angular 6不听媒体查询
问题描述
尝试将 CSS Grid 样式添加到旧的 Angular 6 应用程序中。我有一个没有触发的媒体查询,我想知道它是否与角度及其 CSS 规则的层次结构有关。
问题:在 750 像素以下的媒体查询应该触发 - 更改网格布局。不工作。
使用开发工具,我手动更改了 CSS 网格上的重复,它可以工作,但无论我做什么 - 甚至将其更改为 !important,媒体查询都不会触发。
CSS:
media (max-width:750px){
.wrapper{
width:100%;
display:grid;
height:auto;
grid-template-columns: 1fr; <-------doesn't fire
}
.event-box{
grid-template-columns: repeat(1, 1fr) . <-------doesn't change
}
}
.wrapper {
font-size: 13.5px;
line-height: 1.2em;
box-sizing: border-box;
width: 100%;
font-family: 'Noto Sans', 'Myriad Pro', Calibri, Helvetica,
Arial, sans-serif;
min-height:1000px;
height:auto;
display:grid;
grid-gap: 1em;
grid-template-columns: 1fr 4fr; <---------doesn't stop on mobile
grid-auto-rows: minmax(50px, auto);
text-align: center;
background: #f9f3d8;
box-shadow: 0 0 1.5em #867453;
}
.event-box{
padding-top:2%;
display:grid;
grid-gap: 1em;
grid-template-columns:repeat(3, 1fr); <-----fires regardless
grid-auto-rows:minmax(25%, auto)
}
@Component({
selector: 'app-day',
templateUrl: './day.component.html',
styleUrls: ['./day.component.css']
})
<div class="banner-image" >
<h1 class="banner-text">WELCOME TO THE JUNGLE </h1></div>
<div class="wrapper">
<div class="side-box">
<div class="party-info-box box red-text-lg">
<div class="box-shade"></div>
<p>Food: {{partyFood}}</p>
<p>Water: {{partyWater}}</p>
<p>Space: {{partySpace}}</p>
</div>
<div class="dm-controls-box red-text-lg box">
<div class="box-shade"></div>
<label>Food per day:</label>
<input [(ngModel)]="this.dailyFood" placeholder="change food consumption rate">
<br>
<label>Water per day:</label>
<div>
<input [(ngModel)]="this.dailyWater" placeholder="change water consuption rate">
</div>
<div>
<label>Edit Food: </label>
<input placeholder="change food supply" [(ngModel)]="partyFood">
<br>
<label>Edit Water: </label>
<input placeholder="change food" [(ngModel)]="partyWater">
</div>
</div>
</div>
<div class="content-box">
<div class="top-box ">
<div class="weather-box box red-text-lg" >
<p>Welcome to the jungle</p>
<div class="red-border"></div>
<p class="black-text">Select a location to see what happens today</p>
<ng-container *ngFor="let weather of this.weather; let i = index" class="black-text">
<div class="black-text">
<h2 class="red-text-lg">{{weatherLabelArr[i]}} Weather: {{this.weather.title}}</h2>
<p>{{this.weather.text}}</p>
</div>
</ng-container>
</div>
<div class="day-buttons-box box red-text-lg">
<h3>Select Location</h3>
<div class="button-box">
<button class="button" (click)="getBeach();">Beach</button>
<button class="button" (click)="getNoUndead();">NoUndead</button>
<button class="button"(click)="getUndead();">Undead
Jungle</button>
<button class="button" value="greaterUndead()" (click)="getGreaterUndead();">Greater
Undead
Jungle</button>
<button class="button"value="river" (click)="getRiver()">River</button>
<button class="button"value="river" (click)="getSwamp()">Swamp</button>
<button class="button"(click)="this.undeadService.getCurrentMonster('Guard')">test button</button>
</div>
</div>
</div>
<div class="main-box">
<div *ngIf="this.rollResults; else noResults" class="event-box">
<ng-container *ngFor="let result of this.rollResults">
<ng-container *ngIf="result.title red-text-lg">
<div class="event-card">
<div class="event-title red-text-lg">
<h3>{{result.title}}</h3>
<div class="red-border"></div>
</div>
<div class="event.text black-text">
<p>{{result.text}}</p>
</div>
</div>
</ng-container>
</ng-container>
<ng-template #noResults>
<p>Nothing Happened.....</p>
</ng-template>
</div>
</div>
</div>
</div>
解决方案
起初,正如您在评论中提到的那样,您已经忘记了@
前面的media
。
修复此问题后,您必须使用!important
.
在你的@media
-> .event-box
->grid-template-columns
上是一个.
而不是;
.
要了解有关
!important
异常的更多信息,请查看specificity 的文档。
下面的 CSS 应该可以解决问题:
@media(max-width:750px) {
.wrapper {
width: 100%;
display: grid;
height: auto;
grid-template-columns: 1fr !important; // '!important' to overwrite
}
.event-box {
grid-template-columns: repeat(1, 1fr); // changed '.' to ';' and '!important' to overwrite
}
}
.wrapper {
font-size: 13.5px;
line-height: 1.2em;
box-sizing: border-box;
width: 100%;
font-family: 'Noto Sans', 'Myriad Pro', Calibri, Helvetica, Arial, sans-serif;
min-height: 1000px;
height: auto;
display: grid;
grid-gap: 1em;
grid-template-columns: 1fr 4fr;
grid-auto-rows: minmax(50px, auto);
text-align: center;
background: #f9f3d8;
box-shadow: 0 0 1.5em #867453;
}
.event-box {
padding-top: 2%;
display: grid;
grid-gap: 1em;
grid-template-columns: repeat(3, 1fr);
grid-auto-rows: minmax(25%, auto)
}
推荐阅读
- java - 在java中转换为最接近的1000
- python - 如何从交替的布尔行创建一个新的 Pandas DataFrame,以便新的 DataFrame 可以绘制?
- python - 如何创建包含多个命令的可执行文件?
- spring - 从 Spring Boot 中的 Zalando 问题响应正文中自定义和删除不需要的字段
- javascript - 为什么在这个例子中他们将响应包装在另一个 Promise.all 中?
- spark-streaming - 为什么 Spark Streaming 任务的数量与 Kafka 分区不同?
- python - 使用 Python 替换文本文件中的一行中的一列
- android - 如何刷新片段中的onBindViewHolder方法
- android - 获取 DrawerLayout 必须在添加抽屉布局时使用 MeasureSpec.EXACTLY 进行测量
- flutter - 列表类型的常量变量和常量列表有什么区别