在焦点上更改离子输入边框颜色

我使用了一些 CSS 来设置 ion-input 字段的样式,但我希望字段的边框在焦点上改变

CSS

.input-field {
    background: rgba(250,250,250,1);
    border: solid 1px rgba(218,218,218,1);
    margin-bottom: 16px;
    height: 50px;
    border-radius: 20px;
    padding-left: 16px;
}

HTML

<div class="input">
    <ion-label class="prompt-text" position="stacked">Email</ion-label>
    <br><br>
    <ion-input class="input-field" placeholder="email@example.com"></ion-input>  
</div>

这就是该字段的外观

enter image description here

我尝试使用下面的 CSS,但它不起作用

.input-field:focus {
    border: solid 2px black;
}

更新

我可以通过处理事件 (ionFocus)(ionBlur) 使用 Typescript 更改离子输入字段边框颜色

  <div class="input">
    <ion-label position="stacked">Email</ion-label>
    <br><br>
    <ion-input autocomplete="off" [(ngModel)]="email" id="email-input" (ionFocus)="focusEmail()" (ionBlur)="unFocusEmail()" class="input-field" placeholder="email@example.com"></ion-input>  
  </div>

打字稿

focusEmail(){
    document.getElementById('email-input').style.border = "solid 2px #107CF1";
  }

 unFocusEmail(){
    document.getElementById('email-input').style.border = "solid 1px rgba(218,218,218,1)";
  }
stack overflow Changing ion-input border color on focus
原文答案

答案:

作者头像

简单的方法是 CSS:

.has-focus {
  border: 2px solid #5b9bd1 !important;
}
作者头像
ion-item.item-has-focus {
    --highlight-background:black;
}