#html #css
Вопрос:
Поскольку у меня есть PWA, я могу найти только учебные пособия по загрузке изображений с помощью поля ввода. Эта часть работает, но я пытаюсь заменить значок «выбрать файл» по умолчанию пользовательским изображением.
Вот фотография того, что у меня есть:
Я вообще не хочу, чтобы изображение «выбрать файл» отображалось. Также есть формулировка по умолчанию «Файл не выбран». Мне просто нужно изображение, которое находится в фоновом режиме, но я не нашел ничего в Интернете, чтобы показать, как его заменить.
.input_pic {
background-image: url("../../../assets/image/SpaghettiPlus2.png") !important;
background-repeat: no-repeat;
}
<div *ngSwitchCase="'false'">
<ion-input class="input_pic" type="file"
id="capture"
accept="image"
capture (change)="uploadFromFile($event, 'photo1')"></ion-input>
</div>
Комментарии:
1. Почему бы вам просто не добавить прослушиватель щелчков мыши к изображению, а затем загрузить, а затем запустить действие. Я не знаю, является ли это угловым, но это было бы легко сделать.
2. @nck это поле ввода загружает изображение в серверную часть firebase. Это единственный способ, которым я знаю, как это сделать на PWA. Поэтому, когда вы нажимаете на него, вы можете искать изображение на своем устройстве, и оно загружается. Событие щелчка на фактическом значке не обеспечивает эту функциональность.
Ответ №1:
Можно стилизовать кнопку «Выбрать ::file-selector-button
«, однако с помощью этого решения вы ничего не сможете сделать с no file chosen
текстом.
Ну, вы можете, установив color
на transparent
, но это не идеально.
#browse::file-selector-button {
display: none;
}
#browse {
color: transparent;
}
#browse::before {
content: url('https://via.placeholder.com/150');
}
<input type="file" id="browse">
Другое решение состоит в том, чтобы скрыть весь input
элемент управления и использовать a label
для запуска события просмотра элемента управления вводом.
label {
display: block;
width: 150px;
height: 150px;
background: url("https://via.placeholder.com/150");
cursor: pointer;
}
#browse {
display: none;
}
<label for="browse" title="click to browse file"></label>
<input id="browse" type="file"> </input>
Ответ №2:
Просто перенаправьте щелчок по изображению на вход и полностью скройте ввод:
document.querySelector("img").onclick = (evt) => {
document.querySelector("input").click();
};
input { display: none; }
img { cursor: pointer; }
<img src="https://picsum.photos/100/100">
<input type="file">