Sınıflı ilk eleman için CSS seçici


945

Sınıf adı olan bir grup öğe var red, ancak class="red"aşağıdaki CSS kuralını kullanarak ilk öğeyi seçmek gibi görünmüyor :

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

Bu seçicide yanlış olan nedir ve nasıl düzeltebilirim?

Yorumlar sayesinde, elemanın seçilmesi gereken ebeveynin ilk çocuğu olması gerektiğini anladım, ki durum böyle değil. Aşağıdaki yapı var ve bu kural yorumlarda belirtildiği gibi başarısız:

.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>

Sınıflı ilk çocuğu nasıl hedefleyebilirim red?


örneğimdeki (p, div) farklı türdeki elemanlar nedeniyle karışanlar için bunları aynı hale getirmek de işe yaramıyor ve sorun hala var.
Rajat

4
Bence şu şekilde: ilk çocuk seçici çalışıyor olmalıydı ...
Felix Eve

28
: ilk çocuk o zaman çok iyi bir isim olmazdı. Eğer bir oğlunuz ve sonra bir kızınız olsaydı, kızınıza ilk doğanınız demezdiniz. Benzer şekilde, ilk .home> .red, .home'in ilk çocuğu değildir, bu nedenle böyle adlandırmak uygun olmaz.
BoltClock

Hayır, işte böyle olmalı: türünün ilk
Evan Thompson

@EvanThompson İşte :first-of-type böyle çalışır.
TylerH

Yanıtlar:


1424

Bu, yazarların nasıl :first-childçalıştığını yanlış anlayan en bilinen örneklerden biridir . CSS2'de sunulan :first-childsözde sınıf , ebeveyninin ilk çocuğunu temsil eder . Bu kadar. Bileşik seçicinin geri kalanı tarafından belirtilen koşullara uyan ilk alt öğe hangisi olursa olsun, çok yaygın bir yanlış anlama vardır. Seçicilerin çalışma şekli nedeniyle ( açıklama için buraya bakın ), bu doğru değil.

3. seviye:first-of-type seçiciler, öğe türünün kardeşleri arasındaki ilk öğeyi temsil eden sözde bir sınıf sunar . Bu cevap , resimlerle :first-childve arasındaki farkı açıklar :first-of-type. Bununla birlikte, olduğu gibi :first-child, başka koşullara veya niteliklere bakmaz. HTML'de, öğe türü etiket adıyla temsil edilir. Soruda, bu tür p.

Ne yazık ki, :first-of-classbelirli bir sınıfın ilk alt öğesini eşleştirmek için benzer bir sözde sınıf yoktur . Lea Verou ve ben bunun için (tamamen bağımsız da olsa) ortaya çıkardığımız bir çözüm, ilk önce istediğiniz stilleri bu sınıftaki tüm öğelerinize uygulamaktır :

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

... sonra , genel kardeş birleştiriciyi geçersiz kılma kuralını kullanarak , birinci sınıftan sonra gelen sınıftaki öğelerin stillerini "geri alın" :~

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

Şimdi sadece ilk öğenin class="red"kenarlığı olacaktır.

Kuralların nasıl uygulandığına dair bir örnek:

<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. Hiçbir kural uygulanmaz; kenarlık oluşturulmaz.
    Bu öğenin sınıfı yoktur red, bu nedenle atlanır.

  2. Yalnızca ilk kural uygulanır; kırmızı kenarlık oluşturulur.
    Bu öğe sınıfa sahiptir red, ancak redüst öğesinde sınıf bulunan herhangi bir öğe yoktur . Böylece ikinci kural uygulanmaz, yalnızca ilk kural uygulanır ve öğe sınırını korur.

  3. Her iki kural da uygulanır; kenarlık oluşturulmaz.
    Bu öğenin sınıfı vardır red. Ayrıca, sınıfla birlikte en az bir başka öğe daha gelir red. Böylece her iki kural da uygulanır ve ikinci borderdeklarasyon ilki geçersiz kılar, böylece tabiri caizse "geri alır".

Bonus olarak, Seçiciler 3'te kullanılmasına rağmen, genel kardeş birleştirici aslında aksine IE7 ve daha yeni tarafından desteklenmektedir ve aksine IE9 :first-of-typeve üstü :nth-of-type()tarafından desteklenmektedir. İyi bir tarayıcı desteğine ihtiyacınız varsa, şanslısınız demektir.

