SORU
24 ŞUBAT 2010, ÇARŞAMBA


Bir öğe alt öğeleri bağlı olarak CSS stilleri uygulamak

Sadece eşleşen öğe belirli bir öğe (doğrudan alt öğesi olarak) içeriyorsa uygulanan bir elemanın CSS stilini tanımlamak mümkün mü?

Bu en iyi açıklandığı bir örnek kullanıyor sanırım.

Not: Etmeye çalışıyorumstil ana öğebunu ne içerdiğini bağlı olarak.

<style>
  /* note this is invalid syntax. I'm using the non-existing
   ":containing" pseudo-class to show what I want to achieve. */
  div:containing div.a { border: solid 3px red; }
  div:containing div.b { border: solid 3px blue; }
</style>

<!-- the following div should have a red border because
     if contains a div with class="a" -->
<div>
  <div class="a"></div>
</div>

<!-- the following div should have a blue border -->
<div>
  <div class="b"></div>
</div>

NOT 2Bu javascript kullanarak elde edebileceğimi biliyorum, ama ben sadece bu mümkün (bana) bilinmeyen bazı CSS özelliklerini kullanarak olup olmadığını merak etti.

CEVAP
24 ŞUBAT 2010, ÇARŞAMBA


Farkındayım kadarıyla, üst öğe alt öğe dayalı stil CSS kullanılabilir bir özellik değil. Büyük olasılıkla bunun için komut dosyası gerekir.

Eğer dediğin gibi div[div.a] div:containing[div.a] gibi bir şey yapsaydın harika olurdu, ama bu mümkün değil.

jQuery bakarak düşünebilirsiniz. Çok iyi 'içeren' tür. seçiciler. Div, çocuk içeriğine göre seçebilir ve sonra bir satır içinde üst tüm css sınıfı uygular.

Eğer jQuery kullanıyorsanız, bu satırları ki birlikte bir çözüm olabilir (denenmemiş ama teori var):

$('div:has(div.a)').css('border', '1px solid red');

ya

$('div:has(div.a)').addClass('redBorder');

css sınıfı ile birlikte

.redBorder
{
    border: 1px solid red;
}

İşte jQuery "has" selector belgeleri.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Fullscreen

    Fullscreen

    23 Mart 2006
  • grickle

    grickle

    22 AĞUSTOS 2006
  • krotoflik

    krotoflik

    26 ŞUBAT 2011