Tujuan saya adalah menerapkan CSS di bagian terakhir li
, tetapi tidak melakukannya.
#refundReasonMenu #nav li:last-child {
border-bottom: 1px solid #b5b5b5;
}
<div id="refundReasonMenu">
<ul id="nav">
<li><a id="abc" href="#">abcde</a></li>
<li><a id="def" href="#">xyz</a></li>
</ul>
</div>
Bagaimana saya bisa memilih hanya anak terakhir?
css
css-selectors
Miral
sumber
sumber
:last-child
. Dan itu tidak terlalu aneh.:first-child
adalah pseudo-class CSS2, pseudo-class:last-child
CSS3.:last-child
.Solusi lain yang mungkin berhasil untuk Anda adalah membalikkan hubungan. Jadi Anda akan mengatur perbatasan untuk semua item daftar. Anda kemudian akan menggunakan first-child untuk menghilangkan border untuk item pertama. Anak pertama didukung secara statis di semua browser (artinya tidak dapat ditambahkan secara dinamis melalui kode lain, tetapi anak pertama adalah pemilih CSS2, sedangkan anak terakhir ditambahkan dalam spesifikasi CSS3)
Catatan: Ini hanya berfungsi seperti yang Anda inginkan jika Anda hanya memiliki 2 item dalam daftar seperti contoh Anda. Item ketiga dan seterusnya akan memiliki batas yang diterapkan padanya.
sumber
Jika Anda merasa dapat menggunakan Javascript, maka karena dukungan jQuery
last-child
, Anda dapat menggunakan metode css jQuery dan hal baiknya akan mendukung hampir semua browserKode Contoh:
Anda dapat menemukan info lebih lanjut tentang di sini: http://api.jquery.com/css/#css2
sumber
$("#nav li:last-child").addClass('last-child')
agar Anda dapat mempertahankan gaya Anda di lembar gaya.div:last-child
dandiv.last-child
. Tampaknya itu menganggap:last-child
sintaks tidak valid dan kelas apa pun dengan pseudo-selector tidak akan diterapkan.Jika jumlah item daftar tetap, Anda dapat menggunakan pemilih yang berdekatan, misalnya jika Anda hanya memiliki tiga
<li>
elemen, Anda dapat memilih yang terakhir<li>
dengan:sumber
li + #nav li
memilihli
bagian dalam#nav
yang muncul setelahnyali
. Selektor Anda seharusnya begitu#nav li + li + li
.Jika Anda sering menginginkan pemilih CSS3, Anda selalu dapat menggunakan pustaka selectivizr di situs Anda:
http://selectivizr.com/
Ini adalah skrip JS yang menambahkan dukungan untuk hampir semua pemilih CSS3 ke browser yang tidak mendukung mereka.
Lemparkan ke
<head>
tag Anda dengan persyaratan IE:sumber
kelas semu anak terakhir tidak berfungsi di IE
Kompatibilitas CSS dan Internet Explorer
IE7 CSS Selectors: Bagaimana mereka gagal
sumber
Sebagai alternatif untuk menggunakan kelas, Anda bisa menggunakan daftar mendetail, menyetel elemen anak dt untuk memiliki satu gaya dan elemen anak dd memiliki gaya yang lain. Contoh Anda akan menjadi:
html:
Tidak ada metode yang lebih baik dari yang lain dan itu hanya tergantung pada preferensi pribadi.
sumber
Cara lain untuk melakukannya adalah menggunakan pemilih anak-terakhir di jQuery lalu menggunakan metode .css (). Namun jadilah lelah karena beberapa orang masih di zaman batu menggunakan browser yang dinonaktifkan JavaScript.
sumber
Mengapa tidak menerapkan batas ke bagian bawah UL?
sumber
padding-bottom
pada<ul>
elemen ataumargin-bottom
pada yang terakhir<li>
unsur, ini tidak akan memiliki penempatan yang diinginkan dari bawah kanan yang terakhir<li>
elemen. Jika tidak, ini adalah solusi yang bagus.Jika Anda mengapung elemen, Anda dapat membalik urutannya
yaitu
float: right;
bukanfloat: left;
Dan kemudian gunakan metode ini untuk memilih anak pertama dari sebuah kelas.
Ini sebenarnya menerapkan kelas ke contoh TERAKHIR hanya karena sekarang dalam urutan terbalik.
Berikut adalah contoh yang berfungsi untuk Anda:
sumber
Sulit untuk mengatakannya tanpa melihat sisa CSS Anda, tetapi coba tambahkan
!important
di depan warna perbatasan, untuk membuatnya seperti ini:sumber