2013-02-04 1 views
1

이 선택은 내가 예상처럼 작동하지 않습니다 :이 선택기가 주어진 태그에 적용되지 않는 이유는 무엇입니까?

<style type="text/css"> 
    .someClass p, b { 
     color:red; 
     cursor : pointer; 
    } 
</style> 
<p>This is a test</p> 
<p>This is another <b>test</b></p> 
<p class="someClass">This is a test with someClass</p> 
<p>This is another <b class="someClass">test</b></p> 

결과 및 jsFiddle :이 아닌 스타일 단락과 스타일에 텍스트는 검은 색 표시합니다. "someClass"클래스의 p 텍스트는 빨간색 텍스트로 나타나지 않지만 "someClass"클래스의 b은 빨간색으로 표시됩니다.

문제 : b 클래스 = "someClass"(제 4 항) 빨간색으로 표시되는 동안 가 왜 p 클래스 = "someClass"(세 번째 단락)이 빨간색으로 표시되지 않습니다?

두 태그 모두 someClass 선택기에 포함됩니다. 내가 검색에 대한 답을 찾는 많은 행운이 없었습니다, 그리고 documentation, 당신은 당신의 스타일은 단락과 클래스 someClassb 요소에 적용 할 경우이 정확한 시나리오를

답변

5

를 해결하기 위해 표시 사용하지 않는

p.someClass, b.someClass { 
    color: red; 
    cursor: pointer; 
} 

기존 선택기는 CLA를 갖는 소자 내부에

  • 임의 b 소자
  • 단락 타겟팅 ss someClass.

이 코드 :

.someClass p, b { something } 

편집이 인정
.someClass p { something } 
b { something } 
+0

과 동일합니다. 문제가 남아 있습니다 - 왜 세 번째 단락이 빨간색으로 나타나지 않습니까? 예를 들어 바이올린을보십시오. –

+1

세 번째 단락은 someClass 클래스가있는 다른 요소에 없기 때문입니다. –

+0

오른쪽 - 논리가 완벽합니다. 이 경우 네 번째 단락의 굵은 텍스트가 빨간색으로 나타나는 이유는 무엇입니까? 클래스 someClass를 가진 다른 요소 안에 있지 않습니다. 세 번째 단락처럼. 그러나 네 번째 단락의 굵은 글자는 빨간색입니다. –

관련 문제