2016-10-13 3 views
0

내 웹 사이트에 기본 체크 박스가 있으며 모든 체크 박스에 텍스트 만 있습니다 (예 : example).이미지로 체크 박스를 만드는 방법

체크 박스가 이미지를 갖도록 설계 할 수 있습니까? 선택한 경우 "v"표시를 확인란에 넣을 수 있습니까? enter image description here

+0

*이 중 너무 많은 가능한 답변, 또는 좋은 답변이 너무 오래이 형식이 될 것입니다. 답변 세트를 좁히거나 몇 단락에서 대답 할 수있는 문제를 찾아내는 세부 사항을 추가하십시오. * – BSMP

+0

이미지로 확인란을 디자인하는 방법을 찾으려고했지만 저에게 도움이되는 리소스를 찾지 못했습니다. 나는 너희들 중 누구라도 그것을 할 방법을 알고 있는지 물어 본다. 당신이 나를 어떤 오픈 소스로 인도 할 수 있다고해도, 아니면 간단한 예를 든다면? – Yagel

답변

2

이것은 당신이

input { 
 
    display: none 
 
} 
 

 
/* switch image */ 
 
label[for="chk1"] { 
 
    display: inline-block; 
 
    text-align: center; 
 
    width: 100px; 
 
    height: 100px; 
 
    border: 2px solid black; 
 
    background: url(http://placehold.it/100/f00); 
 
} 
 
#chk1:checked ~ label[for="chk1"] { 
 
    background: url(http://placehold.it/100/ff0); 
 
} 
 

 
/* add content */ 
 
label[for="chk2"] { 
 
    display: inline-block; 
 
    text-align: center; 
 
    width: 100px; 
 
    height: 100px; 
 
    border: 2px solid black; 
 
    position: relative; 
 
} 
 
#chk2:checked ~ label[for="chk2"]::after { 
 
    content: 'V'; 
 
    position: absolute; 
 
    left: 0; 
 
    right: 0; 
 
    font-size: 90px; 
 
    font-weight: bold; 
 
    font-family: arial; 
 
}
<input id="chk1" type="checkbox"> 
 
<input id="chk2" type="checkbox"> 
 

 
<label for="chk1"></label> 
 
<label for="chk2"></label> 
 

 
<div>Click a box to toggle it</div>

+0

정말 잘 보이지 않습니다. : P –

+0

@ K.Daniek 이것은보기 좋게하기위한 시도가 아니며 이미지 기반 체크 박스를 얻는 방법을 보여줍니다. – LGSon

+0

그래, 알아. 하지만 jquery가 순수 CSS보다 더 빠르고 더 잘 처리 할 것이라고 생각합니다. –

1

나는 '돈 라벨을 사용하여 이미지 기반의 체크 박스를 시뮬레이션 할 수있는 방법입니다


나는이 같은 것을보고 싶지 대부분의 사람들은 자신의 체크 박스에 이미지를 넣는다고 생각하지 않습니다. 그것들은 @LGSon처럼 이미지를 체크 박스처럼 만들거나 div와 함께 이미지와 체크 박스를 묶습니다. 이런 식으로 뭔가 :

function toggleCheck(sibling) { 
 
    var checkBox = sibling.parentNode.getElementsByTagName("input")[0]; 
 
    checkBox.checked = !checkBox.checked; 
 
}
.image-box { 
 
    width: 150px; 
 
    text-align: center; 
 
    background: #E9E8E7; 
 
    padding: 10px; 
 
    -webkit-box-shadow: 2px 2px 5px 0px rgba(0, 0, 0, 0.75); 
 
    -moz-box-shadow: 2px 2px 5px 0px rgba(0, 0, 0, 0.75); 
 
    box-shadow: 2px 2px 5px 0px rgba(0, 0, 0, 0.75); 
 
    border-radius: 5px 5px 5px 5px; 
 
    -moz-border-radius: 5px 5px 5px 5px; 
 
    -webkit-border-radius: 5px 5px 5px 5px; 
 
} 
 
.image-box img { 
 
    max-width: 100%; 
 
    display: block; 
 
    margin-bottom: 7px; 
 
}
<div class="image-box"> 
 
    <img src="https://3.bp.blogspot.com/-W__wiaHUjwI/Vt3Grd8df0I/AAAAAAAAA78/7xqUNj8ujtY/s1600/image02.png" onClick="toggleCheck(this);" /> 
 
    <input id="dogs" type="checkbox" name="dogs" value="Dog"> 
 
    <label for="dogs">I like dogs</label> 
 
</div>

+0

왜 'span' 스크립트를 사용하고'label'와 스크립트없이 할 수 있습니까? – LGSon

+0

LGSon, 의견을 보내 주셔서 감사합니다. 사이드 노트로, 당신의 허풍 떨리는 말은 초보자가 도움을 얻을 수 있도록 설계된 Q & A 사이트에서 조금 벗어났습니다. 이미지를 다시 클릭 할 수 있도록 이미 스크립트를 사용하고 있었기 때문에 스팬과 스크립트를 사용하여 재사용 할 수있었습니다. 하지만 레이블이 아마도 거기에 더 나은 선택입니다 그래서 당신의 제안을 통합하는 내 대답을 업데이 트했습니다. – lfalin

+0

아무도 놔두지 않으려했기 때문에 미안하다면 스크립트를 사용하지 말고, 특히 이런 것들을 위해 만들어진 라벨을 지적하고 싶었습니다 ... 그리고 btw, 그래서 SO는 QA 사이트가 아닙니다. 초보자 – LGSon

관련 문제