Ionic 4: заполнитель ввода стиля

Я пытаюсь стилизовать заполнитель моего приложения 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, пока не получилось.

Я понял, что если вы установите цвет в ионный элемент, он стилизует весь текст поля ввода

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

при использовании псевдокласса : показанный заполнитель или псевдоэлемента :: заполнитель на ионный ввод, хотя стиль не оказывает никакого эффекта.

Что я делаю не так? Есть ли вообще возможность в Ionic 4 стилизовать заполнитель ввода?

Редактировать:

Stackblitz для форка с Ionic 4 и Angular 6

Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Введение в CSS
Введение в CSS
CSS является неотъемлемой частью трех основных составляющих front-end веб-разработки.
Как выровнять Div по центру?
Как выровнять Div по центру?
Чтобы выровнять элемент <div>по горизонтали и вертикали с помощью CSS, можно использовать комбинацию свойств и значений CSS. Вот несколько методов,...
Навигация по приложениям React: Исчерпывающее руководство по React Router
Навигация по приложениям React: Исчерпывающее руководство по React Router
React Router стала незаменимой библиотекой для создания одностраничных приложений с навигацией в React. В этой статье блога мы подробно рассмотрим...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
CSS: FlexBox
CSS: FlexBox
Ранее разработчики использовали макеты с помощью Position и Float. После появления flexbox сценарий полностью изменился.
13
0
15 282
3
Перейти к ответу Данный вопрос помечен как решенный

Ответы 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;
}

Никакого эффекта это не дало. Тем не менее черный текст и серый заполнитель

MirJo 21.08.2018 10:17

Можете ли вы попробовать использовать! important в примере, показанном выше, только для целей тестирования /

Torjescu Sergiu 21.08.2018 10:19

Идеально работает при использовании !important: stackblitz.com/edit/ionic-x8d8vy?file=pages/home/‌ home.html

לבני מלכה 21.08.2018 10:22

Да, но если вы используете его таким образом, это повлияет на весь веб-сайт, если вам нужно что-то более конкретное, вы можете настроить таргетинг на нужный класс и поставить в конце псевдоэлементы. Ваше здоровье!

Torjescu Sergiu 21.08.2018 10:27

Я добавил !важный за каждым красным. Но все еще безуспешно

MirJo 21.08.2018 10:29

Можете ли вы предоставить нам код CSS, лежащий в основе вашего проекта, или, что еще лучше, код или jsfiddle, чтобы точно увидеть, что там происходит. Один только html нам не очень помогает

Torjescu Sergiu 21.08.2018 10:31

@ לבנימלכה проблема в том, что ваш stackblitz является ionic 3, а мой проект работает на ionic 4

MirJo 21.08.2018 10:47

Да, я знаю, что не могу найти stackblitz с версией 4, но я думаю, что это то же самое

לבני מלכה 21.08.2018 10:47

@TorjescuSergiu в процедуре больше нет css, кроме импорта по умолчанию ~ @ ionic import в global.scss

MirJo 21.08.2018 10:48

@ לבנימלכה если добавил stackblitz в конец моего вопроса

MirJo 21.08.2018 10:51

@MirJo Я скопировал код в stackblitz, и он не работает: stackblitz.com/edit/…

לבני מלכה 21.08.2018 10:57

<ion-content padding> сверху и снизу нужно удалить, тогда он работает

MirJo 21.08.2018 11:01

Я не могу найти форму, указанную в вопросе, в примере stackblitz

Torjescu Sergiu 21.08.2018 11:47

@MirJo посмотреть мой ответ

לבני מלכה 21.08.2018 13:06
Ответ принят как подходящий

Используйте этот код стиля:

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

скажите мне, чтобы получить дополнительную помощь: :)

לבני מלכה 21.08.2018 13:05

вы можете удалить важное из своего примера, и он по-прежнему работает

Torjescu Sergiu 21.08.2018 13:12

рад помочь :) (я нашел решение, см. в F12)

לבני מלכה 21.08.2018 13:35

Некоторые компоненты, такие как datetime, используют вашу собственную структуру html. Поэтому я применил больше тегов, чтобы изменить все входные данные.

ion-datetime {
  --placeholder-color: rgba(211, 211, 211, 0.4);
}

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

Я не понимаю, почему я использую разные альфа-значения ... но это сработало!

Другие вопросы по теме