Как валидировать форму на чистом css при помощи псевдоклассов invalid и placeholder-shown?
Прочитал в статье, что можно валидировать форму на чистом CSS используя сочетание псевдоклассов :placeholder-shown и :invalid и свойства :not.
Пробую воспроизвести это в форме ниже, но не получается добиться результата.
Валидацию в самом примере тоже не получается проверить
.form {
display: inline-block;
padding: 25px;
border: 1px solid #ccc;
border-radius: 5px;
width: 500px;
}
.form__field {
margin-bottom: 10px;
}
.validation {
color: red;
text-align: left;
font-size: 12px;
display: block;
margin-top: 3px;
display: none;
}
.form input {
outline: none;
display: block;
width: 100%;
border-radius: 2px;
border: 1px solid #ccc;
padding: 10px;
box-sizing: border-box;
}
.form button {
width: 100%;
padding: 10px;
border-radius: 2px;
border: 0;
background-color: #ccc;
color: #fff;
cursor: pointer;
}
input:valid:not(:placeholder-shown) {
border-color: green;
}
input:invalid:not(:placeholder-shown) {
border-color: red;
}
input:invalid:not(:placeholder-shown)+.validation {
display: block;
}
<form action="#" class="form">
<div class="form__field">
<label>*Фамилия
<input type="text" name="surname" placeholder=" " required>
<span class="validation">Поле обязательно к заполнению.</span> </label>
</div>
<div class="form__field">
<label>*Имя
<input type="text" name="name" placeholder=" " required>
<span class="validation">Поле обязательно к заполнению.</span> </label>
</div>
<div class="button">
<button type="submit">Отправить обращение</button>
</div>
</form>