-
[2019.10.30] input type file 커스터마이징 방법개발 블로깅/오늘의 TIL 2019. 10. 31. 00:01
input type file을 쓰면, 각 브라우저마다 아래와 같이 나타나게 된다.
<input type='file' />
이처럼 input type을 file로 사용하는 태그는, 브라우저 내부에 정해진 대로 나타나기 때문에, 해당 디자인을 직접 변경할 수가 없다.
대신 이 태그를 숨기고, 직접 만든 태그 요소에 input file태그가 동작하도록 할 수 있다.
#HTML
<div class="filebox"> <label for="ex_file">업로드</label> <input type="file" id="ex_file"> </div>
#css
.filebox label { display: inline-block; padding: .5em .75em; color: #999; font-size:inherit; line-height: normal; vertical-align: middle; background-color: #fdfdfd; cursor: pointer; border: 1px solid #ebebeb; border-bottom-color: #e2e2e2; border-radius: .25em; } .filebox input[type="file"] { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip:rect(0,0,0,0); border: 0; }
그러면 위와 같은 버튼이 생기면서, 해당 업로드 버튼을 클릭하면, file을 선택할 수 있는 창이 나타나게 된다.
여기서 중요한 건 label 태그의 for와 input 태그의 id가 일치해야한다.
이게 일치하지 않으면, input 태그의 기능이 동작하지 않는다.
(이 부분 때문에 엄청나게 헤맸다...)
반응형'개발 블로깅 > 오늘의 TIL' 카테고리의 다른 글
[2020.04.26] Javascript 깊은 복사의 함정... 모르고 사용하다 뒤통수 맞았다... (4) 2020.04.26 [2019.11.02] base64 Image Data를 File 객체로 변환하는 법 (0) 2019.11.02 [2019.10.28] source tree - Invalid username or password (0) 2019.10.28 [2019.10.11] Mac 터미널로 VScode 여는 'code' 명령어를 영구적용 시키는 법 (1) 2019.10.11 [2019.10.03] 오늘의 TIL - 같은 class의 특정 태그에만 Style을 다르게 적용시키기 (0) 2019.10.03