首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >"angular-flex-layout“不为移动屏幕上的”mat-form-field“添加页边距

"angular-flex-layout“不为移动屏幕上的”mat-form-field“添加页边距
EN

Stack Overflow用户
提问于 2019-07-04 02:40:44
回答 2查看 2.1K关注 0票数 1

我已经使用角度材料和flex布局创建了一个响应式表单。它在台式机和ipad屏幕上运行良好。

对于移动设备,我希望将表单域居中对齐,并在屏幕的左侧和右侧添加边距。有没有办法在flex-layout中做到这一点?

如果没有,那么如何使用ngClass.xs定制CSS呢?我试过将宽度设置为90%,但它居中不正确,看起来很奇怪。

代码语言:javascript
复制
<div class="container" fxLayout="row" fxLayout.xs="column" fxLayoutGap.gt-xs="2%" fxLayoutAlign="center">

  <mat-form-field appearance="standard" fxFlex="22%" fxFlex.xs="90%">
    <mat-label>Field 1</mat-label>
    <input matInput placeholder="Field 1">
    <mat-icon matSuffix>place</mat-icon>
  </mat-form-field>

  <mat-form-field appearance="standard" fxFlex="22%" fxFlex.xs="90%">
    <mat-label>Field 2</mat-label>
    <input matInput placeholder="Field 2">
    <mat-icon matSuffix>business</mat-icon>
  </mat-form-field>

  <mat-form-field appearance="standard" fxFlex="22%" fxFlex.xs="90%">
    <mat-label>Field 3</mat-label>
    <input matInput placeholder="Field 3">
    <mat-icon matSuffix>send</mat-icon>
  </mat-form-field>

  <mat-form-field appearance="standard" fxFlex="22%" fxFlex.xs="90%">
    <mat-label>Field 4</mat-label>
    <input matInput placeholder="Field 4">
  </mat-form-field>

</div>
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-07-04 06:29:38

最简单、最方便的方法是在flex容器上设置ngClass.xs

代码语言:javascript
复制
<div class="container" fxLayout="row" fxLayout.xs="column" 
     fxLayoutGap.gt-xs="2%"  fxLayoutAlign="center" ngClass.xs="mobileContainer">

.mobileContainer在哪里

代码语言:javascript
复制
.mobileContainer mat-form-field {
  margin: 8px 16px;
}

下面是一个简单的https://stackblitz.com/edit/angular-dufpaa演示

作为附注;

你不需要在mat-form-field元素上使用fxFlex.xs="90%",因为fxLayout.xs="column"容器在xs屏幕上有列布局,而fxFlex.xs="90%"在列布局上意味着“取父级高度的90%”。由于flex-shrink缺省为1,因此这不会产生任何影响。

票数 1
EN

Stack Overflow用户

发布于 2019-07-30 20:29:09

代码语言:javascript
复制
<div class="container" fxLayout="row" fxLayout.xs="column" fxLayoutGap="20px" fxLayoutAlign="center">

  <mat-form-field appearance="standard" fxFlex="22%" fxFlex.xs="90%">
    <mat-label>Field 1</mat-label>
    <input matInput placeholder="Field 1">
    <mat-icon matSuffix>place</mat-icon>
  </mat-form-field>

  <mat-form-field appearance="standard" fxFlex="22%" fxFlex.xs="90%">
    <mat-label>Field 2</mat-label>
    <input matInput placeholder="Field 2">
    <mat-icon matSuffix>business</mat-icon>
  </mat-form-field>

  <mat-form-field appearance="standard" fxFlex="22%" fxFlex.xs="90%">
    <mat-label>Field 3</mat-label>
    <input matInput placeholder="Field 3">
    <mat-icon matSuffix>send</mat-icon>
  </mat-form-field>

  <mat-form-field appearance="standard" fxFlex="22%" fxFlex.xs="90%">
    <mat-label>Field 4</mat-label>
    <input matInput placeholder="Field 4">
  </mat-form-field>

</div>

将fxLayoutGap.gt-xs="2%“更改为fxLayoutGap="20px”。

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

https://stackoverflow.com/questions/56876211

复制
相关文章

相似问题

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