๋ชฉ์ฐจ
์ฒดํฌ๋ฐ์ค ์์ฒด๋ฅผ ์์๊ฒ ๊พธ๋ฐ ์๋ ์๋ค.
๊ตณ์ด ํ์ฌ์ฝ ๊พธ๋ฏธ์๋ฉด, ๋ฐฑ๊ทธ๋ผ์ด๋๋ฅผ ์ด์ฉํ ์๋ ์๋ค.
์ฒดํฌํ์๊ฐ ๋์์ ๋๋ input[type=checkbox]:checked์ ์คํ์ผ์ ์ฃผ๋ฉด ๋๋ค.
๊ทธ๋ฐ๋ฐ ์ด๋ฏธ์ง๋ฅผ ์ฐ์ง ์๊ณ ์ฒดํฌ๋ฐ์ค๋ฅผ ์คํ์ผ๋ก ์์๊ฒ ๊พธ๋ฏธ๋ ค๋ฉด...์ด๊ฒ ์ข ๋ณต์กํด์ง๋ค.
input[type=checkbox] + label ์ ์ด์ฉํ๊ฒ ๋๋๋ฐ,
์ด ๋ฐฉ๋ฒ์ ํต์ฌ์ input ์ฒดํฌ๋ฐ์ค ์์ฒด๋ฅผ ๋ณด์ด์ง ์๊ฒ ํ๊ณ label์ ์คํ์ผ์ ์ฃผ์ด์ ๊พธ๋ฏธ๋ ๋ฐฉ๋ฒ์ด๋ค.
๊ทธ๋ฐ๋ฐ ๋ณดํต ์ด๋ด ๋, ์ง์ง ์ฒดํฌ๋ฐ์ค๋ฅผ ๋ณด์ด์ง ์๊ฒ ํ๊ธฐ ์ํด์
input[type=checkbox] { display:none} ์ ์ฐ๊ฒ ๋๋ค.
์ด๋ ๊ฒ ํด ๋ฒ๋ฆฌ๋ฉด ์น์ ๊ทผ์ฑ ์๋ฐฐ๊ฐ ๋๋ค.
์๋ํ๋ฉด, label์์ฒด๋ focus๋ฅผ ๋ฐ์ง ๋ชปํ๊ณ , input์ด focus๋ฅผ ๋ฐ์์ผ ํค๋ณด๋ ์ด์ฉ์ฑ์ ๋ด๋ณดํ ์ ์๋๋ฐ input์ display:none์ ์ฃผ๊ฒ ๋๋ฉด, ์ฌ์ฉํ์ง ์๋ ๊ฒ์ด ๋์ด์ ํฌ์ปค์ค๊ฐ ์ด๋ํ์ง ๋ชปํ๊ณ skipํ๊ฒ ๋๋ค.
๊ทธ๋ ๋ค๊ณ , ๋ณด์ด์ง ์๊ฒ ํ๋ ค๊ณ hidden์ด๋ opacity๋ฅผ ๊ทน๋จ์ ์ผ๋ก ๋ฎ์ถ๋ฉด...์ด ์ญ์ ์ ๊ทผ์ฑ์ ์๋ฐฐ๋๋ค.
์๋ํ๋ฉด ํฌ์ปค์ค๋ฅผ ๋ฐ์ ๊ฐ์ฒด๊ฐ ํฌ์ปค์ค๋ฅผ ๋ฐ์๋ค๋ ํ์ ์ฆ, ์ ์ ์ด๋ ํฌ๋กฌ๋ธ๋ผ์ฐ์ ์์ ๊ธ๋ก์ฐ ํจ๊ณผ๊ฐ ๊ฐ์ด ์๋ณด์ด๊ฒ ๋๊ธฐ ๋๋ฌธ์ด๋ค.
์ด๋ด ๋ ์ธ ์ ์๋ ๋ฐฉ๋ฒ์, ๋ ๋ค ์ด๋ ค๋๋ ๋ฐฉ๋ฒ์ด๋ค.
๋ณดํต ์ด๋ฐ input ์ฒดํฌ๋ฐ์ค๋ฅผ ์ฌ์ฉํ ๋๋ Unorder List๋ Order List๋ฅผ ์ฌ์ฉํ๊ฒ ๋๋๋ฐ, ์ด ๋ li์ position:relative๋ฅผ ์ฃผ๊ณ , input๊ณผ label์ ๋ชจ๋ absolute๋ฅผ ์ฃผ์ด์ ์๋ก ๊ฒน์น๊ฒ ํ๋ค.
ํฝ์ ๋จ์๋ก ์ธ๋ถ ์กฐ์ ์ ํด์ผํ๊ธฐ ๋๋ฌธ์ ๊ท์ฐฎ๊ธฐ๋ ํ์ง๋ง, ํ ๋ฒ ํด ๋๋ฉด ํธํ๋ค.
๊ทธ๋ฆฌ๊ณ input[type=checkbox] ์ z-index๋ฅผ label๋ณด๋ค ๋๊ฒ ์ค๋ค.
label์ input[type=checkbox] ๋ณด๋ค๋ ๋ฎ์ z-index ๊ฐ์ ์ค์ ํ๋ input[type=checkbox]:checked ๋ณด๋ค๋ ๋๊ฒ ์ค๋ค.
input[type=checkbox]์ input[type=checkbox]:checked๋ ์ฌ์ค์ ๊ฐ์ ๊ฐ์ฒด์ธ๋ฐ, ์ ํ ์ฌ๋ถ์ ๋ฐ๋ผ z-index๊ฐ ๋ผ๋ฒจ๋ณด๋ค ์์ ๋์ด๊ธฐ๋ ํ๊ณ ๋ค์ ๋์ด๊ธฐ๋ ํ๋ฉด์, ์คํ์ผ์ด ๋จนํ label์ด ๋ณด์ด๊ธฐ๋ ํ๊ณ , ์คํ์ผ์ด ์๋ ์ฒดํฌ๋ฐ์ค๊ฐ ๋ณด์ด๊ธฐ๋ ํ๋ค.
์ฒดํฌ๊ฐ ๋๊ธฐ ์ ์ ์ฒดํฌ๋ฐ์ค์ ๋ชจ์์ ๊พธ๋ฏธ๋ ๊ฒ์ ์ด๋ฏธ์ง bg๋ฅผ ์จ์ ์ผ๋ง๋ ์ง ์์ฉ๊ฐ๋ฅํ๋ค.
.libSelect {
overflow: hidden
}
.libSelect li {
float: left;
display: inline-block;
overflow: hidden;
width: 135px;
position:relative;
}
.libSelect li.libTotal {
display: block;
width: 100%
}
.libSelect li input[type=checkbox] {
/*display: none;*/
width:12px;
height:12px;
border: 1px solid #1c5180;
background:none;
position:absolute;
left:0;
bottom:5px;
z-index:10;
}
.libSelect li input[type=checkbox] + label {
display: inline-block;
cursor: pointer;
position: relative;
padding-left: 20px;
margin-right: 4px;
z-index:5;
}
.libSelect li input[type=checkbox]+ label:before {
z-index:5;
content: "";
display: inline-block;
width: 12px;
height: 12px;
margin-right: 10px;
position: absolute;
left: 5px;
bottom: 5px;
background-color: #fff;
border-radius: 1px;
box-shadow: inset 0px 1px 1px 0px rgba(0, 0, 0,.3), 0px 1px 0px 0px rgba(255, 255, 255,.8);
}
.libSelect li input[type=checkbox]:checked + label:before {
content: "\2713"; /* ์ฒดํฌ๋ชจ์ */
text-shadow: 1px 1px 1px rgba(0, 0, 0,.2);
font-size: 10px;
font-weight: 800;
color: #fff;
text-align: center;
line-height: 11px;
}
.libSelect li input[type=checkbox]:checked { border:0 none;
z-index:0;}
๋๊ธ