Saya mencoba untuk memilih yang pertama h1
di dalam a div
dengan sebuah kelas bernama detail_container
. Ini berfungsi jika h1
adalah elemen pertama dalam ini div
, tetapi jika muncul setelah ini, ul
itu tidak akan berfungsi.
<style type="text/css">
.detail_container h1:first-child
{
color:blue;
}
</style>
</head>
<body>
<div class="detail_container">
<ul>
<li></li>
<li></li>
</ul>
<h1>First H1</h1>
<h1>Second H1</h1>
</div>
</body>
</html>
Saya mendapat kesan bahwa CSS yang saya miliki akan memilih yang pertama h1
tidak peduli di mana itu div
. Bagaimana cara membuatnya bekerja?
css
css-selectors
Pria Muffin
sumber
sumber
Jawaban:
The
h1:first-child
pemilih berartiThe
:first-child
wadah sini adalahul
, dan tidak bisa seperti memuaskanh1:first-child
.Ada CSS3
:first-of-type
untuk kasus Anda:Tetapi dengan masalah kompatibilitas browser dan yang lainnya, Anda lebih baik memberikan kelas pertama
h1
, lalu menargetkan kelas itu:sumber
:first-of-type
pemilih.:first-of-type
. Tautan lama salah.:first-child
tersebut tidak jelas untuk dipahami, karena Anda mendefinisikan item sebagai pemilih CSS, katakanlahh1
, dan kemudian Anda kemudian berpikir "ambil anak pertama" dari semua di tingkat DOM yang dipilih. Saya sering salah menggunakannya ... Kita harus terbiasa dengan:first-of-type
selektor dan memikirkan anak pertama dari jenisnya.:first-child
memilih yang pertamah1
jika dan hanya jika itu adalah anak pertama dari elemen induknya. Dalam contoh Anda, theul
adalah anak pertama daridiv
.Nama kelas semu agak menyesatkan, tetapi dijelaskan dengan cukup jelas di sini di spesifikasi.
:first
Pemilih jQuery memberi Anda apa yang Anda cari. Kamu bisa melakukan ini:$('.detail_container h1:first').css("color", "blue");
sumber
Untuk kasus khusus itu, Anda dapat menggunakan:
Tetapi jika Anda membutuhkan pemilih yang sama pada banyak kasus, Anda harus memiliki kelas untuk itu, seperti yang dikatakan BoltClock.
sumber
Anda juga bisa menggunakan
Dengan mengubah nomor 1 dengan nomor lain, Anda dapat memilih item h1 lainnya.
sumber
Anda dapat membungkus
h1
tag Anda dengan yang laindiv
dan kemudian yang pertama adalahfirst-child
. Itudiv
bahkan tidak membutuhkan gaya. Itu hanya cara untuk memisahkan anak-anak itu.sumber
Elemen tidak dapat secara langsung mewarisi dari
<body>
tag. Anda dapat mencoba memasukkannya ke dalam<dir style="padding-left:0px;"></dir>
tag.sumber