“+” (Artı işareti) CSS seçici ne anlama geliyor?


750

Örneğin:

p + p {
  /* Some declarations */
}

Ne +anlama geldiğini bilmiyorum . Bu ve sadece polmadan bir stil tanımlama arasındaki fark nedir + p?


Uygulamada bu çoğunlukla aynı türden liste elemanları arasına bir kenar boşluğu veya dolgu uygulamak için yararlıdır, bu nedenle ilk veya son eleman için özel bir durum gerekmez.
Christophe Roussy

Yanıtlar:


749

W3.org'daki bitişik seçicilere bakın .

Bu durumda, seçici, stilin yalnızca doğrudan başka bir paragrafı takip eden paragraflar için geçerli olduğu anlamına gelir.

Düz bir pseçici stili sayfadaki her paragrafa uygular.


Bu yalnızca IE7 veya üzeri sürümlerde çalışır. IE6'da, stil hiçbir öğeye uygulanmaz. Bu >arada kombinator için de geçerli .

Ayrıca Internet Explorer'daki CSS uyumluluğu için Microsoft'a genel bakış konusuna bakın .


Gizlendiğinde öğeyi daraltmamayı faydalı buldum. Bu nedenle onu saklamanın daha uygun bir yolu visibility : hidden/visibleyerine kullanmaktır display : none/block. Bu referansa bakın .
KFL

6
p + p ve p> p arasındaki fark ne olacak
Muhammad Rizwan

7
@MuhammadRizwan p > p, iç içe geçmiş p, ei gibi pdoğrudan diğerinin altında olan anlamına gelir . p<p><p>This paragraph</p></p>
Muz

203

Bitişik kardeş seçicidir.

Gönderen Stil Splash blog.

Bir CSS bitişik seçiciyi tanımlamak için artı işareti kullanılır.

h1+p {color:blue;}

Yukarıdaki CSS kodu, herhangi bir h1 başlığından sonraki (içinde değil) ilk paragrafı mavi olarak biçimlendirir.

h1>pbir pöğenin doğrudan (birinci nesil) alt öğesi olan herhangi bir öğeyi seçer h1.

  • h1>peşleşmeler <h1> <p></p> </h1>( <p>içeride <h1>)

h1+pbir peleman olarak kardeş olan (dom ile aynı seviyede) olan ilk elemanı seçecektir h1.

  • h1+peşleşmeler <h1></h1> <p><p/>( <p>sonraki / sonraki <h1>)

3
Ben arasına karıştı plus signve greater sign. h1>pBunun yerine kullanırsam h1+p, aynı sonucu verir mi? Aralarında ne kadar farklı olduğunu biraz açıklayabilir misiniz?
lvarayut

91
Örneklerinizde, h1>pbir pöğenin doğrudan (birinci nesil) alt öğesi olan herhangi bir öğeyi seçer h1. h1+pbir peleman olarak kardeş olan (dom ile aynı seviyede) olan ilk elemanı seçecektir h1. h1>pmaçlar <h1><p><p></h1>, h1+pmaçlar<h1></h1><p><p/>
Matthew Vines

1
@MatthewVines u h1> p ve h1 + p'yi cevabınıza eklemelisiniz
MonsterMMORPG

Yani esas olarak örneğinizde, <h1> 'den sonraki ilk <p> ile eşleşecek, ancak <h1>' den önce gelmişse aynı <p> ile de eşleşecek mi? Yoksa sadece sonra mı?
Vincent

53

+İşaret araçları, bir "bitişik kardeş" seçeneğini

Örneğin, bu stil ikinciden uygulanacaktır <p>:

p + p {
   font-weight: bold;
} 
<div>
   <p>Paragraph 1</p>
   <p>Paragraph 2</p>
</div>


Misal

Bu JSFiddle'a bakın ve anlayacaksınız: http://jsfiddle.net/7c05m7tv/ (Başka bir JSFiddle: http://jsfiddle.net/7c05m7tv/70/ )


Tarayıcı Desteği

