클래스가있는 첫 번째 요소의 CSS 선택기


945

클래스 이름을 가진 많은 요소가 red있지만 class="red"다음 CSS 규칙을 사용하여 첫 번째 요소를 선택할 수없는 것 같습니다 .

.red:first-child {
    border: 5px solid red;
}
<p class="red"></p>
<div class="red"></div>

이 선택기의 문제점은 무엇이며 어떻게 수정합니까?

의견 덕분에 요소가 부모의 첫 번째 자식이어야하며 선택하지 못했습니다. 나는 다음과 같은 구조를 가지고 있으며, 주석에서 언급 한 바와 같이이 규칙은 실패합니다.

.home .red:first-child {
    border: 1px solid red;
}
<div class="home">
    <span>blah</span>
    <p class="red">first</p>
    <p class="red">second</p>
    <p class="red">third</p>
    <p class="red">fourth</p>
</div>

수업으로 첫 자녀를 어떻게 대상으로 할 수 red있습니까?


내 예제 (p, div)에서 다른 유형의 요소로 인해 혼란스러워하는 사람들에게는 동일하게 만드는 것도 작동하지 않으며 문제는 여전히 존재합니다.
— Rajat

4
나는 이것이 첫 번째 선택 자가 작동했던 방식이라고 생각 한다 .
— Felix Eve

28
: 첫 자녀는 그다지 좋은 이름이 아닐 것입니다. 아들이 있고 딸이 있다면 딸을 born 아라고 부르지 않을 것입니다. 마찬가지로 첫 번째 .home> .red는 .home의 첫 번째 하위가 아니므로이를 호출하는 것은 부적절합니다.
— BoltClock

아니, 그것은 : first-of-type의 작동 방식입니다
— Evan Thompson

그 @EvanThompson 방법 :first-of-type 않는 일을.
— TylerH

답변:


1424

이것은 저자들이 어떻게 :first-child작동 하는지 오해하는 가장 잘 알려진 예 중 하나입니다 . CSS2에 도입 의 :first-child의사 클래스를 대표하는 부모의 최초의 아이를 . 그게 다야. 나머지 복합 선택기에서 지정한 조건과 가장 먼저 일치하는 하위 요소를 선택한다는 잘못된 오해가 있습니다. 선택기가 작동하는 방식 ( 설명 은 여기 를 참조 하십시오) 으로 인해 이는 사실이 아닙니다.

선택기 레벨 3은 :first-of-type의사 클래스를 도입하여 요소 유형의 형제 중 첫 번째 요소를 나타냅니다. 이 답변은 그림의 차이로 설명 :first-child하고 :first-of-type. 그러나와 마찬가지로 :first-child다른 조건이나 특성을 보지 않습니다. HTML에서 요소 유형은 태그 이름으로 표시됩니다. 질문에서 해당 유형은 p입니다.

불행히도, :first-of-class주어진 클래스의 첫 번째 자식 요소와 일치하는 유사 의사 클래스 는 없습니다 . Lea Verou 와 내가 이것에 대해 생각해 낸 한 가지 해결 방법은 (전적으로 독립적이지만) 먼저 해당 클래스의 모든 요소에 원하는 스타일을 적용하는 것 입니다.

/* 
 * Select all .red children of .home, including the first one,
 * and give them a border.
 */
.home > .red {
    border: 1px solid red;
}

... 우선 규칙에서 일반 형제 결합 자를 사용하여 첫 번째 클래스 다음에 오는 클래스의 요소 스타일을 "실행 취소"합니다 .~

/* 
 * Select all but the first .red child of .home,
 * and remove the border from the previous rule.
 */
.home > .red ~ .red {
    border: none;
}

이제 첫 번째 요소에만 class="red"테두리가 있습니다.

규칙이 적용되는 방법은 다음과 같습니다.

<div class="home">
  <span>blah</span>         <!-- [1] -->
  <p class="red">first</p>  <!-- [2] -->
  <p class="red">second</p> <!-- [3] -->
  <p class="red">third</p>  <!-- [3] -->
  <p class="red">fourth</p> <!-- [3] -->
