Saya memiliki html berikut
<div class="section">
<div>header</div>
<div>
contents
<div>sub contents 1</div>
<div>sub contents 2</div>
</div>
</div>
Dan gaya berikut:
DIV.section DIV:first-child
{
...
}
Untuk beberapa alasan saya tidak mengerti gaya ini diterapkan pada "sub konten 1" <div>
serta "header" <div>
.
Saya berpikir bahwa pemilih pada gaya hanya akan berlaku untuk anak langsung pertama dari div dengan kelas yang disebut "bagian". Bagaimana saya bisa mengganti pemilih untuk mendapatkan yang saya inginkan?
html
css
css-selectors
Jeremy
sumber
sumber
Jawaban:
Apa yang Anda posting secara harfiah berarti "Temukan div yang ada di dalam div bagian dan merupakan anak pertama dari orang tua mereka." Sub berisi satu tag yang cocok dengan deskripsi itu.
Tidak jelas bagi saya apakah Anda ingin kedua anak dari div utama atau tidak. Jika demikian, gunakan ini:
Jika Anda hanya ingin tajuk, gunakan ini:
Menggunakan
>
perubahan deskripsi untuk: "Temukan div yang merupakan keturunan langsung dari div bagian" yang adalah apa yang Anda inginkan.Harap dicatat bahwa semua browser utama mendukung metode ini, kecuali IE6. Jika dukungan IE6 kritis-misi, Anda harus menambahkan kelas ke div anak dan menggunakannya. Kalau tidak, itu tidak layak untuk diperhatikan.
sumber
div.section > div:first-child > div { /* Cancel Changes*/}
Menemukan pertanyaan ini mencari di Google. Ini akan mengembalikan anak pertama elemen dengan kelas
container
, terlepas dari apa jenis anak itu.sumber
CSS disebut Cascading Style Sheets karena aturannya diturunkan. Menggunakan pemilih berikut, akan memilih hanya anak langsung dari orang tua, tetapi aturannya akan diwarisi oleh
div
anak-anak itudivs
:Sekarang, baik itu
div
dan anak-anaknya akan menjadired
. Anda harus membatalkan apa pun yang Anda tetapkan pada orang tua jika Anda tidak ingin mewarisi:Sekarang hanya satu
div
yang merupakan anak langsung dari yangdiv.section
akan merah, tetapi anak-anaknyadivs
akan tetap hitam.sumber
sumber
Gunakan
div.section > div
.Lebih baik lagi, gunakan
<h1>
tag untuk tajuk dandiv.section h1
di CSS Anda, sehingga untuk mendukung browser yang lebih lama (yang tidak tahu tentang>
) dan menjaga semantik markup Anda.sumber
Selektor CSS untuk anak pertama langsung dalam kasus Anda adalah:
Pemilih langsung adalah> dan pemilih anak pertama adalah: anak pertama
Tidak perlu tanda bintang sebelum: seperti yang disarankan orang lain. Anda dapat mempercepat pencarian DOM dengan memodifikasi solusi ini dengan menambahkan tag:
sumber