Проблема в overflow: visible !important
для элементов <select>
, определенных в таблице стилей агента пользователя.Вы не можете переопределить это правило с помощью CSS или встроенного стиля на самом элементе <select>
.
Следующее правило CSS активно все время:
select:not(:-internal-list-box) {
overflow: visible !important;
}
Если вы установили переполнениеот .my-custom-forms
до visible
(аналогично элементу <select>
) все элементы управления получают одинаковую высоту.
Таким образом, вы можете использовать следующее решение (используя текущий код):
@import url(https://fonts.googleapis.com/css?family=Open+Sans);
.my-custom-forms {
font-family: 'Open Sans',serif;
}
select.my-custom-forms, input.my-custom-forms {
background-color: transparent;
border: none;
border-bottom: 2px solid lightblue;
border-radius: 0;
overflow: visible;
padding: 0.25rem 0.1rem;
transition: border 0.5s ease;
width: 100%;
}
<link href="https://stackpath.bootstrapcdn.com/bootstrap/4.1.0/css/bootstrap.min.css" rel="stylesheet" />
<div class="container m-3">
<div class="row">
<div class="col-3">
<select class="my-custom-forms">
<option>Option</option>
</select>
</div>
<div class="col-3">
<select class="my-custom-forms">
<option>Option</option>
</select>
</div>
<div class="col-6">
<input placeholder="text" class="my-custom-forms">
</div>
</div>
</div>
Я также рекомендую использовать классы .form-row
и .form-control
на соответствующихэлементы.Теперь вы можете переопределить правило CSS select.form-control:not([size]):not([multiple])
, чтобы высота элементов <select>
не рассчитывалась и зависела от указанного padding
:
@import url(https://fonts.googleapis.com/css?family=Open+Sans);
.my-custom-forms {
font-family: 'Open Sans',serif;
}
select.form-control.my-custom-forms:not([size]):not([multiple]) {
height: auto !important;
}
select.my-custom-forms, input.my-custom-forms {
background-color: transparent;
border: none;
border-bottom: 2px solid lightblue;
border-radius: 0;
overflow: visible;
padding: 0.25rem 0.1rem;
transition: border 0.5s ease;
width: 100%;
}
<link href="https://stackpath.bootstrapcdn.com/bootstrap/4.1.0/css/bootstrap.min.css" rel="stylesheet" />
<div class="container m-3">
<div class="form-row">
<div class="col-3">
<select class="form-control my-custom-forms">
<option>Option</option>
</select>
</div>
<div class="col-3">
<select class="form-control my-custom-forms">
<option>Option</option>
</select>
</div>
<div class="col-6">
<input class="form-control my-custom-forms" placeholder="text" type="text">
</div>
</div>
</div>