</div>
  1. 적용되는 규칙이 없습니다. 테두리가 렌더링되지 않습니다.
    이 요소에는 클래스 red가 없으므로 건너 뜁니다.

  2. 첫 번째 규칙 만 적용됩니다. 빨간색 테두리가 렌더링됩니다.
    이 요소에는 클래스 red가 있지만 그 앞에는 클래스가있는 요소가 없습니다 red. 따라서 두 번째 규칙은 적용되지 않고 첫 번째 규칙 만 적용되며 요소는 경계를 유지합니다.

  3. 두 규칙이 모두 적용됩니다. 테두리가 렌더링되지 않습니다.
    이 요소에는 클래스가 red있습니다. 또한 클래스와 함께 하나 이상의 다른 요소가 앞에옵니다 red. 따라서 두 규칙이 모두 적용되고 두 번째 border선언은 첫 번째 규칙을 무시 하므로 규칙 을 "실행 취소"합니다.

이 선택기 3 년에 도입되었지만 달리 보너스로, 일반 형제 연결자, 꽤 IE7에서 잘 지원 및 최신 버전 인 :first-of-type및 :nth-of-type()단지 이후 IE9에서 지원하는. 좋은 브라우저 지원이 필요하다면 운이 좋을 것입니다.

사실, 형제 콤비는이 기술의 유일한 중요한 구성 요소입니다, 사실 과 , 그와 같은 놀라운 브라우저 지원이 매우 다양한이 기술을 만드는 - 당신은 클래스 선택기 외에 다른 것들에 의해 요소를 필터링을 적용 할 수 있습니다 :

  • :first-of-type클래스 선택기 대신 유형 선택기를 제공하여 IE7 및 IE8 에서이 문제를 해결할 수 있습니다 (다시 말해서 여기에서 잘못된 사용법에 대한 자세한 내용 참조).

    article > p {
        /* Apply styles to article > p:first-of-type, which may or may not be :first-child */
    }
    
    article > p ~ p {
        /* Undo the above styles for every subsequent article > p */
    }
  • 속성 선택기 또는 클래스 대신 다른 간단한 선택기로 필터링 할 수 있습니다 .

  • 의사 요소가 기술적으로 단순한 선택기는 아니지만 이 재정의 기술을 의사 요소 와 결합 할 수도 있습니다 .

이것이 작동하려면 다른 형제 요소에 대한 기본 스타일이 무엇인지 미리 알아야하므로 첫 번째 규칙을 무시할 수 있습니다. 또한 여기에는 CSS의 규칙을 재정의하는 것이 포함되므로 Selectors API 또는 Selenium 의 CSS 로케이터 와 함께 사용하기 위해 단일 선택기로 동일한 작업을 수행 할 수 없습니다 .

Selectors 4 는 :nth-child()표기법에 대한 확장 (원래 완전히 새로운 의사 클래스 :nth-match()) :nth-child(1 of .red)을 도입하여 가상 대신에 무언가를 사용할 수 있음을 언급 할 가치가 있습니다 .red:first-of-class. 비교적 최근의 제안으로 인해 프로덕션 사이트에서 아직 사용할 수있을 정도로 상호 운용 가능한 구현이 충분하지 않습니다. 잘만되면 이것이 곧 바뀔 것이다. 그 동안 제안한 해결 방법은 대부분의 경우 효과적입니다.

이 답변은 질문이 주어진 클래스를 가진 모든 첫 번째 자식 요소를 찾고 있다고 가정합니다. 전체 문서 에서 복잡한 선택기의 n 번째 일치에 대한 의사 클래스 또는 일반 CSS 솔루션이 없습니다 . 솔루션의 존재 여부는 문서 구조에 따라 크게 다릅니다. jQuery를이 제공 :eq(), :first, :last이 목적을 위해 더, 그러나 다시 노트는 것을 그들은 매우 다르게에서 기능 :nth-child()등 . Selectors API를 사용하면 document.querySelector()첫 번째 일치 항목을 얻는 데 사용할 수 있습니다 .

var first = document.querySelector('.home > .red');

또는 document.querySelectorAll()인덱서와 함께 사용 하여 특정 일치 항목을 선택하십시오.

var redElements = document.querySelectorAll('.home > .red');
var first = redElements[0];
var second = redElements[1];
// etc

필립 Daubmeier.red:nth-of-type(1) 가 원래 받아 들인 대답 의 해결책 (원래 Martyn이 작성 했지만 이후 삭제됨)은 예상대로 작동하지 않습니다.

예를 들어, p원래 마크 업 에서만을 선택하려는 경우 :

<p class="red"></p>
<div class="red"></div>

... 추가 사용할 수 없다 .red:first-of-type(등가 .red:nth-of-type(1)각 요소는 (그 유형의 최초로 유일한 하나이므로) p와 div되도록 각각) 모두 선택자와 일치한다.

