В данном примере мы будем размещать внутри Input иконку формата SVG, стилизуем инпут
<div class="input-with-icon">
<input type="text" placeholder="Поиск...">
<div class="icon-container">
<img class="icon" src="https://blog.jalovik.ru/wp-content/uploads/2023/06/ic-search.svg">
</div>
</div>
<style>
.input-with-icon {
position: relative;
}
.input-with-icon input {
width: 100%;
height: 40px;
border: 1px solid black;
border-radius: 5px;
padding: 4px;
padding-right: 36px; /* Добавляем дополнительный отступ справа для учета размера контейнера иконки с отступом */
margin: 0px;
}
.icon-container {
display: flex;
align-items: center;
position: absolute;
top: 50%;
right: 6px; /* Регулируйте значение right в зависимости от желаемого отступа */
transform: translateY(-50%);
padding:3px;
}
.icon {
width:24px;
height: 24px;
}
</style>
В HTML коде мы разместили иконку в div, создали для неё контейнер, это удобно для позиционирования и применения стилей к этому контейнеру, например если мы хотим добавить фон для иконки.
<div class="wrapper">
<div class="input-with-icon">
<input type="text" placeholder="Поиск...">
<div class="icon-container">
<img class="icon" src="https://blog.jalovik.ru/wp-content/uploads/2023/06/ic-search.svg">
</div>
</div>
</div>
<style>
input{
border: none;
}
input:focus{
border: none;
}
.wrapper{
background-color: antiquewhite;
padding: 16px;
}
.input-with-icon {
position: relative;
background-color: #fff;
border-radius: 5px;
overflow: hidden;
}
.input-with-icon input {
position: relative;
width: 100%;
height: 50px;
background: transparent;
border: 2px solid #b3ea9a;
padding: 4px;
padding-right: 36px; /* Добавляем дополнительный отступ справа для учета размера контейнера иконки с отступом */
margin: 0px;
z-index: 1;
}
.icon-container {
background-color: #b3ea9a;
height: 100%;
display: flex;
align-items: center;
position: absolute;
top: 50%;
right: 0px; /* Регулируйте значение right в зависимости от желаемого отступа */
transform: translateY(-50%);
padding: 0px 10px;
}
.icon {
width:24px;
height: 24px;
}
.input-with-icon input:focus{
border: none!important;
}
</style>