【问题标题】:ion-input with icon at the end最后带有图标的离子输入
【发布时间】:2021-11-17 01:53:48
【问题描述】:
    <ion-input placeholder="Username" formControlName="userName" class="primary-input"></ion-input>
     
         <ion-input [type]="passwordType" placeholder="Password" formControlName="password" autocomplete="off"  class="primary-input"> 
        <ion-icon name="eye"  (click)="togglePasswordMode()"  ></ion-icon>
        </ion-input>
  <div class="ion-margin-top">
    <ion-button expand="block" (click)="!isSubmitted && login()" >LOGIN</ion-button>
  </div>
       
 The above is my code currenty showing like this

目前在开头显示图标,但我需要在结尾显示..

我尝试了带有 slot="end" 的 ion-item 作品,但我不想使用该文本框,因为文本框显示在右侧。我需要一些不使用 ion-item 的替代解决方案..

我正在使用 ionic 5 ..请一些对 css 的帮助 编辑:

.primary-input {
    background: aliceblue;
    color: #999999;
    border-radius: 5px;
    margin-bottom: 10px;
}

编辑: 这是 ion-item 的输出

【问题讨论】:

标签: css angular ionic-framework


【解决方案1】:

ion-item 包装您的代码,将ion-icon 放在ion-input 之外,它会变成这样:

  <ion-item>
    <ion-input [type]="passwordType" placeholder="Password" formControlName="password" autocomplete="off" class="primary-input"></ion-input>
    <ion-icon name="eye" (click)="togglePasswordMode()"></ion-icon>
  </ion-item>

这就是它现在的样子:

编辑:

要修复多个输入的先前行为,我建议使用 ion-gridion-rowion-col 布局组件。

这是代码

<ion-grid class="m-0">
    <ion-row>
      <ion-col>
        <ion-input placeholder="Username" formControlName="userName" class="primary-input"></ion-input>
      </ion-col>
    </ion-row>
    <ion-row>
      <ion-col>
        <ion-input [type]="passwordType" placeholder="Password" formControlName="password" autocomplete="off" class="primary-input"></ion-input>
      </ion-col>
      <ion-icon name="eye" class="m-auto" (click)="togglePasswordMode()"></ion-icon>
    </ion-row>
  </ion-grid>

这就是它现在的样子

希望这会有所帮助。

【讨论】:

  • 我知道这个..我有问题附在问题上..但是如果我放 ion-item 文本框显示很小..如何做这两个 ion-item 看起来相似
  • @Glen - 我刚刚更新了我的答案,我试图寻找更简单的方法,但我没有找到。
  • 感谢您的宝贵时间..我需要文本框内的文本图标
【解决方案2】:

通常我们在按钮中使用与ion-input 字段分开的图标。所以可以以ion-item上的边框为例。

HTM 文件:

      <form #loginForm="ngForm" class="access" (submit)="login(model)">
        <ion-list lines="none">
          <ion-item>
            <ion-label position="floating">EMAIL</ion-label>
            <ion-input type="text" name="email" [(ngModel)]="model.email"></ion-input>
          </ion-item>
          <ion-item>
            <ion-label position="floating">PASSWORD</ion-label>
            <ion-input type="password" name="psw" [(ngModel)]="model.psw"></ion-input>
            <ion-button slot="end" fill="clear" (click)="showPassword()" class="seeClient">
              <ion-icon *ngIf="showPsw==true" name="eye-outline" color="warning" class="iconEye"></ion-icon>
              <ion-icon *ngIf="showPsw==false" name="eye-off-outline" color="warning" class="iconEye"></ion-icon>
            </ion-button>
          </ion-item>
        </ion-list>
        <ion-button [disabled]="!mobile" expand="block" type="submit" color="warning">Entrar</ion-button>
      </form>

SCSS 文件:

.iconEye {
    font-size: 24px;
    padding-left: 4px;
    padding-top: 12px;
    vertical-align: middle;
}

ion-item {
    margin-bottom: 10px;
    background: transparent;
    border: 1px solid #eac402;
    --highlight-height: 0px;
    --highlight-color-valid: #eac402;
    --highlight-color-focused: #eac402;
    --highlight-color-invalid: #eac402;
}

【讨论】:

    猜你喜欢
    • 2019-11-06
    • 2019-07-02
    • 2019-01-13
    • 1970-01-01
    • 2019-01-03
    • 2018-06-01
    • 1970-01-01
    • 2013-02-09
    • 1970-01-01
    相关资源
    最近更新 更多