특정 클래스의 첫 번째 요소가 유형 의 첫 번째 요소 인 경우 의사 클래스도 작동하지만 우연의 일치로만 발생합니다 . 이 동작은 Philip의 답변에서 설명합니다. 이 요소 앞에 동일한 유형의 요소를 넣으면 선택기가 실패합니다. 업데이트 된 마크 업 작성 :

<div class="home">
  <span>blah</span>
  <p class="red">first</p>
  <p class="red">second</p>
  <p class="red">third</p>
  <p class="red">fourth</p>
</div>

규칙을 적용 .red:first-of-type하면 효과가 있지만 p수업이 없으면 다른 규칙 을 추가하면 다음과 같습니다.

<div class="home">
  <span>blah</span>
  <p>dummy</p>
  <p class="red">first</p>
  <p class="red">second</p>
  <p class="red">third</p>
  <p class="red">fourth</p>
</div>

... 첫 번째 .red요소가 이제 두 번째 요소 이므로 선택기가 즉시 실패 p합니다.


15
따라서 에뮬레이션하는 방법이 :last-of-class있습니까? 클래스의 마지막 요소를 선택하십시오.
— 로켓 Hazmat

1
@Rocket : 볼 수 없음 :(
— BoltClock

4
형제와 함께 좋은 기술. p-p ~ p는 세 번째 항목 이상을 선택합니다. jsfiddle.net/zpnnvedm/1
— Legolas

2
@BoltClock 예, 죄송합니다. 해결책을 찾기 위해 여기에 왔으며 OP 관련 사례에 대해서는별로 신경 쓰지 않았습니다. 실제로 특정 유형 의 general sibling selector ~작동 방식을 이해할 수 없으며 :not(:first-of-*)일치하는 각 요소에 규칙을 적용해야한다고 가정하지만 가능한 일치 항목이 3 개 이상인 경우에도 첫 번째 일치 항목에만 적용됩니다.
— Gerard Reches

2
에 따르면 caniuse:nth-child(1 of .foo) 확장하는 것은 이미 사파리 9.1+에 구현되었습니다. (나는 확인하지 않았다)
— Danield

329

:first-child이름을 말한다처럼 선택은 부모 태그의 첫 번째 자식을 선택, 것입니다. 자식은 동일한 부모 태그에 포함되어야합니다. 정확한 예제가 작동합니다 ( 여기서 시도해 보십시오 ).

<body>
    <p class="red">first</p>
    <div class="red">second</div>
</body>

다른 상위 태그에 태그를 중첩했을 수 있습니다. 클래스 태그가 red실제로 부모 아래의 첫 번째 태그입니까?

또한 이것은 전체 문서의 첫 번째 태그에만 적용되는 것이 아니라 새 부모가 감싸 질 때마다 다음과 같이 적용됩니다.

<div>
    <p class="red">first</p>
    <div class="red">second</div>
</div>
<div>
    <p class="red">third</p>
    <div class="red">fourth</div>
</div>

first그리고 third다음 빨간색됩니다.

최신 정보:

나는 순교자가 왜 대답을 삭제했는지 모르겠지만 :nth-of-type선택자는 해결책을 가지고있었습니다 .

.red:nth-of-type(1)
{
    border:5px solid red;
} 
<div class="home">
    <span>blah</span>
    <p class="red">first</p>
    <p class="red">second</p>
    <p class="red">third</p>
    <p class="red">fourth</p>
</div>

Martyn의 크레딧 . 예를 들어, 더 많은 정보를 정기적으로 여기 . 이것은 CSS 3 선택기이므로 모든 브라우저가이를 인식하지는 않습니다 (예 : IE8 이상).


Martyn에 지적한 것처럼 CSS3 선택기는 :nth-of-type현재 버전의 IE에서 전혀 작동하지 않는 약간의 문제를 겪고 있다고 지적했습니다 .
— Már Örlygsson

25
나는 이것을 읽는 것이 약간 혼란스러워했다. .red:nth-of-type(1)(a) 요소 유형의 첫 번째 자식이고 (b) 클래스가 "red"인 요소를 엄격 하게 선택합니다. 따라서이 예에서 첫 번째 <p>에 "red"클래스가 없으면 선택되지 않습니다. 또는 <span>과 첫 번째 <p>에 모두 "red"클래스가 있으면 둘 다 선택됩니다. jsfiddle.net/fvAxn
— David

7
@ Dan Mundy : :first-of-type는에 해당 :nth-of-type(1)하므로 물론 작동합니다. 내 대답에 언급 된 것과 같은 이유로 동일한 방식으로 실패 할 수도 있습니다.
— BoltClock

4
@David :nth-of-type"type"이라고 말하면 "element / tag"를 의미합니다. 따라서 클래스와 같은 요소가 아닌 요소 만 고려합니다.
— gcampbell 2016 년

2
@ gcampbell : 예, 그것이 의미하는 바이며, 이것이이 답변에 결함이있는 이유입니다. "type"이라는 단어가 선택된 이유는 모든 언어에 요소를 정의하는 "태그"개념이있는 것은 아니기 때문에 Selector와 HTML / XML을 연결하지 않기 위해서입니다.
— BoltClock

74

정답은 다음과 같습니다.

.red:first-child, :not(.red) + .red { border:5px solid red }

1 부 : 요소가 부모의 첫 번째 요소이고 클래스가 "빨간색"인 경우 테두리가 표시됩니다.
파트 II : ".red"요소가 부모의 첫 번째 요소는 아니지만 ".red"클래스가없는 요소 바로 다음에 오는 경우, 해당 경계의 명예를받을 자격이 있습니다.

바이올린 또는 일어나지 않았다.

Philip Daubmeier의 답변은 받아 들여졌지만 정확하지 않습니다. 첨부 된 바이올린을 참조하십시오.
BoltClock의 대답은 효과가 있지만 스타일을 불필요하게 정의하고 덮어 씁니다
(특히 다른 테두리를 상속받는 문제-다른 테두리를 선언하지 않으려는 경우 : 없음)

편집 : 당신이 빨간색이 아닌 여러 번 "빨간색"이있는 경우, 각 "첫 번째"빨간색 테두리를 가져옵니다. 이를 방지하려면 BoltClock의 답변을 사용해야합니다. 바이올린 참조


2
이 답변은 잘못이 아니고 셀렉터 가 주어진 마크 업에 대해 정확하지만 편집에 언급 된 상황이 마크 업 구조를 보장 할 수 없을 때 재정의가 필요하다는 이유입니다. .red다음이 :not(.red)항상 .red형제 중 첫 번째가 되는 것은 아닙니다 . 테두리를 상속해야하는 경우 재정의 규칙 border: inherit대신 선언하는 것입니다 border: none.
— BoltClock

3
이 솔루션은 최후의 아이에게도 똑같이 할 수 있기 때문에 최고의 IMO입니다.
— A1rPun

@ A1rPun 마지막 자녀를 위해 이것을 어떻게 변경합니까?
— Willem

@Willem 그냥 변화 first-child에 대한 last-child,하지만 난이 항상하지 않는 트릭을한다는 것을 테스트 후 참조하십시오.
— A1rPun

3
죄송하지만 ".red 클래스가있는 첫 번째 자식 요소"와 일치하지 않고 ".red 요소가 아닌 뒤에 .red 클래스와 첫 번째 .red 요소가있는 경우 첫 번째 요소"와 일치합니다. 이 두 가지는 동일하지 않습니다. 바이올린 : jsfiddle.net/Vq8PB/166
— Gunchars

19

당신은 사용할 수 있습니다 first-of-type또는nth-of-type(1)

.red {
  color: green;  
}

/* .red:nth-of-type(1) */
.red:first-of-type {
  color: red;  
}
<div class="home">
  <span>blah</span>
  <p class="red">first</p>
  <p class="red">second</p>
  <p class="red">third</p>
  <p class="red">fourth</p>
</div>


6
클래스 와의 첫 번째 요소와 <p></p>사이에 요소 가 있으면 작동하지 않습니다 . 이 JSFiddle을보십시오 . spanpred
— Francisco Romero

1
나는 그것이 그의 대답의 마지막 예에서 내가 여기서 지적한 것과 같은 행동을 재현한다는 것을 알았습니다. 내가 당신의 모범을 보았고 조금 "연주"했을 때, 나는 그 행동을 알아 차리고 미래 독자들이 알 수 있도록 지적하고 싶었습니다.
— Francisco Romero

13

위의 답변은 너무 복잡합니다.

.class:first-of-type { }

클래스의 첫 번째 유형을 선택합니다. MDN 소스


4
first-type에 대한 참조를 찾을 수 없으며 first-of-type은 태그 이름에만 적용됩니다. 이 답변이 맞습니까?
— 매트 브로치


7
수업에서는 작동하지 않습니다. 즉, 방법 해야 클래스의 n 번째를 선택하면 태그의 n 번째를 선택보다 더 유용 할 수 있기 때문에, 작동합니다. 그러나 ': first-of-type'은 tagName에 의해서만 작동했습니다. 만약 '클래스 퍼스트 (first-of-class)'와 '태그 퍼스트-태그 (first-of-tag)'가 종종 같은 요소를 참조한다면, 그런 식으로 작동한다고 생각하는 데 혼동하기 쉽습니다. 그리고 그렇지 않은 경우에 무엇이 부서 졌는지 궁금합니다.
— Evan Thompson

2
왜 이것이 정답이 아닌지 잘 모르겠습니다. 이것은 OP가 요구 한 것을 정확하게 수행하고 완벽하게 작동합니다. SMH.
— Bernesto

1
@Bernesto, 당신이 같은 "유형"의 여러 요소를 가지고있는 경우를 말해 보자. <span>그리고 몇몇은 클래스를 가진다 highlight. .highlight:first-of-type선택은 처음이 예에서 선택한 클래스와 "유형"의 첫 번째 인스턴스를 선택합니다 <span>, 및 클래스의하지 첫 번째 인스턴스 highlight. 스팬의 첫 번째 인스턴스에도 클래스 하이라이트가있는 경우에만 스타일이 구현됩니다. ( codepen.io/andrewRmillar/pen/poJKJdJ )
— Sl4rtib4rtf4st

9

선택자와 일치 시키려면 요소의 클래스 이름이 red있어야하며 상위의 첫 번째 자식이어야합니다.

<div>
    <span class="red"> <!-- MATCH -->
</div>

<div>
    <span>Blah</span>
    <p class="red"> <!-- NO MATCH -->
</div>

<div>
    <span>Blah</span>
    <div><p class="red"></div> <!-- MATCH -->
</div>

이것은 정확하며 이것이 내 문제인 것 같지만 다른 요소가 선행하는지 여부에 관계없이 클래스가있는 첫 번째 요소를 선택하는 방법이 있습니까?
— Rajat

당신이 Martyns 응답 보았다했다면이 :) 물어 봐야하지 않았다
— 필립 Daubmeier

