#css
Вопрос:
Я хочу, чтобы в моем поле ввода отображалась красная граница, если только поле ввода не содержит значения.
Это работает так, как я хочу, для целых чисел (0, 1, 2, 3 …) но не для десятичных знаков (0,1, 0,2, 0,3 …).
Как я могу заставить поле ввода удалить красную рамку, если поле содержит любое число?
input {
margin: 0 10px 20px 0;
padding: 5px;
font-size: 24px;
width: 75px
}
input:required:invalid {
border: 2px solid red;
-moz-box-shadow: none;
}
<input id = "enterThing"
type = "number"
class = "form-control formBlock"
min = "0"
max = "10.5"
required/
>
<input id = "sliderThing"
class = "slider"
type = "range"
step = ".1"
value = "0"
min = "0"
max = "10.5"
oninput = "enterThing.value = sliderThing.value"
>
Комментарии:
1. Ваш фрагмент кода отлично работает для меня в Chrome без каких-либо изменений. После ввода номера красная рамка исчезает. Хотя вы, возможно, захотите рассмотреть возможность использования
:empty
классов и:focus-visible
псевдоклассов также в других правилах.
Ответ №1:
Добавьте step
атрибут также к номеру входного типа.
input {
margin: 0 10px 20px 0;
padding: 5px;
font-size: 24px;
width: 75px
}
input:required:invalid {
border: 2px solid red;
-moz-box-shadow: none;
}
<input id = "enterThing"
type = "number"
class = "form-control formBlock"
min = "0"
max = "10.5"
step = "0.1"
required/
>
<input id = "sliderThing"
class = "slider"
type = "range"
step = ".1"
value = "0"
min = "0"
max = "10.5"
oninput = "enterThing.value = sliderThing.value"
>
Комментарии:
1. Шаг по умолчанию-один… И кажется, что проверка учитывает это. Это было не очевидно 😉