trİlk hariç tüm öğeleri nasıl seçebilirimtrCSS 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çebilirimtrCSS 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 trveya 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 + elemhedeflemek 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ı theadve tbodyiş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-childetiketin ç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 inputs çocuklar first-childolduğ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-childsı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;
}