9

다른 답변은 무엇이 잘못되었는지 를 다루 므로 다른 절반은 어떻게 고쳐야할까요? 불행히도, 여기에 CSS 전용 솔루션이 있다는 것을 모르겠습니다 . 적어도 내가 생각할 수는 없습니다 . 그래도 다른 옵션이 있습니다 ....

  1. first클래스를 생성 할 때 다음과 같이 요소에 클래스를 지정하십시오 .

    <p class="red first"></p>
    <div class="red"></div>

    CSS :

    .first.red {
      border:5px solid red;
    }

    이 CSS는 클래스 와 클래스 가 모두있는 요소 만 일치합니다 . firstred

  2. 또는 JavaScript에서 동일한 작업을 수행하십시오. 예를 들어 위와 동일한 CSS를 사용하여 jQuery를 사용하는 방법은 다음과 같습니다.

    $(".red:first").addClass("first");

나는 얼마 전 CSS 전용 솔루션 을 생각 해냈다 . 나는 그것을 정식 답변으로 여기에 재현했습니다.
— BoltClock

1
와 같은 것이 없으면 :first-of-class첫 번째 요소에 추가 클래스를 추가하는 것이 좋습니다. 지금 가장 쉬운 해결책 인 것 같습니다.
— Kai Noack

7

