Стилизация поля ввода при фокусе
Когда поле ввода получает фокус (по нему кликают), некоторые браузеры по умолчанию рисуют вокруг него синий контур. Если добавить полю ввода outline: none;, контур исчезнет.
Если вам нужен собственный стиль для поля ввода в фокусе, используйте селектор :focus.
Пример
Когда текстовое поле ввода получает фокус, цвет его фона меняется.
Output: complete HTML page
<!DOCTYPE html>
<html>
<head>
<meta name="viewport" content="width=device-width, initial-scale=1">
<style>
input[type=text]:focus {
background-color: lightblue;
}
</style>
</head>
<body>
<h2>Focus Background Color</h2>
<p>Click on the text field to see the focus effect:</p>
<form>
<label for="fname">First Name</label><br>
<input type="text" id="fname" name="fname">
</form>
</body>
</html>
Пример
Когда текстовое поле ввода получает фокус, его граница меняется.
Output: complete HTML page
<!DOCTYPE html>
<html>
<head>
<meta name="viewport" content="width=device-width, initial-scale=1">
<style>
input[type=text]:focus {
border: 3px solid #555;
}
</style>
</head>
<body>
<h2>Focus Border</h2>
<p>Click on the text field to see the focus effect:</p>
<form>
<label for="fname">First Name</label><br>
<input type="text" id="fname" name="fname">
</form>
</body>
</html>
Стилизация поля ввода со значком/изображением
Если внутри поля ввода должен быть значок, за это отвечают два свойства: background-image задаёт его, а background-position размещает. Большой отступ padding слева оставляет для значка свободное место.
Пример
Output: complete HTML page
<!DOCTYPE html>
<html>
<head>
<meta name="viewport" content="width=device-width, initial-scale=1">
<style>
input[type=text] {
background-color: white;
background-image: url('searchicon.png');
background-position: 10px 10px;
background-repeat: no-repeat;
padding-left: 40px;
}
</style>
</head>
<body>
<h2>Input Icon</h2>
<p>An input field with an icon inside:</p>
<form>
<input type="text" name="search" placeholder="Search..">
</form>
</body>
</html>
Анимированное поле поиска
В этом примере поле поиска становится шире при получении фокуса, а изменение ширины анимируется CSS-свойством transition. Подробнее это свойство рассматривается позже, в главе CSS Transitions.
Пример
Output: complete HTML page
<!DOCTYPE html>
<html>
<head>
<meta name="viewport" content="width=device-width, initial-scale=1">
<style>
input[type=text] {
width: 130px;
box-sizing: border-box;
border: 2px solid #ccc;
border-radius: 4px;
font-size: 16px;
background-color: white;
padding: 12px 20px;
transition: width 0.4s ease-in-out;
}
input[type=text]:focus {
width: 100%;
}
</style>
</head>
<body>
<h2>Animated Search Input</h2>
<p>Click on the search field to see the animation effect:</p>
<form>
<input type="text" name="search" placeholder="Search..">
</form>
</body>
</html>