Aslında, kardeş birleştiricinin bu teknikteki tek önemli bileşen olması ve inanılmaz bir tarayıcı desteğine sahip olması, bu tekniği çok yönlü hale getirir - sınıf seçicilerinin yanı sıra öğeleri başka şeylere göre filtrelemek için uyarlayabilirsiniz:

  • Bunu, :first-of-typesınıf seçici yerine bir tür seçici sağlayarak IE7 ve IE8'de çalışmak için kullanabilirsiniz (yine, daha sonraki bir bölümde yanlış kullanımıyla ilgili daha fazla bilgi):

    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 */
    }
    
  • Nitelik seçicilerine veya sınıflar yerine diğer basit seçicilere göre filtreleyebilirsiniz .

  • Bu geçersiz kılma tekniğini, sözde öğeler teknik olarak basit seçiciler olmasa da sözde öğelerle birleştirebilirsiniz .

Bunun çalışması için, diğer kardeş öğeleriniz için varsayılan stillerin ne olacağını önceden bilmeniz gerektiğini unutmayın, böylece ilk kuralı geçersiz kılabilirsiniz. Ayrıca, bu CSS'deki kuralların geçersiz kılınmasını içerdiğinden, Selectors API veya Selenium'un CSS konum belirleyicileri ile kullanmak için tek bir seçiciyle aynı şeyi başaramazsınız .

Seçiciler 4 , :nth-child()gösterime bir uzantı ekledi (başlangıçta tamamen yeni bir sözde sınıf :nth-match()), bu da :nth-child(1 of .red)varsayım yerine bir şey kullanmanıza izin verecektir .red:first-of-class. Nispeten yeni bir teklif olarak, henüz üretim tesislerinde kullanılabilmesi için yeterli birlikte çalışabilir uygulama bulunmamaktadır. Umarım bu yakında değişecektir. Bu arada, önerdiğim geçici çözüm çoğu durumda çalışmalıdır.

Bu yanıtın, sorunun belirli bir sınıfa sahip her ilk alt öğeyi aradığını varsaydığını unutmayın. Tüm belgede karmaşık bir seçicinin n. Eşleşmesi için ne sahte bir sınıf, ne de genel bir CSS çözümü yoktur - bir çözümün olup olmadığı büyük ölçüde belge yapısına bağlıdır. jQuery içerir :eq(), :first, :lastve bu amaç için daha ama yine not bu çok farklı bir şekilde işlev :nth-child()ve diğ . Seçiciler API'sını kullanarak document.querySelector()ilk eşleşmeyi elde etmek için kullanabilirsiniz :

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

Veya document.querySelectorAll()belirli bir eşleşmeyi seçmek için bir dizinleyici ile kullanın :

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

Her ne kadar Philip Daubmeier'in.red:nth-of-type(1) orijinal kabul edilen cevabındaki çözüm (başlangıçta Martyn tarafından yazılmıştır ancak o zamandan beri silinmiştir), ancak beklediğiniz gibi davranmaz.

Örneğin, yalnızca porijinal işaretlemenizdeki simgesini seçmek istiyorsanız :

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

... o zaman .red:first-of-type(buna eşdeğer .red:nth-of-type(1)) kullanamazsınız , çünkü her öğe kendi türündeki ( pve divsırasıyla) ilk (ve yalnızca) bir öğedir , bu nedenle her ikisi de seçici tarafından eşleştirilir.

Belirli bir sınıfın ilk öğesi de türünün ilk öğesi olduğunda, sözde sınıf çalışır, ancak bu sadece tesadüfle olur . Bu davranış Philip'in cevabında gösterilmiştir. Bu öğeden önce aynı türden bir öğeye yapıştığınız anda seçici başarısız olur. Güncellenmiş işaretlemeyi alma:

<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>

İle bir kural uygulamak .red:first-of-typeişe yarayacaktır, ancak psınıf olmadan başka bir kural eklediğinizde :

<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>

... seçici hemen başarısız olur, çünkü ilk .redeleman şimdi ikinci p elementtir.


