2011-06-13 5 views
4

를 등록하지 않습니다 IE9의 쿼크 모드에서 CSS의 ID의 시작에 밑줄 나는이 같은 ID와 CSS를 선 포함하는 동적으로로드 된 CSS 파일이 :이 페이지를 렌더링 사실을 변경할 수 없습니다

#__my_css_id{ 

    width: 100%; 
    height: 100%; 
    left: 0px; 
    top: 0px; 
    position: fixed; 
    background-color: #202020; 
} 

을 quirks 모드에서 원격으로 호스트 된 스크립트 (my script that)입니다. 일부 페이지는 단점이지만 일부는 그렇지 않습니다.

quirks 모드와 IE9 (다른 IE 버전을 시도하지 않았을 때)는 CSS가 제대로로드되지 않은 것 같습니다. 사실, IE 디버거 (F12)를 사용하여 CSS를 디버깅 한 다음 모든 CSS를 볼 수 있지만이 두 개의 밑줄로 시작하면 모든 CSS IDS는 알 수 없음이라고 말합니다. #__

요소를 디버그하고 CSS는 CSS 규칙이 없습니다. 쿼크 모드에서는 CSS ID의 시작 부분에 밑줄을 사용할 수 있습니까?

감사합니다.

+2

ID가 글자로 시작한다고 가정하면 기술적으로 올바른 마크 업은 없습니다. 그것은 quirks 모드만을위한 것이 아닙니다. 그것은 여전히 ​​표준 모드에 대한 유효한 규칙입니다. 참조 : http://stackoverflow.com/questions/70579/what-are-valid-values-for-the-att-attribute-in-html – vcsjones

+0

충돌을 명명하지 않으려 고하므로 안전하다고 생각했습니다. 밑줄을 추가하십시오. 더 나은 해결책은 무엇입니까? –

+0

충돌을 피하기 위해 ID를 "네임 스페이스"로 그냥 씁니다. 이미 수행중인 것과 유사하지만 유효한 값으로 설정하십시오. 예 :'# MY-id1 # MY-id2'. (그리고 그들이 대소 문자를 구분한다는 것을 기억하십시오) –

답변

2

두 개의 밑줄은 CSS2에서 작동하지만 quirks mode은 CSS1의 부분 구현입니다. CSS2 spec 말한다 :

CSS2에서

(선택기의 요소 이름, 클래스, ID를 포함한다)의 식별자는 문자 만 [A-ZA-Z0-9] 및 ISO 10646 문자 U + 00A0 이상을 포함 할 수있는, 더하기 하이픈 (-)과 밑줄 (_); 숫자, 하이픈 2 개 또는 하이픈 다음에 숫자로 시작할 수 없습니다. 식별자는 이스케이프 된 문자와 ISO 10646 문자를 숫자 코드로 포함 할 수도 있습니다 (다음 항목 참조). 예를 들어, 식별자 "B & W?" "B \ & W \?"로 쓰여질 수 있습니다. 또는 "B \ 26 W \ 3F".

밑줄 CSS1에 잘못된 문자가 있지만 :

CSS1에서

, 선택기 (요소 이름, 클래스와 ID를) 문자 만 AZ, 0-9 및 유니 코드 문자 161-255를 포함 할 수는 , 플러스 대시 (-); 대시 또는 숫자로 시작할 수 없습니다. 이스케이프 된 문자 및 모든 유니 코드 문자를 숫자 코드로 포함 할 수도 있습니다 (다음 항목 참조).