다음 요소의 CSS에서 선택기의 구문은 무엇입니까?


200

헤더 태그가 있다면 <h1 class="hc-reform">title</h1>

h1.hc-reform{
    float:left;
    font-size:30px;
    color:#0e73bb;
    font-weight:bold;
    margin:10px 0px;
}

그 후 나는 단락이 <p>stuff here</p>있습니다.

CSS를 사용하여 <p>다음에 오는 모든 태그가 h1.hc-reform사용하도록하려면 어떻게해야합니까?clear:both;

그럴 것입니다 :

h1.hc-reform > p{
     clear:both;
}

어떤 이유로 작동하지 않습니다.

답변:


397

이것은 인접한 형제 선택기 라고 하며 더하기 기호로 표시됩니다 ...

h1.hc-reform + p {
  clear:both;
}

참고 : 이것은 IE6 이전 버전에서는 지원되지 않습니다.


4
그것은 p바로 뒤에 오는 것을 선택합니다 h1.hc-reform. 그런 다음 다시 부동 소수점을 clear: both지우기 때문에 작동하기 위해 적용 해야하는 유일한 것일 수 h1있으므로 여전히 유효한 대답입니다.
BoltClock

@BoltClock 예 당신은 맞습니다, 나는 사양을 잘못 읽었으며 그 의견이 잘못되었으므로 삭제했습니다. 이 선택기 p는 바로 앞에 h1.hc-reform오는 것과 일치합니다 (물론 동일한 부모 요소 포함).
Josh Stodola

4
와우는 인접한 형제 선택기에 대해 몰랐습니다. 감사합니다!
이론

1
이 경우 더 나은 선택기입니다. 작동하는 JSfiddle jsfiddle.net/dZAtt
ProblemsOfSumit

첫 번째 요소에 자식이 있으면 작동하지 않습니다.
72GM

60

형제 선택기를 사용할 수 있습니다 ~.

h1.hc-reform ~ p{
     clear:both;
}

첫 번째 p요소 .hc-reform뿐만 아니라 이후 에 오는 모든 요소를 선택합니다 .


첫 번째 링크의 IE 버그는 모호한 경우에 quirksmode가 간과하는 이유 일 것입니다.
도끼.

14

>자식 선택기는 없습니다 .

당신이 원하는 것은 +

그래서 시도하십시오 h1.hc-reform + p

브라우저 지원이 좋지 않습니다


2020 : 브라우저 지원은 10 년 후에 훌륭합니다. CSS 초보자를위한 정보입니다.
AlexioVay


2

정확히. h1.hc-reform > p수단 "모든 p정확히 하나 개의 레벨 아래에 h1.hc-reform".

당신이 원하는 것은 h1.hc-reform + p입니다. 물론 이전 버전의 Internet Explorer에서는 일부 문제가 발생할 수 있습니다. 페이지를 이전 IE와 호환되게하려면 클래스를 수동으로 단락에 추가하거나 일부 JavaScript를 사용해야합니다 (예를 들어 jQuery에서와 같은 작업을 수행 할 수 있음 $('h1.hc-reform').next('p').addClass('first-paragraph')).

추가 정보 : http://www.w3.org/TR/CSS2/selector.html 또는 http://css-tricks.com/child-and-sibling-selectors/

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.