2013-07-25 5 views
11

두 개의 라디오 버튼이 있습니다. 클릭 할 때 배경색을 설정해야합니다. 내 코드는 IE8을 제외한 모든 브라우저에서 작동합니다. Javascript를 사용하지 않고 Internet Explorer 8에서이 작업을 수행 할 수 있습니까?어떻게하면 CSS 유사 요소를 얻을 수 있습니까? Javascript없이 IE8에서 작동하도록 선택 했습니까?

http://jsfiddle.net/chrimbus/sXjyL/3/

+0

경우,이 경우 대안가 없다': checked', 그때 나는 응답이 아니오 '입니다 두려워 해요. ' –

+0

이 주제를 찾는 사람들을 위해 : 참고로, IE8을 제외한 모든 브라우저에서 JS를 사용하지 않고 체크 된 상태로 CSS 스타일을 지정할 수 있습니다. 아래 답변은 JS를 사용하여 IE8을 지원하는 방법을 설명합니다. – nthChild

답변

12

<form> 
    <input type="radio" id="m" name="gender" value="male"> 
    <label for="m">male</label> 
    <input type="radio" id="f" name="gender" value="female"> 
    <label for="f">female</label> 
</form> 

input:checked + label{ 
    background:red; 
} 
IE8 understands 인접 형제 선택자하지만, doesn't understand checked 의사 요소, 그래서 불행하게도, 당신은 단지 CSS를 사용하여 코드가 IE8 친화적 할 수 없습니다.

JavaScript 솔루션의 경우 Selectivizr 또는 IE7.js을 확인하십시오.

1

당신이 시도 할 수 있습니다 : 브라우저가 CSS 선택기를 지원하지 않습니다

input[checked=checked] + label{ 
    background:red; 
} 
+3

페이지가로드되어 checked = "checked"로 설정되면 작동합니다. 그러나 입력 내용의 선택을 취소해도 모양이 변경되지는 않습니다. –