Изменить ширину div сообщения об ошибке проверки

Вот как отображается сообщение об ошибке после добавления проверок. Требуется только ширина этого div. Как изменить ширину, чтобы сообщение об ошибке помещалось в одну строку? Если есть какой-либо другой способ проверки переднего плана, предложите его.

.age {
  width: 53px;
  font-weight: 700;
  font-size: 16px;
  letter-spacing: 0.15px;
  color: rgba(0, 0, 0, 0.6);
}

.input-group {
  margin-bottom: 9px;
  position: relative;
}

.input-group__label {
  z-index: 5;
  display: block;
  position: absolute;
  top: 0;
  line-height: 40px;
  color: #aaa;
  left: 5px;
  padding: 0 7px;
  transition: line-height 200ms ease-in-out, font-size 200ms ease-in-out, top 200ms ease-in-out;
  pointer-events: none;
  font-weight: 700;
  font-size: 16px;
  letter-spacing: 0.15px;
  color: rgba(0, 0, 0, 0.6);
}

.input-group__input {
  width: 100%;
  height: 40px;
  border: 1px solid rgba(0, 0, 0, 0.3);
  border-radius: 4px !important;
  padding: 0 10px;
}


   
<div class = "input-group age">
                    <input class = "input-group__input form-control is-invalid"
                           type = "text"
                           placeholder = "&nbsp;"
                           name = "age"
                           id = "validationError"
                           autocomplete = "off"
                           required />
                    <label class = "input-group__label" for = "age">Age</label>
                    <div class = "invalid-feedback">
                      Please enter an age between 35-74
                      years.
                    </div>
                  </div>

панель ошибок не имеет ширины. Вы можете добавить ширину в набор правил .age, например width: 100%, и он займет достаточно места, чтобы поместить все в одну строку.

Diego D 12.09.2022 14:48

@diegod Вот в чем дело. Я не могу изменить ширину .age. Такая ширина должна быть.

Mark Heller 12.09.2022 14:49

.invalid-feedback{ширина: максимальное содержание;}

Jaswinder Kaur 12.09.2022 15:17

@JaswinderKaur позиция элемента должна быть абсолютной, чтобы это работало. в то время как приведет к перекрытию от других элементов

Mark Heller 13.09.2022 06:40
Улучшение производительности загрузки с помощью 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 страниц, которые помогут...
1
4
80
4
Перейти к ответу Данный вопрос помечен как решенный

Ответы 4

Установите ширину блока недействительного отзыва на максимальное содержимое.

Ключевое слово max-content sizing представляет максимальную ширину или высоту содержимого. Для текстового содержимого это означает, что содержимое вообще не будет переноситься, даже если оно вызывает переполнение.

.invalid-feedback{
  width: max-content;
}

Вот страница MDN по этому поводу: https://developer.mozilla.org/en-US/docs/Web/CSS/max-content

Вы можете сделать "группу ввода" "позиция: относительная" и добавить к "недействительной обратной связи" "позиция: абсолютная, ширина: максимальное содержание"

Абсолютная позиция, чтобы сделать это на более высоком уровне, чем то, что было бы ниже

https://codesandbox.io/s/naughty-colden-zg3let?file=/src/styles.css

Если вы используете фрагмент кода, вам будет проще проверить свой ответ. При редактировании это кнопка с <>

Rohit Gupta 12.09.2022 15:20

Я не знаю, как использовать фрагмент, просто песочница

Gibloor 12.09.2022 15:35

В следующий раз, когда вы будете вводить вопрос или редактировать его, найдите кнопку с надписью <>.

Rohit Gupta 12.09.2022 15:36

Вы можете исправить это, просто добавив значение ширины к метке.

.invalid-feedback {
    width: 250px; /* OR max-content */
}
Ответ принят как подходящий

Вы не можете изменить ширину своего элемента invalid-feedback, потому что его максимальная ширина контролируется его родителем input-group age. Я бы предложил удалить класс age и вместо этого применить его к его первым двум дочерним элементам, за вычетом третьего дочернего элемента invalid-feedback.

Примечание. Я также увеличил максимальную ширину класса age, иначе значки проверки загораживают вид текста проверки из-за нехватки места.

<script src = "https://cdn.jsdelivr.net/npm/[email protected]/dist/js/bootstrap.bundle.min.js"></script>
<link href = "https://cdn.jsdelivr.net/npm/[email protected]/dist/css/bootstrap.min.css" rel = "stylesheet"/>
<style>
    .age {
        max-width: 96px;
        font-weight: 700;
        font-size: 16px;
        letter-spacing: 0.15px;
        color: rgba(0, 0, 0, 0.6);
    }
    .input-group {
        margin-bottom: 9px;
        position: relative;
    }
    .input-group__label {
        z-index: 5;
        display: block;
        position: absolute;
        top: 0;
        line-height: 40px;
        color: #aaa;
        left: 5px;
        padding: 0 7px;
        transition: line-height 200ms ease-in-out, font-size 200ms ease-in-out, top 200ms ease-in-out;
        pointer-events: none;
        font-weight: 700;
        font-size: 16px;
        letter-spacing: 0.15px;
        color: rgba(0, 0, 0, 0.6);
    }
    .input-group__input {
        width: 100%;
        height: 40px;
        border: 1px solid rgba(0, 0, 0, 0.3);
        border-radius: 4px !important;
        padding: 0 10px;
    }
</style>
<div class = "input-group">
  <input class = "age input-group__input form-control is-invalid"
         type = "text"
         placeholder = "&nbsp;"
         name = "age"
         id = "validationError"
         autocomplete = "off"
         required />
  <label class = "age input-group__label" for = "age">Age</label>
  <div class = "invalid-feedback">
    Please enter an age between 35-74 years.
  </div>
</div>

Это работает. Но элементы рядом с ним пострадают. Но я могу изучить это. Спасибо.

Mark Heller 13.09.2022 06:37

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