나는 지난 10 년 동안 숨겨진 입력과 보이지 않는 입력에 대해 많은 문제를 겪어 왔으며 때로는 생각보다 상황이 더 간단합니다.
불투명도를 지원하지 않기 위해 IE 5,6,7,8 및 9에서 약간의 소원이 있었으므로 파일 입력이 업로드 이미지를 덮을 것이지만 다음 CSS 코드로 문제가 해결되었습니다.
-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=0)";
filter: alpha(opacity=0);
다음 스니핑은 크롬, IE 5,6,7,8,9,10에서 테스트되었습니다. IE 5의 유일한 문제는 자동 마진을 지원하지 않는다는 것입니다.
스 니펫을 실행하기 만하면 CSS를 복사하여 붙여넣고 원하는대로 크기를 수정합니다.
.file-upload{
height:100px;
width:100px;
margin:40px auto;
border:1px solid #f0c0d0;
border-radius:100px;
overflow:hidden;
position:relative;
}
.file-upload input{
position:absolute;
height:400px;
width:400px;
left:-200px;
top:-200px;
background:transparent;
opacity:0;
-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=0)";
filter: alpha(opacity=0);
}
.file-upload img{
height:70px;
width:70px;
margin:15px;
}
<div class="file-upload">
<!--place upload image/icon first !-->
<img src="https://i.stack.imgur.com/dy62M.png" />
<!--place input file last !-->
<input type="file" name="somename" />
</div>