tr
İlk hariç tüm öğeleri nasıl seçebilirimtr
CSS içeren bir tabloda ?
Bu yöntemi kullanmayı denedim , ancak işe yaramadı.
<tr>
ve geri kalanı için farklı bir sınıftır.
tr
İlk hariç tüm öğeleri nasıl seçebilirimtr
CSS içeren bir tabloda ?
Bu yöntemi kullanmayı denedim , ancak işe yaramadı.
<tr>
ve geri kalanı için farklı bir sınıftır.
Yanıtlar:
İlkine tr
veya sonrasına sınıf ekleyerektr
s . Yalnızca CSS ile istediğiniz satırları seçmenin çapraz tarama yolu yoktur.
Ancak, Internet Explorer 6, 7 veya 8'i önemsemiyorsanız:
tr:not(:first-child) {
color: red;
}
tr:not(:first-of-type)
, ilk genelleştirilmiş çocuktan ziyade belirli bir seçicinin ilk örneğini arıyorsanız, potansiyel bir çözüm olarak da belirtmek isterim.
IE7 ve üstü tarafından desteklenen kardeş birleştiricilerin kullanımından hiç kimsenin bahsetmediğine şaşırdım:
tr + tr /* CSS2, adjacent sibling */
tr ~ tr /* CSS3, general sibling */
Her ikisi de (HTML tabloları bağlamında) tam olarak aynı şekilde çalışır:
tr:not(:first-child)
elem + elem
hedeflemek istediğiniz öğelerin tek çocuk olmadığı zamanlar için harika bir genel çözümdür. Örneğin, a'nın <h2>
ardından birkaç <p>
etiket gelirse <p>
, ilki bu durumda ilk alt öğe değildir.
ideal çözüm ancak IE'de desteklenmiyor
tr:not(:first-child) {css}
İkinci çözüm tüm tr'leri biçimlendirmek ve daha sonra ilk çocuk için css ile geçersiz kılmak olacaktır:
tr {css}
tr:first-child {override css above}
bahsettiğiniz 'ilk satır' gibi görünüyor, tablo başlığınızdır - bu nedenle, gerçekten daha iyi bir işaretleme (anlamsal olarak doğru, ekran okuyucular gibi şeyler için yararlı olacak şekilde kullanmayı thead
ve tbody
işaretlemenizi ( buraya tıklayın ) düşünmelisiniz. ) ve css seçimi için daha kolay, tarayıcılar arası kolay olanaklar ( table thead ... { ... }
)
Sorunun zaten iyi bir cevabı olmasına rağmen, :first-child
etiketin çocukları temsil eden öğe türüne gittiğini vurgulamak istiyorum .
Örneğin, kodda:
<div id"someDiv">
<input id="someInput1" />
<input id="someInput2" />
<input id="someInput2" />
</div
Eğer marjlı sadece ikinci iki unsuru etkilemek istiyorsanız, ancak ilkini etkilemiyorsanız, şunları yaparsınız:
#someDiv > input {
margin-top: 20px;
}
#someDiv > input:first-child{
margin-top: 0px;
}
yani input
s çocuklar first-child
olduğu için seçicinin giriş kısmına yerleştirirsiniz.
Üzgünüm, bu eski olduğunu biliyorum ama neden tüm tr öğeleri ilk ve psuedo sınıfının kullanımı dışında tüm istediğiniz gibi stil olmasın: tüm tr öğeleri için belirttiğiniz şeyi iptal ettiğiniz ilk çocuk.
Bu örnekle daha iyi tanımlanmıştır:
tr {
border-top: 1px solid;
}
tr:first-child {
border-top: none;
}
/ Patrik
Başka seçenek:
tr:nth-child(n + 2) {
/* properties */
}
Birisi faydalanabilir, aşağıda kullandığım şey
ol li:not(:first-child) {
background: black;
color: white;
}
Ayrıca CSS'nizde şu şekilde bir sözde sınıf seçici kullanabilirsiniz:
.desc:not(:first-child) {
display: none;
}
Bu, sınıfı .desc sınıfındaki ilk öğeye uygulamaz.
İşte bir örnek ile bir JSFiddle: http://jsfiddle.net/YYTFT/ ve bu sözde sınıf seçicileri açıklamak için iyi bir kaynaktır: http://css-tricks.com/pseudo-class-selectors/
first-child
sınıfları yok sayar.
Bir sınıf oluşturabilir ve geleceğinizin CSS tarafından seçilmesini istediğiniz (veya istemediğiniz) tüm öğeleri tanımladığınızda sınıfı kullanabilirsiniz.
Bu yazı ile yapılır
<tr class="unselected">
ve sonra css'inizde satırlara sahip (ve örnek olarak text-align komutunu kullanarak):
unselected {
text-align:center;
}
selected {
text-align:right;
}