2010-02-26 1 views
7

입력 상태에 따라 HTML 레이블의 스타일을 지정할 수 있습니까?<input>의 상태를 기준으로 <label> 스타일을 지정하십시오.

제 경우에는 체크 여부에 따라 <input type="checkbox"> 스타일을 지정하고 싶습니다.

입력 소스에 라벨을 넣으려고했으나 입력 소스에 중첩되어 있어도 Firefox와 Chrome (최소한)은 형제로 파싱 된 것처럼 보입니다. 그리고 for = 속성을 통해 간접적으로 사용할 수있는 CSS 규칙을 작성하는 방법을 모르겠습니다.

이 자바 스크립트를 채찍질해야하나요?

답변

5

중첩 될 필요가 없습니다. 즉, 레이블 > 요소의 "for"속성입니다.

<input name="cb" id="cb" type="checkbox"><label for="cb">Checkbox</label> 
: 최신 브라우저에서

(CSS 2.1을 지원하는 것), 당신은

input + label { 
    /* rules */ 
} 
당신은 같은 엄격한 형제 관계에있는 마크 업을해야 할 것이다

으로, 형제 선택기를 사용할 수 있습니다 인접한/형제 선택 플러스 속성 선택기를 사용

+0

아, 내가 모르는 bout 형제 선택 자 (하지만 내가 가지고 있어야합니다). IE6에서 작동해야하는이 경우를 제외하고는 완벽 할 것입니다. IE6에서는 지원하지 않습니다. JS로 돌아 간다. :-( – Ken

+0

그래, IE6은 매일 세상을 끌어야만하는 십자가 야. 미안해! – Robusto

4

는 작동 할 것 :

<form> 
    <style> 
    INPUT[checked=checked] + LABEL { 
     color: #f00;  
    } 
    </style> 
    <div> 
     <input type="checkbox" id="chk1" /> 
     <label for="chk1">Label #1</label> 
    </div> 
    <div> 
     <input type="checkbox" id="chk2" checked="checked" /> 
     <label for="chk2">Label #2</label> 
    </div> 
</form> 
관련 문제