2016-07-24 7 views
0

체크 상자에 FontAwesome을 사용하려고합니다. 선택하지 않은 상태에서는 Trash 아이콘이 표시되고 체크 상태에서는 같은 아이콘이 표시되지만 붉은 색으로 표시됩니다.FontAwesome for checkbox

font-awesome.min.css와 글꼴을 추가했습니다.

HTML :

<div class="delete-checkbox"> 
    <input type="checkbox" id="checkbox-delete-6053923167078"> 
    <span></span> 
</div> 

CSS :

.delete-checkbox input[type="checkbox"] { 
    display: none; 
} 

.delete-checkbox span:before { 
    font-family: "FontAwesome"; 
    font-style: normal; 
    width: 1em; 
    height: 1em; 
    content: '\f014'; 
    margin-right: .3em; 
} 

.delete-checkbox input[type="checkbox"]:checked ~ span:before { 
    color: red; 
} 

내가 휴지통 아이콘은, 그러나, 그것은 클릭 할 수의 결과에서 볼 않으며 나는 그것을 클릭하면, 그것은 빨간색으로하지 않습니다 .

어떻게하면됩니까?

+0

당신은 사용하지 않는 것입니다. –

+0

올바른지, 왜냐하면 나는 일반 체크 박스를 원하지 않기 때문이다. – Dejell

+1

질문에 대한 대답이 명확하지 않거나 올바른 답변으로 jQuery가 필요한 이유 - HTML/CSS 버전이 질문에 따라 완벽하게 작동합니다. – Toby

답변

2

이 시도 :

http://jsbin.com/sanoya/edit?html,css,output

문제는 사용할 때 display: none; 당신은 본질적으로 DOM에서 요소를 제거하고, 요소 따라서 클릭 할 수없는 것입니다.

+0

일반 체크 박스를 갖고 싶지 않습니다. 이미지를 체크 박스로 사용하고 싶습니다. – Dejell

+0

게시 한 jsbin의 문제점은 무엇입니까? 휴지통 아이콘 만 표시되며 입력이 선택되면 아이콘이 빨간색으로 바뀝니다. – Toby

+0

휴지통 아이콘이 표시되지 않습니다. 크롬을 사용하고 있습니다. 검은 색 사각형을 보여줍니다. 내가 그것을 클릭하면 빨간색으로 바뀌지 만 이미지는 글꼴이 없기 때문에 – Dejell

1

당신이

를 좋아하는 경우에 당신은 다음과 같이 당신의 <span></span> 교체 자바 스크립트를 사용할 수 있습니다 : 당신이 jQuery를 사용하는 경우,

<span onclick="document.getElementById('checkbox-delete-6053923167078').checked = !document.getElementById('checkbox-delete-6053923167078').checked"></span> 

을 또는, 당신은이를 사용할 수 있습니다

<span onclick="$('#checkbox-delete-6053923167078').prop('checked', !$('#checkbox-delete-6053923167078').prop('checked'));"></span> 
+0

감사합니다. 그것이 정답입니다. 잠시 후에 내가 틱 할 것이다! – Dejell

+0

비 jquery 버전도 추가되었습니다. – Delosdos

+0

누가 jQuery를 사용하지 않습니까? :) 당연히 – Dejell

1

이있다 원하는 것을 얻기 위해 JavaScript를 사용할 필요가 없습니다. 귀하의 마크 업은 거의 괜찮 았습니다. <span> 태그 대신 <label> 태그를 사용해야하며 CSS에 <label>을 사용해야합니다. 이렇게,이

<div class="delete-checkbox"> 
    <input type="checkbox" id="checkbox-delete-6053923167078"> 
    <label for="checkbox-delete-6053923167078"></label> 
</div> 

같은 마크 업 및 당신이 볼 수 있듯이이

.delete-checkbox input[type="checkbox"] { 
    display: none; 
} 

.delete-checkbox label:before { 
    font-family: "FontAwesome"; 
    font-style: normal; 
    width: 1em; 
    height: 1em; 
    content: '\f014'; 
    margin-right: .3em; 
} 

.delete-checkbox input[type="checkbox"]:checked ~ label:before { 
    color: red; 
} 

같은 CSS로 끝을 것이다, 나는 단지 <label> 태그로 <span>을 변경했습니다.

이렇게하면 JavaScript 코드를 사용하지 않고도 원하는 것을 할 수 있습니다. 본질적으로 DOM에서 요소를 제거합니다 : "없음 표시",

Fiddle

+0

확인란 옆에 아무 것도 쓸 필요가 없으면 레이블을 제거 할 수 있습니까? – Dejell

+1

레이블은 확인란을 선택하는 기능을 제공합니다. 체크 박스 자체를 표시하므로 클릭을 유발할 수 있습니다. 이 경우 레이블 자체는 비어 있고 CSS를 통해 내용을 가져옵니다. 레이블을 제거하면 확인란 자체를 표시해야합니다. – Aer0