15
Öyleyse, taklit etmenin bir yolu var :last-of-classmı? Bir sınıfın son öğesini seçin.
Roket Hazmat

1
@Rocket: Görebildiğim gibi değil :(
BoltClock

4
Kardeş ile güzel bir teknik. Bunun birden fazla kardeş birleştirici ile de çalıştığını belirtmek gerekir, örneğin p ~ p ~ p üçüncü öğeyi ve ötesini seçecektir
Legolas

2
@BoltClock Evet, özür dilerim, buraya bir çözüm bulmak için geldim ve OP'ye özel durumla pek ilgilenmedim. Aslında neden belirli bir tür için general sibling selector ~çalıştığını anlayamıyorum :not(:first-of-*), her eşleşen öğeye kuralı uygulaması gerektiğini varsayıyorum, ancak 3 veya daha fazla olası eşleşme olsa bile sadece ilk maç için uygulanır.
Gerard Reches

2
Göre caniuse:nth-child(1 of .foo) uzantısı zaten Safari 9.1+ üzerinde uygulanmıştır. (Yine de kontrol
etmedim

329

:first-childAdından da anlaşılacağı gibi seçici bir üst etiketin ilk çocuğu seçmek için, amaçlanmıştır. Çocukların aynı üst etikete yerleştirilmesi gerekir. Tam örneğiniz işe yarayacak (Sadece burada denedim ):

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

Belki etiketlerinizi farklı üst etiketlere yerleştirdiniz? Sınıf etiketleriniz redgerçekten ebeveynin altındaki ilk etiketler mi?

Bunun, belgenin tamamındaki yalnızca bu tür ilk etiket için geçerli olmadığını, ancak her yeni bir ebeveynin her etrafına sarıldığı gibi olduğuna dikkat edin:

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

firstve thirdo zaman kırmızı olacak.

Güncelleme:

Neden martyn'in cevabını sildiğini bilmiyorum, ama çözümü vardı, :nth-of-typeseçici:

.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>

İçin Kredi Martyn . Örneğin burada daha fazla bilgi . Bunun bir CSS 3 seçici olduğunu unutmayın, bu nedenle tüm tarayıcılar bunu tanımayacaktır (örn. IE8 veya daha eski).


Benim hatam olabilir - Martyn'e, CSS3 seçicisinin IE'nin :nth-of-typemevcut herhangi bir sürümünde hiç çalışmama gibi küçük bir sorun yaşadığına işaret ettiğim gibi .
Már Örlygsson

25
Bunu okurken biraz kafam karıştı. Kesinlikle .red:nth-of-type(1)(a) öğesi türünün ilk alt öğesi olan ve (b) "kırmızı" sınıfına sahip olan herhangi bir öğeyi seçecektir. Dolayısıyla, örnekte ilk <p> "kırmızı" sınıfına sahip olmasaydı, seçilmezdi. Alternatif olarak, <span> ve ilk <p> her ikisinin de "kırmızı" sınıfına sahip olsaydı, ikisi de seçilirdi. jsfiddle.net/fvAxn
David

7
@Dan Mundy: :first-of-typeeşdeğerdir :nth-of-type(1)da öyle tabii çalıştığını,. Benim cevabımda belirtilen aynı sebeple de aynı şekilde başarısız olabilir.
BoltClock

4
@David Eminim :nth-of-type"tip" derken "element / tag" anlamına gelir. Bu yüzden sadece elementi dikkate alır, sınıflar gibi şeyleri değil.
gcampbell

2
@gcampbell: Evet, tam olarak anlamı bu ve bu yüzden bu cevap kusurlu. "Tür" sözcüğünün seçilmesinin nedeni, Seçicilerin HTML / XML ile eşleştirilmemesidir, çünkü tüm diller öğeleri tanımlayan bir "etiketler" kavramına sahip değildir.
BoltClock

74

Doğru cevap:

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

Bölüm I: Eleman ebeveyni için ilkse ve "kırmızı" sınıfına sahipse, sınır alır.
Bölüm II: Eğer ".red" öğesi ilk önce ana öğeye ait değilse, ancak ".red" sınıfı olmayan bir öğeyi hemen takip ediyorsa, söz konusu sınırın şerefini de hak eder.

Keman ya da olmadı.

Philip Daubmeier'in cevabı kabul edilirken doğru değil - bakınız ekli keman.
BoltClock'un cevabı işe yarayacaktı, ancak stilleri gereksiz yere tanımlıyor ve üzerine yazıyor
(özellikle başka bir kenarlığı miras alacağı bir sorun - başka bir sınırı bildirmek istemiyorsunuz: yok)

DÜZENLEME: Kırmızı olmayan birkaç kez "kırmızı" olması durumunda, her "ilk" kırmızı kenarlık alır. Bunu önlemek için BoltClock'un cevabı kullanılmalıdır. Bkz kemanı


2
Bu cevap seçici, yanlış değil ise verilen biçimlendirme için doğru ama düzenleme sözü durum Devletin geçersiz kılma gerekli olduğunu en azından size biçimlendirme yapısı garanti edemez nedeni olduğunu yinelemek gerekir - sadece çünkü .reda ve kardeşleri arasında :not(.red)her zaman birinci olmaz .red. Ve sınırın miras alınması gerekiyorsa, bu sadece geçersiz kılma kuralı border: inherityerine bir beyan meselesidir border: none.
BoltClock

3
Bu çözüm en iyi IMO'dur, çünkü aynı şeyi son çocuk için kolayca yapabilirsiniz.
A1rPun

@ A1rPun Son çocuk için bunu nasıl değiştirirsiniz?
Willem

@Willem Sadece değişiklik first-childiçin last-child, ama bu her zaman değil hile yaptığı test edildikten sonra bakınız.
A1rPun

3
Özür dilerim, ancak "class .red olan ilk alt öğe ile eşleşmez, bunun yerine" .red öğesinden sonra class .red ve first .red öğesi varsa "first element ile eşleşir. Bu ikisi eşdeğer değildir. Keman: jsfiddle.net/Vq8PB/166
Gunchars

19

kullanabilirsin first-of-typeveyanth-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
Sınıf ile ilk öğeniz <p></p>arasında bir spanöğeniz varsa çalışmaz . Şu JSFiddle'a bakın . pred
Francisco Romero

1
Şimdi cevabının son örneğinde, burada işaret ettiğim davranışla yeniden üretildiğini gördüm. Örneğinizi denediğimde ve biraz "oynadığım" zaman, bu davranışı fark ettim ve gelecekteki okuyucuların farkında olması için işaret etmek istedim.
Francisco Romero

13

Yukarıdaki cevaplar çok karmaşık.

.class:first-of-type { }

Bu, sınıfın ilk türünü seçecektir. MDN Kaynağı


4
İlk tür için herhangi bir başvuru bulamıyorum ve türün ilk örneği yalnızca etiket adı için geçerlidir; bu cevabın doğru olduğundan emin misin?
Matt Broatch

1
first-type first-of-type
Gabriel Fair

7
Sınıflarla çalışmaz. Yani nasıl olmalıdır bir sınıf N. seçerek bir etiket N. seçiminden daha faydalı olacaktır, çünkü çalışır. Ama ': türün ilk' sadece tagName tarafından çalıştı. Eğer 'sınıfın ilk' ve 'etiketin ilk' öğelerinin sıklıkla yaptıkları aynı öğeyi ifade etmeleri durumunda, kendinizi bu şekilde çalıştığını düşünmekle karıştırmak kolaydır; ve sonra içinde olmadıkları bir davaya geldiğinizde neyin kırıldığını merak ediyorsunuz.
Evan Thompson

2
Bunun neden seçilen cevap olmadığından emin değilim. Bu OP'nin tam olarak istediği şeyi yapar ve mükemmel çalışır. SMH.
Bernesto

1
@Bernesto, aynı "tipte" birden fazla öğeye sahip olduğunuz bir vakanız olduğunda, diyelim ki <span>birkaçı sınıfa sahip highlight. .highlight:first-of-typeSelektör ilk bu örnekte seçilen sınıfla "tip", ilk örneğini seçecek <span>ve sınıfın değil ilk örneği highlight. Yalnızca ilk yayılma örneğinin sınıf vurgulaması da varsa stil uygulanacaktır. ( codepen.io/andrewRmillar/pen/poJKJdJ )
Sl4rtib4rtf4st

9

Seçicinizle eşleşmek için, öğenin sınıf adı redolmalı ve üst öğesinin ilk alt öğesi olmalıdır .

<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>

bu doğru ve bu benim sorunum gibi görünüyor, ancak diğer öğeler tarafından önceden olup olmadığına bakılmaksızın bir sınıfla ilk öğeyi seçmenin bir yolu var mı?
Rajat

Eğer Martyns cevabına bakarsanız bunu sormak zorunda
kalmadınız

9

Diğer cevaplar neyin yanlış olduğunu kapsadığından , diğer yarısını deneyeceğim, nasıl düzeltileceğini. Ne yazık ki, burada sadece bir CSS çözümünüz olduğunu bilmiyorum , en azından aklıma gelen değil . Gerçi başka seçenekler de var ....

  1. firstÖğeyi oluştururken, şöyle bir sınıf atayın :

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

    CSS:

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

    Bu CSS yalnızca unsurları maçları hem first ve redsınıfları.

  2. Alternatif olarak, JavaScript'te de aynısını yapın, örneğin, yukarıdaki ile aynı CSS'yi kullanarak bunu yapmak için kullanacağınız jQuery şöyledir:

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

Bir süre önce sadece CSS çözümü buldum ; Burada kanonik bir cevap olarak çoğalttım.
BoltClock

1
Böyle bir şey olmadığı sürece :first-of-class, ilk öğeye ekstra bir sınıf eklemenizi de öneririm. Şimdilik en kolay çözüm gibi görünüyor.
Kai Noack

7

Bunu projemde buldum.

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

Güncellenmiş probleminize göre

<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>

ne dersin

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

Bu, home sınıfını , ardından span yayılımını ve son olarak span öğelerinden hemen sonra yerleştirilen tüm .red öğelerini seçecektir .

Referans: http://www.w3schools.com/cssref/css_selectors.asp



3

Çalışmasını sağlamak için kodunuzu böyle bir şeye değiştirebilirsiniz.

<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>

Bu işi senin için yapar

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

İşte SnoopCode'dan bu konuda bir CSS referansı .


3

Listede ul li için bir arka plan resmi var aşağıdaki CSS kullanıyorum

#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

Bunu dene :

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

2

Bazı nedenlerden dolayı, yukarıdaki cevapların hiçbiri ebeveynin gerçek ilk ve tek ilk çocuğuna hitap ediyor gibi görünmüyordu .

#element_id > .class_name:first-child

Stili bu kod içindeki birinci sınıf alt öğeye uygulamak isterseniz yukarıdaki yanıtların tümü başarısız olur.

<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
Cevabınız aslında bu soruya verilen en yüksek iki cevapta yer alıyor ve hiçbir şey eklemiyor. Ayrıca, :first-childsözde sınıfı kullanmanız yanıltıcıdır, çünkü .class_nameçalışma şeklini değiştirmeden ve sadece bir filtre görevi görmesinden önce ekler . Daha önce bir div'iniz varsa <div class="class_name">First content that need to be styled</div>, gerçek ilk çocuk olmadığı için seçiciniz eşleşmez.
j08691

Bilgiye ihtiyacı olan biri için bu kadar ileri olduğunu sanmıyorum. Ve evet dava hakkında haklısın. Bu daha spesifik bir vakaya hizmet eder. Bu yüzden yararlı olabileceğini düşündüm.
Yavor Ivanov

Tam da ihtiyacım olan şey bu, kesin ve özlü. @YavorIvanov
quantme

1

Bunu Basit ve Etkili Deneyin

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

-1

Ben +hemen sonra yerleştirilen öğeleri seçmek için göreceli seçici kullanarak , burada en iyi çalışır (daha önce birkaç önerildiği gibi) inanıyorum .

Bu davanın bu seçiciyi kullanması da mümkündür

.home p:first-of-type

ancak bu, birinci sınıf değil, öğe seçici.

Burada CSS seçicilerinin güzel bir listesi var: https://kolosek.com/css-selectors/


-2

Bu çözümü deneyin:

 .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>

CodePen bağlantısı


Soru "dir ilk öğesi için CSS seçici sınıfı ile " değil " ilk öğesi için CSS seçici etiket adı ile ".
GeroldBroser,
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.