나는 내 프로젝트에서 이것을 얻었다.

div > .b ~ .b:not(:first-child) {
	background: none;
}
div > .b {
    background: red;
}
<div>
      <p class="a">The first paragraph.</p>
      <p class="a">The second paragraph.</p>
      <p class="b">The third paragraph.</p>
      <p class="b">The fourth paragraph.</p>
  </div>


5

업데이트 된 문제에 따라

<div class="home">
  <span>blah</span>
  <p class="red">first</p>
  <p class="red">second</p>
  <p class="red">third</p>
  <p class="red">fourth</p>
</div>

어때?

.home span + .red{
      border:1px solid red;
    }

이것은 선택합니다 클래스 가정 , 다음 요소 스팬 그리고 마지막으로 모든 .red 요소 스팬 요소 바로 뒤에 배치됩니다.

참조 : http://www.w3schools.com/cssref/css_selectors.asp


3

nth-of-type (1)을 사용할 수 있지만 사이트가 IE7 등을 지원할 필요가 없는지 확인하십시오.이 경우 jQuery를 사용하여 본문 클래스를 추가 한 다음 IE7 본문 클래스를 통해 요소를 찾은 다음 요소 이름을 추가하십시오. 그것에 n 번째 아이 스타일링에서.


3

코드를 다음과 같이 변경하여 작동시킬 수 있습니다.

