2012-01-21 7 views
6

가상 선택기 (:after)를 특성 선택기 ([title])와 결합하려면 어떻게해야합니까?CSS 속성과 의사 요소 선택자를 결합 하시겠습니까?

div[title]:after을 사용해 보았지만 Chrome에서는 작동하지 않습니다.

HTML :

<div title="foo">This div has a title.</div> 
<div>This div does not have a title.</div> 

CSS :

div:after { 
    content: "NO"; 
} 
div[title]:after { 
    content: "YES"; 
} 

데모 : http://jsfiddle.net/jmAX6/

그것은 나 "YES"그 DIV의의 각각의 끝에서 보여줍니다, 그것은 NO "표시해야합니다 "두 번째 div 이후.

Chrome 17.0.963.38을 실행 중입니다. 그것은 사파리 5.1.2에서 잘 작동하는 것 같습니다.

답변

9

이것은 마치 reported 인 버그처럼 보입니다. 스타일 시트에 div[title]에 대한 CSS 규칙을 하나 이상의 선언이있는에 추가하면 div[title]:after 규칙이 마술처럼 적용됩니다. 예 :

div:after { 
    content: "NO"; 
} 
div[title] { 
    display: block; 
} 
div[title]:after { 
    content: "YES"; 
} 

the updated fiddle을 참조하십시오.

또한 아래의 설명과 같이 두 번째 div에 특정 HTML 속성이 있거나없는 것과 관련이있는 것으로 보입니다.

+1

예, 버그가있는 것 같습니다. http://jsfiddle.net/jmAX6/6/ 제목이없는 div에 클래스를 추가하면 마술처럼 작동합니다. –

+1

@Madmartigan : 다른 관련 버그도 있습니다. 지금 보고서를 작성하는 것은 잡무처럼 보입니다. 기억한다면 나중에 할거야. – BoltClock

+2

그것은 또한 사용 된 속성에 의존하는 것처럼 보입니다. 따라서 이것은 분명히 버그가되어야합니다 : http://jsfiddle.net/jmAX6/7/ 또한 tabindex를 사용하여 tabindex를 탭합니다. 요소 자체를 수정합니다. –

관련 문제