2011-12-30 4 views
3

현재 선택한 텍스트의 기본 배경색을 변경하고 있습니다. 이 잘 작동 ::: moz 선택 가능 버그

::selection, ::-moz-selection { 
background:#B6D0FA; 
} 

을하지만 파이어 폭스에서 작동하지 않습니다 :

::selection { 
background:#B6D0FA; 
} 

::-moz-selection { 
background:#B6D0FA; 
} 

은 내가 같이 병합하여 일부 라인을 절약 할 수 있다고 생각.

무엇이 잘못 되었나요?

+0

FF 5.0.1 – ajax333221

답변

2

Firefox는 ::selection을 구문 분석 할 수 없으므로, 먼저 ::-moz-selection이 필요합니다. ::selection이 발생하면 전체 블록이 무시됩니다. the spec 따르면

: 사용자 에이전트 선택기를 파싱 할 수 없을 때 (즉, 그것이 유효하지 CSS 2.1)

, 그것을 선택기 다음 선언 블록 (있는 경우)과 무시해야 .

파이어 폭스에서 올바르게 렌더링하려면 줄을 별도로 유지해야합니다.

::selectionremoved from the CSS3 draft entirely입니다.

+0

가능한 모든 조합을 쉼표로 구분하여 병합 할 수 있어야하고 전체 코드에 대한 두려움이 없기 때문에'background : # B6D0FA; '를 주어야합니다. 하나의 CSS 규칙을 해석하십시오 – ajax333221

+0

@ ajax333221 당신이 원했던만큼 좋은 아이디어는 아닙니다. CSS가 유효하지 않은 경우 사용자 에이전트가 파싱을 중지해야하는 모든 이유가 있습니다. 특정 오프 초안 구현에 대한 해결 방법을 만드는 것은 오히려 해킹 될 수 있으며 표준에 대한 전체적인 생각을 반대 할 수 있습니다. –

+1

@ ajax333221 : 지원되지 않는 CSS 선택기를 사용하지 않았다면, 처음에는 코드가 작동하지 않을까 두려워하지 않아도됩니다. – animuson

관련 문제