Jika saya memiliki div berikut:
<div class="sectionA" id="content">
Lorem Ipsum...
</div>
Apakah ada cara untuk mendefinisikan gaya yang mengekspresikan ide "A div with id='content'
AND class='myClass'
"?
Atau apakah Anda hanya pergi satu atau lain cara seperti di
<div class="content-sectionA">
Lorem Ipsum...
</div>
Atau
<div id="content-sectionA">
Lorem Ipsum...
</div>
css
css-selectors
Larsenal
sumber
sumber
img#Inbox
ikon di halaman Anda yang biasanya diatur ke 50% opacity. Namun, ketika pengguna memiliki pesan, Anda ingin itu diatur ke 100% opacity, dan backend menunjukkan ini dengan menambahkanactive
kelas ke elemen. Dalam skenario seperti itu, masuk akal untuk memiliki pemilih yang menggabungkan ID dan classname.code
<p id = Product_1 class = Produk> Produk 1 </p> <p id = Product_2 class = Produk> Produk 2 </p>code
Ini untuk memungkinkan penataan gaya semua produk tetapi juga memungkinkan penataan individu untuk produk tertentu?Jawaban:
Di stylesheet Anda:
Sunting: Ini mungkin membantu, juga:
dan, per contoh Anda:
Edit, 4 tahun kemudian: Karena ini sangat tua dan orang-orang terus menemukannya: jangan gunakan tagNames di pemilih Anda.
#content.myClass
lebih cepat daridiv#content.myClass
karena tagName menambahkan langkah penyaringan yang tidak Anda butuhkan. Gunakan nama tag di pemilih hanya di mana Anda harus!sumber
div.class#id
harus setara meskipun kurang direkomendasikan; gunakan bagian pemilih yang lebih unik terlebih dahulu.Ada perbedaan antara
#header .callout
dan#header.callout
di css.Berikut adalah "Bahasa Inggris biasa" dari
#header .callout
:Pilih semua elemen dengan nama kelas
callout
yang merupakan turunan dari elemen dengan ID dariheader
.Dan
#header.callout
berarti:Pilih elemen yang memiliki ID
header
dan juga nama kelascallout
.Anda dapat membaca lebih lanjut di sini trik css
sumber
Tidak ada yang salah dengan menggabungkan id dan kelas pada satu elemen, tetapi Anda tidak perlu mengidentifikasi keduanya dengan satu aturan. Jika Anda benar-benar ingin Anda dapat melakukannya:
Anda tidak perlu
div
di depan ID seperti yang disarankan orang lain.Secara umum, aturan CSS khusus untuk elemen tersebut harus ditetapkan dengan ID, dan aturan tersebut akan memiliki bobot lebih besar dari pada hanya kelas. Aturan yang ditentukan oleh kelas adalah properti yang berlaku untuk banyak item yang tidak ingin Anda ubah di banyak tempat kapan pun Anda perlu menyesuaikan.
Itu intinya begini:
Masuk akal?
sumber
Yah umumnya Anda tidak perlu mengklasifikasikan elemen yang ditentukan oleh id, karena id selalu unik, tetapi jika Anda benar-benar perlu, yang berikut ini akan berfungsi:
sumber
Anda dapat menggabungkan ID dan Kelas dalam CSS, tetapi ID dimaksudkan untuk menjadi unik, sehingga menambahkan kelas ke pemilih CSS akan membuat terlalu memenuhi syarat.
sumber
gunakan:
tag.id ; tag#class
dalam variabel tag di css Anda.sumber
Id seharusnya lebar dokumen unik, jadi Anda tidak harus memilih berdasarkan keduanya. Anda dapat menetapkan elemen beberapa kelas dengan
class="class1 class2"
sumber
Saya pikir Anda semua salah. ID versus Kelas bukan masalah kekhususan; mereka memiliki kegunaan logis yang sama sekali berbeda.
ID harus digunakan untuk mengidentifikasi bagian-bagian tertentu dari halaman: header, bilah navigasi, artikel utama, atribusi penulis, footer.
Kelas harus digunakan untuk menerapkan gaya ke halaman. Katakanlah Anda memiliki situs majalah umum. Setiap halaman di situs ini akan memiliki elemen yang sama - header, nav, artikel utama, sidebar, footer. Tetapi majalah Anda memiliki bagian yang berbeda - ekonomi, olahraga, hiburan. Anda ingin tiga bagian memiliki penampilan yang berbeda - ekonomi konservatif dan sederhana, aksi olahraga-y, hiburan yang cerah dan muda.
Anda menggunakan kelas untuk itu. Anda tidak ingin harus membuat banyak ID - # artikel ekonomi dan # artikel olahraga dan # artikel hiburan. Itu tidak masuk akal. Sebaliknya, Anda akan mendefinisikan tiga kelas, ekonomi, olahraga, dan. Kepastian, lalu tentukan id #nav, #article, dan #footer untuk masing-masingnya.
sumber
Tidak akan berfungsi ketika doctype adalah html 4.01 ...
sumber