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
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.
Nasıl koşullu olarak AngularJS CSS sti...
Alt öğeleri için CSS Stili uygulamak...
Tıklatın olay'dinamik olarak oluş...
Olamaz Dize kullanın.İsteğe bağlı bir ...
Nasıl JavaScript ile dinamik olarak CS...