У меня есть форма начальной загрузки, в которой у меня есть входной файл, но я хочу, чтобы она имела дизайн btn-outline-info, поэтому я делаю:
<div class = "btn btn-outline-info btn-lg">
<input id = "signedAgreementFile" type = "file" class = "form-control-file">
</div>
Итак, у меня есть кнопка «Выбрать файл», рядом с которой строка: «нет выбора файла» синего цвета, и обе они находятся в синем поле:
И когда я нахожу его, кнопка становится синей, а текст - белым:

Пока здесь все идет хорошо. Но когда я загружаю файл, имя файла заменяет «нет выбора файла», но всегда остается белым:
Понятия не имею, почему и как это исправить. У меня даже нет доступа к этому тексту в HTML.






Добавьте класс text-info в свой ввод и добавьте дополнительный CSS, чтобы цвет фона не менялся при наведении курсора.
.btn:hover {
background-color: transparent !important;
}<script src = "https://code.jquery.com/jquery-3.3.1.slim.min.js" integrity = "sha384-q8i/X+965DzO0rT7abK41JStQIAqVgRVzpbzo5smXKp4YfRvH+8abtTE1Pi6jizo" crossorigin = "anonymous"></script>
<script src = "https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.3/umd/popper.min.js" integrity = "sha384-ZMP7rVo3mIykV+2+9J3UJ46jBk0WLaUAdn689aCwoqbBJiSnjAK/l8WvCWPIPm49" crossorigin = "anonymous"></script>
<script src = "https://stackpath.bootstrapcdn.com/bootstrap/4.1.3/js/bootstrap.min.js" integrity = "sha384-ChfqqxuZUCnJSK3+MXmPNIyE6ZbWh2IMqE241rYiqJxyMiZ6OW/JmZQ5stwEULTy" crossorigin = "anonymous"></script>
<link rel = "stylesheet" href = "https://stackpath.bootstrapcdn.com/bootstrap/4.1.3/css/bootstrap.min.css" integrity = "sha384-MCw98/SFnGE8fJT3GXwEOngsV7Zt27NXFoaoApmYm81iuXoPkFOJwJ8ERdknLPMO" crossorigin = "anonymous">
<div class = "btn btn-outline-info btn-lg">
<input id = "signedAgreementFile" type = "file" class = "form-control-file text-info">
</div>Попробуй это?
<script src = "https://code.jquery.com/jquery-3.3.1.slim.min.js" integrity = "sha384-q8i/X+965DzO0rT7abK41JStQIAqVgRVzpbzo5smXKp4YfRvH+8abtTE1Pi6jizo" crossorigin = "anonymous"></script>
<script src = "https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.3/umd/popper.min.js" integrity = "sha384-ZMP7rVo3mIykV+2+9J3UJ46jBk0WLaUAdn689aCwoqbBJiSnjAK/l8WvCWPIPm49" crossorigin = "anonymous"></script>
<script src = "https://stackpath.bootstrapcdn.com/bootstrap/4.1.3/js/bootstrap.min.js" integrity = "sha384-ChfqqxuZUCnJSK3+MXmPNIyE6ZbWh2IMqE241rYiqJxyMiZ6OW/JmZQ5stwEULTy" crossorigin = "anonymous"></script>
<link rel = "stylesheet" href = "https://stackpath.bootstrapcdn.com/bootstrap/4.1.3/css/bootstrap.min.css" integrity = "sha384-MCw98/SFnGE8fJT3GXwEOngsV7Zt27NXFoaoApmYm81iuXoPkFOJwJ8ERdknLPMO" crossorigin = "anonymous">
<div class = "btn btn-outline-info btn-lg">
<input id = "signedAgreementFile" type = "file" class = "form-control-file" onchange = "this.style.color='#17a2be'">
</div>Какой браузер вы используете?
Я использую гугл хром
Понятно. Странное поведение ИМО. Я обновил свой ответ, чтобы показать, что я считаю неприятным решением, но, по крайней мере, оно работает.
Если я это сделаю, я отменю наведение. Это лучше, но не то, что я ищу. Очень хотелось бы, чтобы зависание оставалось.