Псевдоклассы форм

Ряд псевдоклассов используется для работы с элементами форм:

Псевдоклассы enabled и disabled

 
<style>
:enabled {
border: 2px black solid;
color: red;
}
</style>

<p><input type="text" value="Enabled" /></p>
<p><input type="text" disabled value="Disabled" /></p>

Псевдокласс checked

   
       
       <style>
       :checked + span {
       color: red;
       font-weight: bold; 	/* выделение жирным */
       }
       </style>
       
       <h4>Выберите пункт из списка</h4>
       <p>
       <input type="checkbox" checked name="html5"/>HTML5
       </p>
       <p>
       <input type="checkbox" name="dotnet"/>.NET
       </p>
       <p>
       <input type="checkbox" name="java"/>Java
       </p>
       
       <h4>Укажите пол
       <p>
       <input type="radio" value="man" checked name="gender"/>мужской
       </p>
       <p>
       <input type="radio" value="woman" name="gender"/>женский
       </p>
     

Выберите пункт из списка

HTML5

.NET

Java

Укажите пол

мужской

женский

Селектор :checked + span позволяет выбрать элемент, соседний с отмеченным элементом формы.

Псевдокласс default

       <style>
       :default {
       border: 2px solid red;
       }
       </style>
     
       <form>
       <input name="login"/>
       <input type="submit" value="Войти" />
       </form>
       

Псевдоклассы valid и invalid

         <style>
       input:invalid {
       border: 2px solid red;
       }
       input:valid {
       border: 2px solid green;
       }
       </style>
       
       
       <form>
       <p><input type="text" name="login" placeholder="Введите логин" required /></p>
       <p><input type="password" name="password" placeholder="Введите пароль" required /></p>
       <input type="submit" value="Войти" />
       </form>
       

Псевдоклассы in-range и out-of-range

Диапозон выбран у элемента <input type="number" >.
В нашем случае min=1 max=100:

       <style>
       :in-range {
       border: 2px solid green;
       }
       :out-of-range {
       border: 2px solid red;
       }
       </style>
       
       
       <form>
       <p>
       <label for="age">Ваш возраст:</label> 
       <input type="number" min="1" max="100" value="10" id="age" name="age"/>
       </p>
       <input type="submit" value="Отправить" />
       </form>
       

Псевдоклассы required и optional

<style>
:optional {
border: 2px solid blue;
}
:required {
border: 2px solid red;
}
</style>
</head>


<p>
<label for="login">Логин:</label> 
<input type="text" id="login" name="login" required />
</p>
<p>
<label for="password">Пароль: 
<input type="password" id="password" name="password" required />
</p>
<p>
<label for="name">Имя:</label> 
<input type="text" id="name" name="name"/>
</p>
<input type="submit" value="Регистрация" />
</form>