클래스가있는 첫 번째 요소의 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)각 요소는 (그 유형의 최초로 유일한 하나이므로) pdiv되도록 각각) 모두 선택자와 일치한다.

특정 클래스의 첫 번째 요소가 유형 의 첫 번째 요소 인 경우 의사 클래스도 작동하지만 우연의 일치로만 발생합니다 . 이 동작은 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.