확인란이 선택되어 있으면 레이블 강조 표시


답변:


147

당신이 가지고 있다면

<div>
  <input type="checkbox" class="check-with-label" id="idinput" />
  <label class="label-for-check" for="idinput">My Label</label>
</div>

넌 할 수있어

.check-with-label:checked + .label-for-check {
  font-weight: bold;
}

이 작동을 참조하십시오 . 최신 버전이 아닌 브라우저에서는 작동하지 않습니다.


2
OP가 IE를 신경 쓰지 않는 한 IE 6-8에서는 작동하지 않습니다.
Hussein

25
나는 내 대답에서 최신 브라우저에서만 작동한다는 것을 알고 있습니다.
Andrew Marshall

4
@ inf3rno해야합니다. 인접한 형제 선택기:checked선택기 는 모두 IE9에서 지원되는 것으로 나열됩니다. Microsoft의 자체 문서에서이를 확인합니다.
Andrew Marshall

3
좋은 해결책이지만 레이블 요소가 다음 조상이 아닌 경우 + 선택기 대신 ~ 선택기를 사용해야합니다. 456bereastreet.com/archive/200601/css_3_selectors_explained (표의 마지막)
Karl Adler

@abimelex HTML에 따라 <label>원하는 것보다 더 많은 s와 일치 할 수 있습니다 .
Andrew Marshall

101

저는 Andrew의 제안을 좋아하고 실제로 CSS 규칙은 다음과 같으면됩니다.

:checked + label {
   font-weight: bold;
}

labelinput요소 의 암시 적 연결에 의존하는 것을 좋아하므로 다음과 같이합니다.

<label>
   <input type="checkbox"/>
   <span>Bah</span>
</label>

CSS 사용 :

:checked + span {
    font-weight: bold;
}

예 : http://jsfiddle.net/wrumsby/vyP7c/


체크 된 체크 박스 의 부모 라벨 의 배경색을 변경하는 방법이 있습니다 . 라벨 오버 플로우를 확인 : 숨겨진 후 매우 큰 DropShadow를 ... 체크 박스를 제공 :checked { box-shadow: 0 0 0 500px orange; }. 형제 요소가 숨겨지지 않도록하려면 Z- 색인을 사용해야합니다.
Aaron Cicali 19

8

이것은 :checked폼을보다 쉽게 ​​접근 할 수 있도록 의사 클래스를 사용하는 예입니다 . :checked의사 클래스는 이미지 갤러리와 같은 대화 형 위젯을 구축하기 위해 숨겨진 입력과 자신의 눈에 보이는 레이블을 사용할 수 있습니다. 테스트하려는 사람들을 위해 스니핑을 만들었습니다.

input[type=checkbox] + label {
  color: #ccc;
  font-style: italic;
} 
input[type=checkbox]:checked + label {
  color: #f00;
  font-style: normal;
} 
<input type="checkbox" id="cb_name" name="cb_name"> 
<label for="cb_name">CSS is Awesome</label> 


-24

CSS만으로는 이것을 할 수 없습니다. jQuery를 사용하여 할 수 있습니다.

HTML

<label id="lab">Checkbox</label>
<input id="check" type="checkbox" />

CSS

.highlight{
    background:yellow;
}

jQuery

$('#check').click(function(){
    $('#lab').toggleClass('highlight')
})

이것은 모든 브라우저에서 작동합니다

http://jsfiddle.net/LgADZ/ 에서 작업 예제를 확인하십시오.


8
질문은 비 자바 스크립트 방식을 말했고 당신이 명확하기 전에 대답은 CSS 만 사용하여 작동하는 방식을 보여주었습니다
Kevin

2
허용되는 솔루션 은 실제로 CSS 2.1 의 기능인 인접 형제 선택기 를 사용합니다 .
Walter Rumsby 2011 년

JQuery는 크로스 브라우저 지원을 보장하는 유일한 솔루션입니다.
Hussein

7
거기 후세인 조심하세요. JavaScript를 사용하여 인접한 형제 선택기를 지원하지 않는 Internet Explorer 6과 같은 브라우저에 대한 지원을 제공 할 수 있습니다 . jQuery 는이를 수행하는 데 도움이되는 JavaScript 라이브러리입니다. 이 작업을 수행 할 수있는 다른 라이브러리 (또는 순수 JavaScript!)가 있습니다.
Simon Lieschke 2011 년

Re : 이전 의견, :checked의사 선택기 가 CSS3 기능 이라는 것을 알지 못했습니다 .
Walter Rumsby 2011 년
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.