Bitişik kardeş seçicileri tüm modern tarayıcılarda desteklenir.


Daha fazla bilgi edin


42

"+" bitişik kardeş seçicidir. DOĞRUDAN SONRA herhangi bir p'yi seçecektir (bir kardeş veya çocuk değil, bir kardeş).


23

+seçici denir Adjacent Sibling Selector.

Örneğin, seçici p + p, pöğelerin hemen ardından gelen pöğeleri seçer

looking outsideHemen takip eden elemanı kontrol eden bir seçici olarak düşünülebilir .

İşleri daha net hale getirmek için örnek bir snippet:

body {
  font-family: Tahoma;
  font-size: 12px;
}
p + p {
  margin-left: 10px;
}
<div>
  <p>Header paragraph</p>
  <p>This is a paragraph</p>
  <p>This is another paragraph</p>
  <p>This is yet another paragraph</p>
  <hr>
  <p>Footer paragraph</p>
</div>

Aynı konudan biri olduğumuz için, başka bir seçici, ~seçici,General Sibling Selector

Örneğin, nerede olduğunu farketmeden takip p ~ pedenlerin tümünü seçer , ancak her ikisinin de aynı ebeveyne sahip olması gerekir.ppp

Aynı biçimlendirme ile nasıl göründüğü aşağıda açıklanmıştır:

body {
  font-family: Tahoma;
  font-size: 12px;
}
p ~ p {
  margin-left: 10px;
}
<div>
  <p>Header paragraph</p>
  <p>This is a paragraph</p>
  <p>This is another paragraph</p>
  <p>This is yet another paragraph</p>
  <hr>
  <p>Footer paragraph</p>
</div>

pBu örnekte sonuncunun da eşleştiğine dikkat edin .



8

+göreceli seçicilerden birini sunar. Tüm ilgili seçicilerin listesi:

div p- <p>Elemanların içindeki tüm elemanlar <div>seçilir.

div > p- <p>Doğrudan üst öğesi <div>seçilen tüm öğeler . Geriye doğru da çalışır ( p < div)

div + p- Tüm <p>elemanlar <div>eleman seçildikten hemen sonra yerleştirilir .

div ~ p- <p>Bir <div>öğeden önce gelen tüm öğeler seçilir.

Seçiciler hakkında daha fazla bilgiyi buradan kontrol edin .


Son seçici yanlış. MDN'ye göre : Genel kardeş birleştirici (~) iki seçiciyi ayırır ve yalnızca ilk öğeyi izliyorsa (hemen olmasa da) ikinci öğeyle eşleşir ve her ikisi de aynı ana öğenin çocuklarıysa
Carles Alcolea

2

Sonraki paragrafı seçer ve paragrafın başlangıcını tıpkı Microsoft Word'de olduğu gibi soldan girintiler.


2
p+p{
//styling the code
}

p+p{
} simply mean find all the adjacent/sibling paragraphs with respect to first paragraph in DOM body.

    <div>
    <input type="text" placeholder="something">
    <p>This is first paragraph</p>
    <button>Button </button>
    <p> This is second paragraph</p>
    <p>This is third paragraph</p>
    </div>

    Styling part 
    <style type="text/css">
        p+p{
            color: red;
            font-weight: bolder;
        }
    </style>

   It will style all sibling paragraph with red color.

son çıktı şuna benzer

resim açıklamasını buraya girin


1

Artı (+) ilk acil elemanı seçecektir. + Seçiciyi kullandığınızda iki parametre vermeniz gerekir. Bu örnekle daha açık olacaktır: burada div ve span parametrelerdir, bu durumda bu durumda yalnızca div stilinden sonraki ilk aralık stilize edilir.

 div+ span{
   color: green;
   padding :100px;
}

     <div>The top or first element  </div>
       <span >this is span immediately after div, this will be selected</span>
       <span>This will not be selected</span>

Yukarıdaki stil yalnızca div'den sonraki ilk açıklığa uygulanacaktır. İkinci açıklığın seçilmeyeceğine dikkat etmek önemlidir.


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.