input์ ํ์ ์ search๋ก ์ง์ ํ๋ฉด ๋ธ๋ผ์ฐ์ ๋ด์์ input ์ด๊ธฐํ ๋ฒํผ์ ๋ฃ์ด์ค๋๋ค.
๋์์ธ์ ์ค์์ ํ๋ ์ผ๋ถ ํ๋ก์ ํธ์์๋ ์ด๊ฒ๋ง์ ์ปค์คํ ํด์ฃผ๊ธฐ๋ฅผ ์ํฉ๋๋ค.
ํ์ง๋ง ์ฌ์ค์ ๋ธ๋ผ์ฐ์ ๋ด์์ ์์ฑํ๊ธฐ ๋๋ฌธ์ ์ ์์ฒด๋ฅผ ์ปค์คํ ํ ์๋ ์๊ณ , ์ด๋ฅผ ๋ณด์ด์ง ์๊ฒ ํ ๋ค ์ถ๊ฐ๋ก ๋์์ธ๊ณผ ๊ธฐ๋ฅ์ ๋ฃ์ด์ฃผ๋ฉด ๋ฉ๋๋ค.
์ฝ๊ฐ์ ๋ฒ๊ฑฐ๋ก์ด ์์ ์ผ ์ ์์ง๋ง ์๊ฐ๋ณด๋ค ๊ฐ๋จํฉ๋๋ค.
์ฐ์ ๋ธ๋ผ์ฐ์ ๋ด์์ ์์ฑํ ์ด๊ธฐํ ๋ฒํผ์ ์์ ๋ ค๋ฉด ๋จ์ํ input์ ํ์ ์ text๋ก ์ง์ ํ๊ฑฐ๋ css์์ ํด๊ฒฐํด ์ค ์ ์์ต๋๋ค.
/* IE์ ๊ฒฝ์ฐ */
input::-ms-clear,
input::-ms-reveal{
display:none;
}
/* ํฌ๋กฌ์ ๊ฒฝ์ฐ */
input::-webkit-search-decoration,
input::-webkit-search-cancel-button,
input::-webkit-search-results-button,
input::-webkit-search-results-decoration{
display:none;
}
( ํ ์คํธ ํด๋ณด๋ IE10๊น์ง๋ง ๋จน์ต๋๋ค. )
๊ทธ๋ฆฌ๊ณ div๋ก ํ๋ฒ ๊ฐ์ธ๊ณ input์์ ๋ฒํผ์ ์ถ๊ฐํด ์ค๋๋ค.
๋ฒํผ์ absolute๋ก ๋ถ์ธ ๋ค ๋ฒํผ์ ํฌ๊ธฐ๋งํผ input์ padding์ ์ค์ผ input์ ๊ธ์จ๋ฅผ ๋ง์ด ๋ฃ์ด๋ ๊ฐ๋ ค์ง์ง ์์์.
// html
<div class="inputWrap">
<input type="search" placeholder="๊ฒ์์ด๋ฅผ ์
๋ ฅํ์ธ์" />
<button class="btnClear"></button>
</div>
// css
.inputWrap {
position: relative;
height: 30px;
display: inline-block;
}
.inputWrap input {
padding-right: 30px;
height: inherit;
}
.inputWrap .btnClear {
position: absolute;
top: 0;
right: 0;
width: 30px;
height: inherit;
background: url(https://img.icons8.com/pastel-glyph/2x/cancel.png) center center no-repeat;
background-size: 50%;
border: none;
outline: none;
cursor: pointer;
}
๊ทธ๋ฆฌ๊ณ input์ value๋ฅผ ์ด๊ธฐํ์์ผ์ค ์คํฌ๋ฆฝํธ๋ฅผ ์ง์ค๋๋ค.
์ฌ๋ฌ ๊ฐ์ง ๋ฐฉ์์ด ์๊ฒ ์ง๋ง ์ ๋ ๋ถ๋ชจ์ ์์์ ์ฐพ์์ ์์ ์ฃผ๋ ๋ฐฉ์์ผ๋ก ํ๊ฒ ์ต๋๋ค.
์ด๋ ๊ฒ ํ๋ฉด ํ์ ๋ฅผ ์ฐพ๋ ๊ฒ๋ณด๋ค ์ด์ ์ ๊ตฌ์กฐ์ ์์(input๊ณผ button)๊ฐ ๋ฐ๋์ด๋ ์๊ด์ด ์๊ณ , ๋ณต์๊ฐ๋ฅผ ๋ฃ์ด๋ ์๋ฌ๊ฐ ๋ฐ์ํ ์ผ์ด ์๊ธฐ ๋๋ฌธ์ ๋๋ค.
์คํฌ๋ฆฝํธ๋ ์๋์ ์์ค ๋ ์ค ํ๋๋ฅผ ์ ํํด์ ์ฌ์ฉํ๋ฉด ๋ฉ๋๋ค.
1. addEventListener
// javascript
// ํ๊ฐ์ผ๋
<script>
var btnClear = document.querySelector('.btnClear');
btnClear.addEventListener('click', function(){
btnClear.parentNode.querySelector('input').value = "";
})
</script>
// javascript
// ์ฌ๋ฌ๊ฐ์ผ๋
<script>
var btnClear = document.querySelectorAll('.btnClear');
btnClear.forEach(function(btn){
btn.addEventListener('click', function(){
btn.parentNode.querySelector('input').value = "";
})
})
</script>
2. onClick
<div class="inputWrap">
<input type="search" placeholder="๋์ด๋ฅผ ์
๋ ฅํ์ธ์" />
<button class="btnClear" onClick="clearInput(this)"></button> <!-- onClick ์ถ๊ฐ -->
</div>
<script>
var clearInput = function(obj) {
obj.parentNode.querySelector('input').value = ""
}
</script>
'๊ฐ๋ฐ ๐พ > HTML,CSS' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
CSS์์ ๋ณ์ ์ฌ์ฉํ๊ธฐ (0) | 2021.06.30 |
---|---|
select ํ๊ทธ ์ปค์คํ ํ๊ธฐ, ํน์ ์ง์ ๋ง๋ค๊ธฐ (feat. javascript) (8) | 2021.06.18 |
๊ฐ์ด๋ฐ์ ์ข์ฐ๋ก ํผ์ณ์ง๊ฒ ํ๊ธฐ (0) | 2021.06.13 |
์ฒดํฌ๋ฐ์ค CSS ์ปค์คํ (0) | 2021.06.06 |
CSS ํจํด ์ด์ผ๊ธฐ - BEM, SMACSS, OOCSS (0) | 2021.02.07 |