【问题标题】:Ionic 4: Style input placeholderIonic 4:样式输入占位符
【发布时间】:2019-01-27 09:11:27
【问题描述】:

我正在尝试为我的 Ionic 4 应用程序的占位符设置样式。HTML 如下所示:

<form>
  <ion-grid>
    <ion-row class='label'>Name</ion-row>
    <ion-row>
      <ion-item>
        <ion-input type='text' [(ngModel)]='recipe.name' name='name' placeholder='Name'></ion-input>
      </ion-item>
    </ion-row>
    <ion-row class='label'>Weight</ion-row>
    <ion-row>
      <ion-item>
        <ion-input type='number' [(ngModel)]='recipe.weight' name='weight' placeholder='Weight'></ion-input>
        <ion-label>kg</ion-label>
      </ion-item>
    </ion-row>
  </ion-grid>
</form>

如果尝试了Ionic 2.x solutions 但它没有成功。

我发现,如果您在 ion-item 中设置颜色,它会为输入字段的整个文本设置样式

ion-item {
    ion-input{
        color:red;
    }
}

当在 ion-input 上使用伪类 :placeholder-shown 或伪元素 ::placeholder 虽然样式显示没有效果.

我做错了什么? Ionic 4 中是否有可能设置输入占位符的样式?

编辑:

Stackblitz 使用 Ionic 4 和 Angular 6 进行分叉

【问题讨论】:

    标签: css ionic-framework sass ionic4


    【解决方案1】:

    某些组件,例如日期时间,使用您自己的 html 结构。 所以我应用了更多标签来更改所有输入。

    ion-datetime {
      --placeholder-color: rgba(211, 211, 211, 0.4);
    }
    
    ion-input, ion-textarea, ion-select {
      --placeholder-color: rgba(211, 211, 211, 1);
    }
    

    我不明白为什么我使用不同的 alpha 值...但它有效!

    【讨论】:

      【解决方案2】:

      使用此样式代码:

      ion-input{
          --placeholder-color: red;
          --placeholder-opacity: 1;
      }
      

      请看这里:https://stackblitz.com/edit/angular6-with-ionic4-list-refresh-test-yq3ntj?file=src%2Fapp%2Fapp.component.html

      【讨论】:

      • 告诉我更多帮助::)
      • 你可以从你的例子中删除重要的,它仍然有效
      • 乐于助人 :) (我在 F12 中找到了解决方案)
      【解决方案3】:

      请试试这个通用的样式,看看有没有效果:

      ::-webkit-input-placeholder { /* Chrome/Opera/Safari */
        color: red;
      }
      ::-moz-placeholder { /* Firefox 19+ */
        color: red;
      }
      :-ms-input-placeholder { /* IE 10+ */
        color: red;
      }
      :-moz-placeholder { /* Firefox 18- */
        color: red;
      }
      

      【讨论】:

      • 显示没有效果。仍然是黑色文本和灰色占位符
      • 您可以尝试在上面显示的示例中使用 !important,仅用于测试目的/
      • 是的,但是如果你这样使用它会影响整个网站,如果你想要更具体的东西,你可以定位所需的类并将伪元素放在最后。干杯!
      • 我在每个红色后面添加了一个 !important。然而仍然没有成功
      猜你喜欢
      • 2017-04-07
      • 2017-02-26
      • 2013-01-15
      • 2013-09-02
      • 2014-01-04
      • 1970-01-01
      • 2016-11-09
      • 1970-01-01
      • 2014-07-12
      相关资源
      最近更新 更多