<div class="home">
  <span>blah</span>
  <p class="red">first</p>
  <p class="red">second</p>
  <p class="red">third</p>
  <p class="red">fourth</p>
</div>

이것은 당신을 위해 일을

.home span + .red{
      border:3px solid green;
    }

SnoopCode 의 CSS 참조는 다음과 같습니다 .


3

CSS 아래에서 목록 ul li의 배경 이미지를 사용하고 있습니다.

#footer .module:nth-of-type(1)>.menu>li:nth-of-type(1){
  background-position: center;
  background-image: url(http://monagentvoyagessuperprix.j3.voyagesendirect.com/images/stories/images_monagentvoyagessuperprix/layout/icon-home.png);
  background-repeat: no-repeat;
}
<footer id="footer">
  <div class="module">
    <ul class="menu ">
      <li class="level1 item308 active current"></li>
      <li> </li>
    </ul> 
  </div>
  <div class="module">
    <ul class="menu "><li></li>
      <li></li> 
    </ul>
  </div>
  <div class="module">
    <ul class="menu ">
      <li></li>
      <li></li>
    </ul>
  </div>
</footer>


2

이 시도 :

    .class_name > *:first-child {
        border: 1px solid red;
    }

2

어떤 이유로 든 위의 답변 중 어느 것도 부모 의 실제 첫 번째 이자 유일한 첫 번째 자녀 의 경우를 다루지 않는 것 같습니다.

#element_id > .class_name:first-child

이 코드 내에서 첫 번째 클래스 자식에만 스타일을 적용하려는 경우 위의 모든 대답이 실패합니다.

<aside id="element_id">
  Content
  <div class="class_name">First content that need to be styled</div>
  <div class="class_name">
    Second content that don't need to be styled
    <div>
      <div>
        <div class="class_name">deep content - no style</div>
        <div class="class_name">deep content - no style</div>
        <div>
          <div class="class_name">deep content - no style</div>
        </div>
      </div>
    </div>
  </div>
</aside>

1
귀하의 답변은 본질적 으로이 질문에 대한 상위 2 개의 가장 높은 답변에 포함되어 있으며 아무것도 추가하지 않습니다. 또한 :first-child의사 클래스를 사용 .class_name하는 것은 작동 방식을 변경하지 않고 단순히 필터 역할을하기 전에 추가 하기 때문에 오해의 소지 가 있습니다. 이전에 div가 있다면 <div class="class_name">First content that need to be styled</div>실제 첫 번째 자식이 아니기 때문에 선택기가 일치하지 않습니다.
— j08691

나는 정보를 필요로하는 누군가를 위해 그렇게 직설적이라고 생각하지 않습니다. 그리고 당신은 사건에 대해 옳습니다. 보다 구체적인 사례를 제공합니다. 이것이 내가 유용하다고 생각한 이유입니다.
— Yavor Ivanov

이것이 바로 내가 필요로하는 정확하고 간결한 것입니다. 감사합니다 @ YavorIvanov
— quantme

1

이 간단하고 효과적인 시도

 .home > span + .red{
      border:1px solid red;
    }

-1

나는 +바로 뒤에 배치 된 요소를 선택하기 위해 상대 선택기 를 사용 하면 여기에서 가장 잘 작동 한다고 믿습니다 (이전에는 제안 된 것이 거의 없습니다).

이 경우에도이 선택기를 사용할 수 있습니다

.home p:first-of-type

그러나 이것은 클래스 선택기가 아닌 요소 선택기입니다.

다음은 CSS 선택기 목록입니다. https://kolosek.com/css-selectors/


-2

이 솔루션을 사용해보십시오 :

 .home p:first-of-type {
  border:5px solid red;
  width:100%;
  display:block;
}
<div class="home">
  <span>blah</span>
  <p class="red">first</p>
  <p class="red">second</p>
  <p class="red">third</p>
  <p class="red">fourth</p>
</div>

코드 펜 링크


질문은 " 첫 번째 요소에 대한 CSS 셀렉터 클래스 "가 아닌 " 첫 번째 요소에 대한 CSS 선택기 태그 이름 ".
— GeroldBroser 모니카 복직
당사 사이트를 사용함과 동시에 당사의 쿠키 정책과 개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.