Bootstrap v.4.1 - Значок внутри разрывов ввода

В настоящее время я работаю с Angular 6 и последней версией Bootstrap v4.1 Теперь я пытаюсь создать реактивную форму со значками внутри форм ввода. Поскольку в начальной загрузке нет способа разместить значки слева от ввода - мне нужно взломать его самому. Но на самом деле это не работает. Давайте посмотрим поближе:

usecase1

Когда нет ошибки msg apper - все выглядит нормально и, как и ожидалось: Bootstrap v.4.1 - Значок внутри разрывов ввода

usecase2

Но когда форма изменяется и появляется сообщение, значок вырывается из формы: Bootstrap v.4.1 - Значок внутри разрывов ввода

Код

html:

<form [formGroup] = "registerForm">
          <div class = "form-group required">
            <label class = "control-label">Email address:</label>
            <input formControlName = "username" type = "email" class = "form-control">
            <span *ngIf = "isFieldInvalid('username')" class = "form-control-feedback-invalid-username"><fa class = "danger" [name] = "'ban'"></fa></span>
            <span *ngIf = "isFieldValid('username')" class = "form-control-feedback-valid-username"><fa class = "danger" [name] = "'check'"></fa></span>

            <span *ngIf = "isFieldValidWithErrorType('username', 'required')" [ngClass] = "displayFieldCss('username', 'required')">Username has to be set.</span>
            <span *ngIf = "isFieldValidWithErrorType('username', 'email')" [ngClass] = "displayFieldCss('username', 'email')">Email should have right pattern.</span>
          </div>

      <div class = "form-group required">
        <label class = "control-label">Password:</label>
        <input formControlName = "password" type = "password" class = "form-control">
        <span *ngIf = "isFieldInvalid('password')" class = "form-control-feedback-invalid-password"><fa class = "danger" [name] = "'ban'"></fa></span>
        <span *ngIf = "isFieldValid('password')" class = "form-control-feedback-valid-password"><fa class = "danger" [name] = "'check'"></fa></span>

        <span *ngIf = "isFieldValidWithErrorType('password', 'required')" [ngClass] = "displayFieldCss('password', 'required')">Password has to be set.</span>

      </div>
        </form>

Важный класс - form-control-feedback-username/password. В css это выглядит так:

.form-control-feedback-invalid-username {
  position: absolute;
  z-index: 2;
  right: 25px;
  top: 77px;
  color: red;
  line-height: 34px;
  pointer-events: none;
}

.form-control-feedback-valid-username {
  position: absolute;
  z-index: 2;
  right: 25px;
  top: 77px;
  color: #35ef5f;
  line-height: 34px;
  pointer-events: none;
}

текст ошибки вытягивает входы вниз, но поскольку значки имеют абсолютное положение, они остаются в том же положении .... вы можете либо сделать сообщение диапазона position: absolute, либо добавить положение относительно .form-group

Marcogomesr 11.07.2018 10:08
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Введение в 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. Это простой сайт, ничего вычурного. Основная цель -...
Toor - Ангулярный шаблон для бронирования путешествий
Toor - Ангулярный шаблон для бронирования путешествий
Toor - Travel Booking Angular Template один из лучших Travel & Tour booking template in the world. 30+ валидированных HTML5 страниц, которые помогут...
0
1
315
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Методом проб и ошибок и советом @marco gomes я понял, как значок остается в строке:

.form-group {
  position: relative;
  .form-control-feedback-invalid-username {
    position: absolute;
    z-index: 2;
    top: 40px;
    right: 10px;
    color: red;
    pointer-events: none;
  }

  .form-control-feedback-valid-username {
    position: absolute;
    z-index: 2;
    top: 40px;
    right: 10px;
    color: #35ef5f;
    pointer-events: none;
  }

  .form-control-feedback-invalid-password {
    position: absolute;
    z-index: 2;
    top: 40px;
    right: 10px;
    color: red;
    pointer-events: none;
  }

  .form-control-feedback-valid-password {
    position: absolute;
    z-index: 2;
    top: 40px;
    right: 10px;
    color: #35ef5f;
    pointer-events: none;
  }
}

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