문제

이 질문은 이미 여기에 답이 있습니다.

JSF는 입력 필드의 ID를 search_form:expression. 그 요소에 약간의 스타일링을 지정해야하지만 결장은 브라우저에 대한 의사 요소의 시작과 같아서 무효로 표시되고 무시됩니다. 어쨌든 결장이나 무언가를 피할 수 있습니까?

input#search_form:expression {
  ///...
}
도움이 되었습니까?

해결책

백 슬래시 :

input#search_form\:expression {  ///...}

다른 팁

결장 전에 백 슬래시를 사용하는 것은 많은 버전의 IE (특히 6 및 7; 아마도 다른 버전)에서 작동하지 않습니다.

해결 방법은 콜론에 16 진 코드를 사용하는 것입니다.

예시:

input#search_form\3A expression {  }

이것은 모든 브라우저에서 작동합니다 : IE6+ (및 아마도 이전?), 파이어 폭스, 크롬, 오페라 등을 포함하여 CSS2 표준.

이 기사 CSS의 캐릭터를 피하는 방법을 알려줍니다.

이제 도구도 있습니다. http://mothereff.in/css-escapes#0search%5fform%3aexpression

TL; Dr이 질문에 대한 다른 모든 답변은 잘못되었습니다. 밑줄 (IE6이 일부 가장자리 케이스에서는 규칙을 무시하지 않도록)과 선택기가 다른 브라우저에서 올바르게 작동하는 콜론 문자를 모두 피해야합니다.

기술적으로 콜론 특성은 다음과 같이 탈출 할 수 있습니다 \:, 그러나 그것은 IE <8에서는 작동하지 않으므로 사용해야합니다. \3a:

#search\_form\3a expression {}

백 슬래시로 탈출 할 수 있습니다

input#search_form\:expression {
  ///...
}

로부터 CSS 사양

4.1.3 문자 및 케이스

다음 규칙은 항상 다음과 같습니다.

모든 CSS 스타일 시트는 CSS 제어가없는 부품을 제외하고는 대소 문자를 사용하지 않습니다. 예를 들어, HTML 속성 "ID"및 "class", 글꼴 이름 및 URI의 값의 사례 감지는이 사양의 범위를 벗어납니다. 특히 요소 이름은 HTML에서는 대소 문자를 사용하지만 XML에서는 대소 문자를 사용합니다. CSS에서 식별자 (선택기의 요소 이름, 클래스 및 ID 포함)는 문자 [A-Z0-9] 및 ISO 10646 문자 U+00A1 이상, 하이픈 (-) 및 밑줄 (_) 만 포함 할 수 있습니다. ; 숫자 또는 하이픈과 숫자로 시작할 수 없습니다. 식별자는 탈출 된 문자와 모든 ISO 10646 문자를 숫자 코드로 포함 할 수도 있습니다 (다음 항목 참조). 예를 들어, 식별자 "B & W?" "b & w ?"로 작성 될 수 있습니다. 또는 "b 26 w 3f". 유니 코드는 ISO 10646과 동일합니다 ([유니 코드] 및 [ISO10646] 참조).

CSS 2.1에서 백 슬래시 () 문자는 세 가지 유형의 문자 탈출을 나타냅니다. 먼저, 문자열 내부에서는 등 슬래시 뒤에 새로운 라인이 무시됩니다 (즉, 문자열은 백 슬래시 또는 뉴 라인을 포함하지 않는 것으로 간주됩니다).

둘째, 특별한 CSS 문자의 의미를 취소합니다. 모든 캐릭터 (16 진수 숫자 제외)는 특별한 의미를 제거하기 위해 백 슬래시로 탈출 할 수 있습니다. 예를 들어, "" "는 하나의 이중 견적으로 구성된 문자열입니다. 스타일 시트 전처리기는 스타일 시트의 의미를 바꾸기 때문에 스타일 시트에서 이러한 백 슬래시를 제거해서는 안됩니다.

셋째, 백 슬래시 탈출을 통해 저자는 문서에 쉽게 넣을 수없는 문자를 참조 할 수 있습니다. 이 경우, 백 슬래시는 최대 6 개의 16 진수 숫자 (0..9A..F)가 이어지며,이 숫자는 ISO 10646 ([ISO10646]) 문자를 나타냅니다. (CSS 2.1에서 정의되지 않았습니다. 스타일 시트에 유니 코드 코드 포인트 0이있는 문자가 포함되어 있으면 어떻게되는지.) 분명한. 그렇게하는 두 가지 방법이 있습니다.

공간 (또는 다른 공백 문자) : " 26 b"( "& b"). 이 경우 사용자 에이전트는 "CR/LF"쌍 (U+000D/U+000A)을 단일 흰색 스페이스 문자로 취급해야합니다. 정확히 6 개의 16 진수 숫자를 제공함으로써 : " 000026b"( "& b") 실제로이 두 가지 방법이 결합 될 수 있습니다. 16 진수 탈출 후 하나의 공백 문자 만 무시됩니다. 이는 탈출 시퀀스 후 "실제"공간이 자체적으로 빠져 나거나 두 배가되어야 함을 의미합니다.

숫자가 유니 코드가 허용하는 범위를 벗어난 경우 (예 : " 110000"은 전류 유니 코드에서 허용되는 최대 10ffff 이상인 경우 UA는 탈출을 "교체 특성"(U+FFFD)으로 대체 할 수 있습니다. 캐릭터가 표시되면 UA는 "누락 된 문자"Glyph (참조, 15.2, 포인트 5)와 같은 가시 기호를 표시해야합니다.

참고 : 허용되는 Backslash Escapes는 항상 식별자 또는 문자열의 일부로 간주됩니다 (예 : " 7b"는 "{"is, " 32"가 A의 시작시 허용 되더라도 구두점이 아닙니다. "2"는 그렇지 않더라도 클래스 이름). 식별자 "te st"는 "테스트"와 정확히 동일한 식별자입니다.

나는 콜론과 같은 문제가 있었고, 그것들을 변경할 수 없었고 (코드 출력 콜론에 액세스 할 수 없었고) jQuery를 가진 CSS3 선택기와 함께 가져오고 싶었습니다.

나는 그것을 여기에 넣고 누군가에게 도움이 될 수 있기 때문입니다.

input[id="something:something"] jQuery Selectors에서 잘 작동했으며 스타일 시트에서도 작동 할 수 있습니다 (브라우저 문제가있을 수 있음).

JSF 2,0에서는 web.xml 파일을 javax.faces.separator_char의 init-param으로 사용하여 분리기를 지정할 수 있습니다.

이것을 읽으십시오 :

나는 ADF 프레임 워크에서 일하며 종종 요소를 선택하기 위해 jQuery를 사용해야합니다. 이 형식은 저에게 작동합니다. 이것은 IE8에서도 작동합니다.

$('[id*="gantt1::majorAxis"]').css('border-top', 'solid 1px ' + mediumGray);

이 형식만이 IE7 (Firefox)에서 나에게 효과가 있었고 JSF/Icefaces 1.8.2를 사용했습니다.

Say form id=FFF, element id=EEE

var jq=jQuery.noConflict();
jq(document).ready(function() {
jq("[id=FFF:EEE]").someJQueryLibFunction({ jQuery lib function options go here })
});

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top