Css pilih semua elemen. Pemilih kelas semu struktural. Pemilih atribut css tingkat lanjut

Karena kita tidak ingin menata semua elemen HTML sekaligus, kita memerlukan kemampuan memilih bagian dari elemen-elemen ini.

Pemilih CSS menentukan elemen mana yang ingin kita terapkan gayanya.

Pemilih tag dasar

Target tag dasar HTML itu mudah: cukup gunakan nama tag.

Ada hubungan langsung antara nama tersebut tanda HTML dan pemilih CSS yang digunakan.

Kelas

Mengingat kita mungkin tidak ingin menata semua paragraf atau judul dengan cara yang sama, kita perlu membedakannya.

Dari semua atribut HTML, atribut class adalah yang paling penting untuk CSS. Ini memungkinkan Anda untuk menentukan kelompok Elemen HTML yang bisa kita targetkan dengan tepat. Cukup beri tanda titik sebelum nama kelas yang ingin Anda gunakan:

Tanggal ( warna: merah; )

Di sisi lain ada Atribut HTML kelas dengan tanggal nilai. Itu harus cocok dengan nama kelas CSS.

Anda dapat menggunakan nama apa pun untuk kelas Anda, namun tidak boleh dimulai dengan angka.

Pemilih kelas .date akan menargetkan semua elemen HTML dengan atribut class='date'. Dengan demikian, elemen berikut HTML Semua akan ditata:

Acara tersebut akan berlangsung pada Sabtu.

Harap dicatat bahwa nama tag tidak masalah, hanya atribut class yang diperhitungkan.

Pengidentifikasi

Anda juga dapat menggunakan atribut id di HTML Anda dan mendefinisikannya di CSS Anda menggunakan hash:

#tagline( warna: oranye;)

Judul ini akan berwarna oranye.

Pengidentifikasi mirip dengan kelas karena mereka juga didasarkan pada atribut HTML.

Contoh

Menggabungkan penyeleksi

Mari kita gunakan contoh sebelumnya di mana kita ingin membuat tanggal kita menjadi merah:

Acara tersebut akan berlangsung pada Sabtu.

Jika kita ingin teman kencan kita di dalam ditampilkan dengan warna biru? Kita dapat menambahkan aturan CSS berikut:

Em.tanggal ( warna: biru; )

em.date menggabungkan:

  • pemilih tag em;
  • pemilih kelas .date .

Ini hanya berlaku untuk elemen . Ini tidak akan mempengaruhi .date atau .

Hirarki Pemilih

Spasi di pemilih mendefinisikan hubungan leluhur/anak. Katakanlah kita ingin link di header kita berwarna merah:

Tajuk a ( warna: merah; )

Kelas semu

Elemen HTML dapat memiliki status berbeda. Kasus paling umum adalah ketika Anda mengarahkan kursor ke suatu tautan. Dimungkinkan dalam CSS untuk menerapkan gaya yang berbeda ketika peristiwa seperti itu terjadi.

Kelas semu terikat pada penyeleksi reguler dan dimulai dengan titik dua.

Hari ini kita akan melihat konsep pemilih CSS dan bagaimana kita dapat menggunakannya untuk mempersingkat markup HTML, membuatnya lebih bersih.

Pemilih CSS adalah elemen yang akan kita terapkan properti CSSnya. Kata "pemilih" sudah cukup jelas; artinya pilihan.

P (warna: merah) rentang div (latar belakang: hijau) ul li (gaya daftar: tidak ada)

Pemilih kelas dan id

Dalam contoh di atas kita memiliki 3 penyeleksi - p, div span, ul li. Artinya, seluruh file gaya kita terdiri dari penyeleksi dan propertinya. Cara paling mudah dan intuitif, terutama bagi pemula, adalah mengambil nama kelas dari tag atau pengenal unik(tanda pengenal). Untuk menetapkan kelas atau pengidentifikasi ke tag apa pun, kita harus menentukannya di antara atribut tag tersebut. Tag tertentu dapat memiliki maksimal 1 pengidentifikasi dan jumlah kelas yang tidak terbatas. Contoh:

teks di div pertama
teks di div kedua
teks di div ketiga

Yang harus Anda perhatikan:

  • Kelas dan pengidentifikasi dapat ditetapkan ke semua (semua) tag.
  • Setiap id bersifat unik dan tidak dapat diulang dalam halaman yang sama, tidak seperti kelas!
  • Kelas yang sama dapat ditetapkan ke tag apa pun dan dapat diulang beberapa kali pada suatu halaman.
  • Jika kita ingin menetapkan beberapa kelas ke tag tertentu, kita cukup menentukannya dengan dipisahkan oleh spasi.
  • Nama kelas dan pengenalnya boleh sama, tetapi selain namanya, tidak akan ada kesamaan di antara keduanya.

Bagaimana cara merujuk ke kelas atau id dalam file stylesheet (CSS)?

Mari kita lihat sebuah contoh:

#pertama (warna: merah;) /* mengakses id yang disebutkan terlebih dahulu */.detik (warna: biru;) /* mengakses kelas dengan nama kedua */#pertama .kedua (warna: oranye;) /* mengakses kelas dengan nama kedua HANYA jika berada DI DALAM tag dengan pengenal terlebih dahulu */.first .third (warna: abu-abu;) /* merujuk ke kelas bernama ketiga HANYA jika berada DI DALAM tag dengan kelas pertama */

Dalam kasus kami, dua instruksi terakhir tidak akan berfungsi, karena kami tidak memiliki kelas yang bersarang di dalam tag dengan atribut tertentu. Seperti yang mungkin telah Anda perhatikan, untuk menunjukkan bahwa kita merujuk secara khusus ke id, kita perlu memberi tanda pagar (#) di depan namanya tanpa spasi; jika kita mengacu pada suatu kelas, maka kita harus memberi tanda titik (. ) di depan nama kelas.

Menggunakan kelas dan pengidentifikasi sangat mudah, tetapi ini meningkatkan kemampuan kita markup HTML, idealnya (yang tidak pernah ada) kita tidak menggunakannya sama sekali, sebagai gantinya kita akan menggunakan kombinasi dan pengelompokan penyeleksi, sisa artikel akan membahasnya, tapi! Namun ini tidak berarti bahwa Anda harus sepenuhnya mengabaikan penggunaan kelas dan pengidentifikasi, Anda hanya perlu mengingat bahwa sering kali, alih-alih membuat kelas atau id baru, Anda dapat menggunakan teknik yang dijelaskan di bawah ini dan teknik tersebut juga dapat menjadi cukup nyaman.

Apa perbedaan antara kelas dan id?

Selain perbedaan di atas, perlu diperhatikan juga bahwa properti yang ditentukan oleh id memiliki prioritas lebih tinggi daripada properti yang ditetapkan ke kelas. Artinya, jika kita menulis:

teks dalam diva

Kemudian warna teks akan menjadi merah, meskipun kelasnya memiliki kode yang lebih rendah dan jika mereka memiliki prioritas yang sama maka teks akan berubah menjadi biru.

Berdasarkan sintaksis: dalam kasus dengan kelas, kita dapat memilih tag mana yang harus dimiliki kelas ini, untuk melakukan ini, setelah nama tag TANPA spasi, kita harus merujuk ke kelasnya. Contoh:

Kelas saya (properti) /* akan berlaku untuk semua tag yang berisi kelas myclass */ div.kelasku (properti) /* hanya berlaku untuk tag div yang berisi kelas myclass */

Ini juga akan berfungsi untuk id, tetapi entri seperti itu tidak ada artinya, karena id tidak dapat diulang pada halaman, yang berarti cukup mendeklarasikan id tanpa tag yang merujuknya:

teks

Tampaknya hanya ada satu perbedaan yang tidak ditentukan tersisa, dan ini menyangkut topik yang tidak saya rencanakan untuk saya bahas dalam waktu dekat di blog ini - Javascript. Namun saya tetap harus memberi tahu Anda tentang hal ini: jika Anda ingin mengakses suatu elemen menggunakan Javascript, maka memiliki id untuk elemen tersebut akan sangat memudahkan untuk tujuan ini. Untuk merujuk ke elemen berdasarkan kelasnya di Javascript tidak ada fitur bawaan seperti itu, Anda harus menggunakan fungsi pembantu + ini tidak selalu lintas-browser.

Intinya: kami menggunakan id dan kelas, tetapi dalam jumlah sedang, selalu bertanya pada diri sendiri apakah mungkin untuk melakukannya tanpa mereka dan seberapa disarankan.

Pemilih terkait

Div p (warna: hijau;) /* Pemilih berdasarkan anak */ p(warna:merah;) /* pemilih berdasarkan tag */

Tapi seperti yang sudah saya tulis di artikel sebelumnya, dalam kasus pertama, properti CSS akan diterapkan ke semua tag p yang bersarang di kedalaman APAPUN dari tag div. Namun bagaimana jika kita ingin menerapkan properti hanya pada keturunan langsung, yaitu pada sarang tingkat pertama:

Tingkat ketiga

Pewaris langsung (tingkat pertama)

Tingkat kedua

Pewaris langsung (tingkat pertama)

Dalam hal ini, kita harus menggunakan apa yang disebut pemilih terkait; braket sudut digunakan untuk menunjukkannya; Anda dapat menggunakan spasi atau membiarkannya, saya tidak akan merekomendasikannya:

Div>p (warna: biru;) /* hanya sarang tingkat pertama */ div p (warna: biru;) /* benar-benar semua paragraf di dalam div */

Pemilih universal

Kami telah menyelesaikannya, kami sudah memiliki 3 jenis pemilih di gudang senjata kami, sekarang saya ingin memberi tahu Anda tentang pemilih yang sangat tidak biasa yang menonjol di antara yang lainnya - inilah yang disebut pemilih universal, yang ditunjukkan oleh tanda bintang (*):

* (margin: 0; bantalan: 0;)

Beginilah cara semua orang memulai untuk saya proyek baru, saya menyarankan Anda untuk melakukan hal yang sama. Pemilih universal berlaku untuk semua elemen halaman (tag), tetapi tidak memiliki prioritas (hanya di bawah tidak ada prioritas sama sekali). Biasanya digunakan untuk mengganti properti CSS yang disetel browser secara default untuk beberapa tag. Bayangkan, ini benar-benar terjadi! Browser menyetel propertinya sendiri untuk beberapa tag secara default, misalnya tag hyperlink biru teks dan garis bawah, mereka mengatur padding ke tag body, dll. Kami sama sekali tidak perlu mengingat, mengetahui, dan menggunakan ini, jadi kami segera menghapus properti yang paling dangkal menggunakan pemilih universal, namun, saya tidak akan merekomendasikan menambahkan apa pun ke dalamnya (atau menambahkan, tetapi hati-hati), meskipun yang terkecil (null ) prioritas pemilih universal, dalam beberapa kasus masih dapat menimpa properti lain untuk Anda, jadi ingatlah hal itu.

Omong-omong, saat bekerja dengan penyeleksi, seperti halnya pekerjaan apa pun yang terkait dengan tata letak tata letak, akan sangat nyaman menggunakan elemen tampilan halaman. Jika Anda belum mengetahui hal-hal seperti Opera Dragonfly, Firebug dan webspectors secara umum, maka tanpa berlebihan Anda perlu segera membaca artikel pada link di atas! Dan siapa pun yang pernah menggunakan hal serupa, silakan ikuti saya.

Kelas semu

Berbeda dengan kelas, kelas semu tidak perlu ditentukan dalam markup HTML, melainkan dihitung oleh browser itu sendiri; Kami memiliki 4 kelas semu statis dan 3 kelas semu dinamis, tidak termasuk CSS 3, lebih lanjut tentang itu menjelang akhir. Yang statis termasuk (:first-child, :link, :visited, :lang()):

Pewaris langsung (tingkat pertama)

Tingkat ketiga

Pewaris langsung (tingkat pertama)

Tingkat kedua

Pewaris langsung (tingkat pertama)

Hasil:

Tentu saja, Anda dapat menggabungkan penyeleksi sesuai keinginan, misalnya:

Div>span p:anak pertama (warna: hijau;) /*akan berfungsi jika p adalah anak pertama dari induknya dan berada di dalam tag span yang merupakan turunan langsung dari tag div */

Nama kelas semu yang disajikan di atas berbicara sendiri tentang anak pertama - anak pertama.

Dua kelas semu statis berikut hanya berlaku untuk tag hyperlink (:link, :visited), keduanya menerapkan properti CSS bergantung pada apakah tautan ini pengguna tertentu atau tidak:

A: tautan (warna: biru;) /* mengatur warna biru untuk link yang belum dikunjungi, dan secara default digarisbawahi */ a:dikunjungi (warna: hijau; dekorasi teks: tidak ada;) /* link yang dikunjungi akan memiliki teks berwarna merah, hilangkan garis bawah */

Pseudo-class:lang() digunakan untuk menentukan gaya yang berbeda tergantung pada bahasanya. Bahasa yang digunakan untuk menerapkan desain ditunjukkan dalam tanda kurung. Ini dapat digunakan, misalnya, untuk mengatur gaya yang berbeda tanda kutip dalam kutipan:

T:lang(de) (kutipan: "\201E" "\201C";) /* kutipan untuk bahasa Jerman */ q:lang(en) (kutipan: "\201C" "\201D";) /* kutipan untuk bahasa inggris */ q:lang(ru) (kutipan: "\00AB" "\00BB";) /* kutipan untuk bahasa Rusia */

Ini mungkin satu-satunya dari semuanya jenis yang mungkin penyeleksi yang belum pernah saya gunakan.

Kelas semu dinamis

Kelas semu dinamis adalah :aktif, :hover, :fokus. Kelas semu dinamis dipicu oleh tindakan tertentu pada halaman, mereka berfungsi untuk semua tag, dan bukan hanya untuk tautan, seperti yang dipikirkan dan bahkan diklaim banyak orang di blog mereka! Mari pertimbangkan penerapannya:

P:aktif (latar belakang: merah;) /* gaya yang akan diterapkan pada tag ketika Anda mengkliknya (klik mouse) */ masukan:fokus (lebar: 400px;) /* gaya yang akan diterapkan ke elemen yang saat ini memiliki fokus (berfungsi, misalnya, untuk bidang input teks: textarea, input). DI DALAM dalam hal ini setelah pemfokusan, lebar input akan menjadi sama dengan 400 piksel, nyaman digunakan efek yang indah Perluas bidang dengan mengklik. */ div:hover (latar belakang: hijau;) /* Dipicu ketika kursor melayang di atas suatu elemen, terutama digunakan untuk menciptakan efek indah ketika mengarahkan kursor ke tautan. */

Terapkan gaya ini pada contoh kami di atas dan Anda akan melihatnya sendiri.

Penyeleksi yang berdekatan

Penyeleksi yang berdekatan adalah tetangga terdekat di bawah kode, bukan anak! Pemilih yang sangat nyaman:

teks dalam paragraf div pertama

teks dalam paragraf LUAR div

teks dalam paragraf div kedua

teks dalam rentang

sekali lagi paragraf berada di luar div

Hasil:

Menyeleksi penyeleksi yang berdekatan

Selector berdekatan yang digeneralisasi bertindak persis seperti selector berdekatan biasa, hanya saja propertinya berlaku tidak hanya pada tetangga pertama di bawah, namun untuk semua tetangga tertentu di bawah:


teks dalam diva

ayat

ayat

ayat


teks dalam rentang

ayat

ayat


paragraf di diva

paragraf di diva


teks dalam rentang

ayat

Hasil:

Pemilih atribut

Pemilih atribut memungkinkan kita mengakses tag yang memiliki atribut yang kita perlukan, atau bahkan nilai tertentu:

P (properti) /* berlaku untuk semua tag p yang memiliki atribut align */ p (properti) /* dimana nilai atribut align berada di tengah */ p (properti) /* dimana nilai atribut align dimulai dari tengah */ p (properti) /* dimana nilai atribut align berisi center */ p (properti) /* dimana situs dapat antara lain dipisahkan dengan spasi () */ p (properti) /* dimana nilai atribut class hanya terdiri dari atau diawali dengan kata site, diikuti tanda hubung dan sisa nilai ( atau ) */ p (properti) /* dimana nilai atribut align diakhiri dengan center */

Kelas semu CSS 3

Anda telah mengenal semua penyeleksi utama dan ini sudah cukup bagi Anda dalam beberapa hari pertama. Namun, di CSS 3, banyak pseudo-class baru yang muncul, sekarang kita tidak hanya dapat mengambil anak pertama, tetapi juga anak lainnya, kita dapat beralih dari yang sebaliknya, mengambil bukan anak pertama, tetapi anak terakhir, dan seterusnya. dan sebagainya. Semua ini sangat nyaman dan praktis, kecuali Anda mungkin mengalami masalah dengan versi IE yang lebih lama. Mari kumpulkan semua kekuatan kita dan telusuri semua penyeleksi yang tersisa, sehingga nantinya Anda dapat mengingatnya saat membuat tata letak Anda sendiri.

:anak terakhir – analog dengan:anak pertama, tetapi tidak mengambil anak pertama, melainkan anak terakhir.

:only-child – akan berfungsi jika elemen (tag) adalah satu-satunya anak.

:only-of-type - akan berfungsi jika elemen (tag) adalah satu-satunya anak dari tipenya.

:nth-child() – mengacu pada anak berdasarkan nama mereka nomor seri, Anda dapat mengakses semua nomor genap atau ganjil. Misalnya:


ayat

ayat

ayat


teks dalam rentang

ayat

ayat

ayat

ayat

ayat

ayat

Hasil:

:nth-last-child – cara kerjanya sama seperti yang sebelumnya, namun laporannya dimulai dari akhir.

:first-of-type – anak pertama dari tipenya dalam induk langsung.

:tipe terakhir – anak terakhir dari jenisnya dalam induk langsungnya.

:empty – akan berfungsi untuk tag yang tidak berisi satu karakter pun (tanpa teks).

:not() – membuat pengecualian untuk elemen yang diberikan. Contoh:


paragraf dengan daftar kelas


ayat

ayat


paragraf dengan daftar kelas

Hasil:

Mengelola bidang, formulir, tombol radio, dan kotak centang di CSS

:enabled - berlaku untuk elemen antarmuka yang dapat diakses seperti formulir, tombol, sakelar, dll. Secara default, semua elemen antarmuka dapat diakses.

:disabled - berlaku untuk elemen antarmuka yang dinonaktifkan seperti tombol, formulir, dan sebagainya. Elemen antarmuka dinonaktifkan jika Anda menambahkan atribut nonaktif ke dalamnya dalam HTML atau dinonaktifkan='disabled' di XHTML.

:dicentang – berlaku untuk elemen antarmuka seperti radio dan kotak centang ketika berada dalam posisi aktif.

Elemen semu

Elemen semu, mirip dengan kelas semu, dihitung secara otomatis oleh browser; kita tidak perlu mengkhawatirkan hal ini. Agar tidak membingungkan elemen semu dengan kelas semu dalam spesifikasi CSS 3, diputuskan untuk menggunakan titik dua ganda, bukan titik tunggal, seperti yang terjadi di CSS 2. Oleh karena itu, di Internet Anda dapat menemukan semu -elemen dengan titik dua tunggal dan titik dua ganda - keduanya merupakan opsi yang benar. Namun, untuk kompatibilitas yang lebih baik dengan IE, disarankan untuk menggunakan satu titik dua.

:first-line – baris pertama di dalam blok atau elemen tabel.

:huruf pertama – huruf pertama di dalam elemen blok.

Intinya: sekarang Anda tahu dan dapat menggunakan kekuatan penuh dari cascading style sheet, tetapi ini tidak berarti Anda harus segera terburu-buru membuat tata letak situs web menggunakan banyak penyeleksi, kelas semu, dan elemen semu seperti yang telah Anda pelajari hari ini. Saya telah membuat daftar semuanya alat yang mungkin, dan Anda harus memilih hanya yang paling penting untuk diri Anda sendiri.

Manfaat mengoptimalkan HTML dengan CSS

Salah satu inti dari semua hal di atas adalah untuk menjauh dari penggunaan atribut class dan id yang ada di mana-mana dalam HTML, sehingga meletakkan segalanya di pundak style sheet yang hebat.

File gaya eksternal, seperti eksternal File Javascript di-cache dengan sempurna, yang berarti bahwa ketika Anda mengunjungi halaman mana pun di situs Anda untuk pertama kalinya, browser pengguna mengingat file-file ini dan tidak mengunduhnya lagi, tidak seperti halaman situs itu sendiri, yaitu markup HTML, gambar, dan teks Anda, yang browser mengunduh lagi dan lagi. Hal yang sama berlaku untuk mesin pencari, mereka sama sekali tidak peduli dengan Anda. file eksternal, namun mereka tidak peduli dengan volume dan konten markup HTML Anda. Mesin pencari Anda harus memindai seluruh struktur halaman dan kepentingan terbaik Anda adalah membantu mereka dalam hal ini, memfokuskan upaya mereka pada konten, dan bukan pada dinding markup rumit yang terdiri dari sekumpulan kelas dan pengidentifikasi, atau lebih buruk lagi - Penangan acara Javascript dan gaya CSS tepat di atribut tag (dan ini masih terjadi).

Anda dapat berdebat dengan saya, kata mereka, kita dapat memaksa browser klien untuk mengunduh semua file yang terhubung, gambar ke dalam lingkungan lokalnya, menyimpan cache seluruh halaman, dan seterusnya. Dengan latar belakang seperti itu, hal sepele seperti itu benar-benar hilang, tetapi dengan satu atau lain cara, dengan mengurangi markup HTML sebanyak mungkin, Anda hanya menang, tanpa kehilangan apa pun kecuali kemungkinan kebiasaan.

Untuk meringkas: berkat optimasi dan singkatan HTML kami memiliki keuntungan yang sangat kecil dalam kecepatan memuat situs dan SEO ( optimasi mesin pencari), serta kode yang lebih bersih.

Pemilih CSS adalah salah satu fitur utama bahasa CSS. Selector memungkinkan Anda mengakses sekelompok elemen atau hanya salah satunya.

Selector di CSS

Selector digunakan untuk memberi tahu browser elemen mana yang akan menerapkan gaya yang dijelaskan dalam kurung kurawal.

P( gaya… )

Dalam hal ini, pemilihnya adalah tag p – paragraf. Aturan ini akan menambahkan gaya ke semua paragraf di halaman web.

Apa saja jenis penyeleksi CSS?

Pemilih tag - yang paling sederhana. Hal ini telah ditunjukkan dalam sebuah contoh. Untuk menulisnya di css, Anda perlu menulis nama tag tanpa tanda kurung siku. Gaya akan diterapkan ke semua elemen dengan tag tersebut.
table() – gaya untuk semua tabel
li() – gaya untuk semua item daftar
a() – gaya untuk semua tautan

Kelas gaya– Anda dapat melampirkan kelas gaya ke elemen apa pun di halaman web. Bahkan untuk satu huruf. Kemudian di file css Anda dapat mengakses elemen ini dengan menulis gaya Anda sendiri untuknya. Untuk melakukan ini, Anda perlu memberi titik dan menulis nama kelas gaya setelahnya. Contoh:
.about() – aturan akan berlaku untuk semua elemen yang memiliki atribut class = "about".
.down() – aturan akan berlaku untuk semua elemen yang memiliki atribut class = "down".
.float() – aturan akan berlaku untuk semua elemen yang memiliki atribut class = "float"

Seperti yang Anda lihat, hal utama adalah menyampaikan maksudnya. Kelas gaya dapat diikat ke elemen dalam jumlah tidak terbatas. Sebuah elemen dapat ditugaskan ke beberapa kelas.

Pengidentifikasi– jenis pemilih lainnya. Satu pengidentifikasi hanya dapat ditetapkan ke satu elemen. Itu tidak boleh memiliki dua pengidentifikasi, dan id yang terkait dengan elemen ini tidak dapat didaftarkan di tempat lain.

Ini diatur seperti ini:

Ayat

Artinya, sama seperti sebuah kelas, hanya atributnya saja yang digunakan pengenal kata apa pun digunakan sebagai maknanya.

Untuk mengakses elemen dengan pengidentifikasi melalui css, Anda perlu menulis nilai id dan meletakkan hash di depannya.

#pertama( ukuran font: 22px )

Kami beralih ke paragraf dengan identitas = pertama. Gaya hanya akan diterapkan padanya. Untuk paragraf lainnya, ukuran font tidak akan berubah.

Kelas semu

Ada satu jenis pemilih yang menarik di CSS: kelas semu. Artinya, kelas yang dimiliki elemen secara default dan tidak perlu ditentukan tambahan. Beberapa di antaranya hanya berfungsi untuk tautan, sementara beberapa lainnya dapat diterapkan ke semua elemen. Bagaimanapun, kelas semu CSS sangat memudahkan pekerjaan pengembang web.

Kelas semu adalah kelas gaya suatu elemen yang sebenarnya tidak kita definisikan sendiri, melainkan hanya ada dengan sendirinya. Misalnya, melihat kode ini di html:

Ayat

Anda pasti bisa mengatakan bahwa paragraf ini mempunyai kelas khusus, karena tertulis di sana. Tetapi kelas semu tidak perlu dituliskan elemennya secara default, dan inilah keuntungannya dalam kasus ini. Selanjutnya, mari kita lihat yang paling populer.

Untuk tautan

Untuk kolom masukan dan tautan

:fokus – Gaya diterapkan pada elemen yang menerima fokus masukan.
Faktanya, ada banyak kelas semu baru yang keren untuk bidang masukan, tetapi semuanya baru CSS3, dan pada artikel kali ini saya hanya ingin membahas yang paling sederhana saja. Pasti akan ada artikel tentang selector CSS3 kedepannya.

Untuk semua elemen

  1. :hover – gaya diterapkan saat mengarahkan kursor ke suatu elemen
  2. :first-child – pilih elemen anak pertama
  3. :anak terakhir – elemen anak terakhir
  4. :nth-child() – Di dalam tanda kurung dituliskan angka atau rumus yang menentukan elemen mana yang akan dipilih.
  5. :first-of-type, :last-of-type, :nth-of-type() – bekerja hampir sama dengan pseudo-class sebelumnya. Satu-satunya perbedaan adalah jenis elemen diperhitungkan di sini. Perbedaannya dapat dirasakan pada contoh berikut:
    li:first-child – item daftar pertama akan dipilih, tetapi hanya jika elemen li berada di urutan pertama dalam blok induk. Jika ada tag lain sebelumnya, tidak ada yang akan dipilih.
  6. li:first-of-type – item daftar pertama dari semua yang ada di induknya akan dipilih. Tidak masalah di mana lokasinya dalam kode. Saya harap perbedaannya jelas.
  7. :nth-last-child – cara kerjanya mirip dengan :nth-child, namun dihitung dari elemen terakhir, bukan elemen pertama.
  8. :nth-last-of-type – mirip dengan :nth-last-child, tetapi dengan mempertimbangkan tipe elemennya.

Ini tidak semuanya kelas semu, tetapi yang paling populer dan diperlukan. Sebenarnya semua kelas semu ditandai dengan cara yang sama di css, dipisahkan dengan titik dua. Selain itu, Anda dapat menggabungkan penyeleksi dan mendapatkan peluang menarik:
a:visited:active – gaya untuk tautan yang sudah dikunjungi yang diklik.
div:first-child:hover – gaya untuk semua blok pertama di induknya yang dilayangkan.

Seperti yang Anda lihat, penyeleksi seperti itu memberikan peluang besar dalam hal elemen gaya. Gunakan mereka dan Anda dapat dengan mudah menjangkau elemen apa pun.

Menggabungkan penyeleksi

Satu hal lagi aturan penting, yang perlu Anda ketahui. Pemilih kelas gaya dapat ditulis tanpa memisahkannya satu sama lain. Misalnya:
.class1.class2 – akan memilih elemen yang memiliki kedua kelas ini.
.class1.class3.class8 – akan memilih elemen yang dilampirkan ketiga kelas gaya.

Penyeleksi bersarang

Jika kita memisahkan penyeleksi satu sama lain dengan spasi, kita dapat mencapai elemen yang kita perlukan. Contoh:
table td – memilih semua sel dalam tabel
ul li a – memilih semua tautan yang terletak di item daftar (dan item daftar, pada gilirannya, terletak di daftar itu sendiri)
.class1 p – akan memilih semua paragraf dengan atribut class = “class1”
.class2 p span – akan memilih semua isi tag yang terdapat dalam paragraf dengan kelas class2.

Anda dapat membuat sarang dan menggabungkan dengan cara ini sebanyak yang Anda suka. Contoh:
#header .logo span:huruf pertama()– memilih huruf pertama dalam rentang logo, yang terletak di header
.class1.class2:hover() – akan menentukan gaya hover untuk elemen yang memiliki kedua kelas gaya.

Pemilih anak

Jika Anda perlu menata elemen induknya LANGSUNG anak perusahaan, maka Anda perlu menulisnya seperti ini:
ul > li() – akan memilih item daftar yang bersarang langsung di dalamnya, dan tidak terletak di tag lain
p > a() – hanya akan memilih tautan dalam paragraf yang terletak langsung di dalamnya, dan tidak disarangkan dalam tag lain (yang, pada gilirannya, sudah dirangkai dalam paragraf)
Contoh:

Jika Anda menulis pemilih seperti ini p > a , apakah gaya akan diterapkan pada tautan pada contoh di atas? Tidak, karena masih bersarang di tag lain, artinya bukan turunan langsung.

Penyeleksi yang berdekatan

Hal terakhir yang akan kita lihat hari ini. Jika Anda menulisnya di css seperti ini:
.class1 + .class4() , maka pemilih ini akan memilih elemen dengan atribut class = "class4" , dan elemen ini harus muncul dalam kode HTML segera setelah elemen dengan kelas class1. Hanya dalam hal ini semuanya akan berhasil. Mari kita lihat contohnya lagi:

Akankah pemilih di atas (.class1 + .class4()) berfungsi? Tidak, karena unsur-unsurnya tidak bersebelahan. Di antara mereka adalah tag gambar. Jika Anda menghapusnya, maka semuanya akan berfungsi.

Jadi, kita telah melihat penyeleksi paling dasar dan paling sederhana. Tentunya pengetahuan ini akan cukup bagi Anda untuk menyelesaikan 95% masalah. Pada artikel selanjutnya saya akan menjelaskan beberapa selector CSS yang lebih spesifik.

Pemilih atribut

Memungkinkan Anda memilih elemen tertentu tanpa menetapkan kelas gaya atau pengidentifikasi padanya.

Pemilih atribut adalah penyeleksi yang atribut atau atribut dengan nilai ditulis dalam tanda kurung siku. Beberapa contoh untuk memperjelas:
* – memilih semua elemen yang memiliki atribut href dengan nilai berapa pun.
input – memilih semua elemen input yang memiliki atribut nonaktif (semua kolom dinonaktifkan).
input – memilih semua kolom yang tipenya adalah password , yaitu kolom untuk memasukkan kata sandi.
img – memilih gambar yang memiliki atribut src = "/logo.png" yang disetel.

Seperti yang Anda lihat, menulis penyeleksi atribut CSS tidaklah sulit. Perbedaan terpenting mereka adalah tanda kurung siku, di mana hanya atribut atau atribut dengan nilai persisnya yang ditulis. Namun fungsi penyeleksi ini tidak berakhir di situ.

Pemilih atribut css tingkat lanjut

Semua penyeleksi berikut peka huruf besar-kecil.
Cari di awal baris
div – memilih semua div yang memiliki kelas gaya yang dimulai dengan "block" . Jadi, misalnya, blok berikut akan dipilih: "block-head", "block-3", "blocknote" . Yang penting ada kata kunci di awal maknanya.

Menemukan di akhir baris
a – memilih semua tautan yang alamatnya berakhiran .rar . Jadi, jika Anda dapat mengunduh sesuatu di situs web Anda, Anda dapat menambahkan ikon di samping semua tautan ke file yang diarsipkan.

Menemukan substring di mana pun dalam suatu nilai
span – memilih semua tag rentang, yang nama kelasnya berisi “seni” di mana pun dalam namanya. Jadi, misalnya, rentang dengan kelas berikut akan dipilih: party, clart, art-1.

Cari awalan
p – akan memilih paragraf dengan kelas gaya yang memiliki nama yang sama persis dengan “pertama” atau yang berisi awalan pertama yang mengawali nama kelas.

Menemukan kata-kata dalam makna
masukan– akan memilih semua elemen masukan yang nilai atribut pengidentifikasinya berisi kata text . Berbeda dengan mencari substring di mana pun, yang harus dimasukkan adalah kata, bukan substringnya.

Dua opsi terakhir jarang digunakan dan kemungkinan besar tidak akan sering berguna bagi Anda, tetapi untuk perkembangan umum Anda masih bisa mengetahuinya.

Apa kegunaan penyeleksi atribut?

Dengan menggunakan penyeleksi seperti itu, Anda dapat memilih banyak elemen HTML tanpa memberinya kelas gaya. Dalam beberapa kasus, dengan menggunakan metode ini Anda dapat mempersingkat kode dan menyederhanakan pekerjaan Anda. Misalnya diatas saya berikan contoh dengan icon untuk arsip. Di sini ide lain muncul. Misalnya, di situs web Anda, Anda sering menautkan ke satu sumber lain (misalnya Wikipedia) dan Anda ingin menampilkan ikon khusus di sebelah tautan ke Wikipedia, yang seharusnya tidak dimiliki tautan lain.

Anda dapat menerapkannya seperti ini:

A (aturan css)

Sebenarnya, masih banyak lagi cara untuk menggunakan penyeleksi atribut. Mereka sampai batas tertentu dapat menyederhanakan pekerjaan jika diperlukan. Gunakan css dan berlangganan blog untuk mempelajari lebih lanjut tentang pengembangan web.

Penyeleksi CSS3 dan kelas semu

Tentang penyeleksi css3 baru, yang tidak saya tulis di artikel sebelumnya.

Peningkatan pekerjaan dengan formulir

Ini adalah kelas semu baru. Pada dasarnya semuanya menyangkut kemungkinan-kemungkinan bentuk yang baru.
:enabled – kelas semu akan memilih semua bidang aktif. Artinya, di mana Anda dapat menulis sesuatu atau setidaknya dapat dibaca.
:disabled adalah kebalikan dari kelas semu, memilih semua bidang yang dinonaktifkan. Oleh karena itu, dengan bantuannya Anda dapat menambahkan gaya tambahan bidang seperti itu.
:read-only – pilih semua masukan, yang bersifat hanya baca.
:baca-tulis – memilih semua bidang yang dapat diedit.

Menambahkan gaya dengan mempertimbangkan validitas

Ada juga kelas semu yang sangat menarik yang dapat Anda tetapkan gayanya tergantung pada validitas atau tidak validnya nilai yang dimasukkan. Sebelumnya, ini hanya bisa dilakukan dengan menggunakan JavaScript.
:valid – memilih semua kolom yang nilai yang dimasukkan memenuhi persyaratan. Persyaratannya sendiri biasanya ditentukan menggunakan atribut pattern. Mungkin juga tergantung pada jenis bidang. Misalnya, bidang tempat alamat ditulis e-mail, akan dianggap tidak valid jika tidak ada @ pada nilai yang dimasukkan.
:invalid – oleh karena itu, memilih semua bidang yang tidak valid yang nilainya tidak sesuai dengan yang diharapkan. Misalnya, Anda bisa mengatur warna teks di bidang seperti ini menjadi merah:

Masukan: tidak valid (warna: merah; )

Sekarang jika kita menulis nilai yang salah di kolom, teks berubah menjadi merah. Oleh karena itu, Anda juga dapat menggunakan gambar tanda centang dan tanda silang untuk menunjukkan kepada pengguna apakah dia mengisi semuanya dengan benar.

Gaya untuk bidang yang wajib diisi

Saya juga ingin mencatat bahwa kelas semu yang sesuai telah muncul untuk bidang yang wajib diisi.
:wajib – akan memilih elemen yang memiliki atribut ini. Artinya, semua kolom wajib diisi.
:opsional – kelas lawan, akan memilih bidang yang opsional.

Kelas semu: tidak

:not adalah sejenis anti-selektor yang memungkinkan Anda menentukan elemen mana JANGAN GUNAKAN gaya. Beberapa contoh.
a:not(:last-child)() – akan memilih semua link pada halaman kecuali yang terakhir.
.nav:not(li)() – akan memilih semua elemen dengan kelas nav, tetapi ini tidak boleh berupa item daftar (li).
#article p:not(.special:first-child) – akan memilih semua paragraf di blok artikel kecuali paragraf pertama dengan kelas khusus.

Seperti yang Anda lihat, di tanda kurung sebuah kondisi ditulis untuk kelas semu: apa sebenarnya yang perlu dikecualikan dari pilihan. Anda juga dapat menulis pemilih kombinasi dalam kondisi, sehingga Anda dapat memilih dan mengecualikan apa pun yang Anda inginkan.

Inilah pseudo-class yang terkadang dibutuhkan, diperlukan tidak hanya secara teori, tetapi juga dalam praktik. Oh ya, Anda juga dapat melanjutkan membuat pemilih setelah :not(). Misalnya:
div:not(#header) .wrap – memilih semua div dengan kelas wrap, kecuali div dengan id="header"

Ini adalah penyeleksi yang diperkenalkan di CSS3.

Prioritas penyeleksi css

Untuk menentukan gaya mana yang diutamakan, gunakan aturan sederhana berikut:
ID adalah pemilih dengan prioritas tertinggi. Jika suatu elemen memiliki kelas gaya dan id , dan keduanya diberi properti yang sama arti yang berbeda, maka gaya yang ditulis untuk pengidentifikasi akan dieksekusi.

Kelas adalah pemilih dengan prioritas lebih tinggi daripada pemilih tag (p, tabel, ul). Kelas semu mempunyai bobot yang sama dengan kelas sederhana. p:first-line lebih diutamakan daripada .firstline karena pemilih kedua hanyalah sebuah kelas, sedangkan yang pertama adalah pemilih tag + kelas semu.

Satu hal lagi aturan yang berguna— semakin spesifik pemilihnya, semakin besar prioritas gayanya. Misalnya, antara isi dan p, paragraf memenangkan pertarungan karena merupakan pemilih yang lebih spesifik daripada isi (karena merupakan keseluruhan halaman, jadi tidak terlalu spesifik). Dan tabel p , pada gilirannya, lebih spesifik dari sekedar p . Secara umum, perhatikan saja aturan-aturan ini.

Intinya

Artikel ini telah membahas hampir semua pemilih CSS. Saya juga ingin menambahkan bahwa jika Anda menggunakan jQuery, maka ia memiliki pemilihnya sendiri, meskipun sangat mirip dengan ini, tetapi ada sedikit perbedaan.

Bahasa deskripsi penampilan dokumen CSS terus berkembang. Seiring berjalannya waktu, tidak hanya kekuatan dan fungsinya yang meningkat, namun juga fleksibilitas dan kemudahan penggunaannya.

Mari kita mulai mencari tahu. Buka buku teks CSS apa pun; setidaknya satu bagian akan dikhususkan untuk jenis penyeleksi. Hal ini tidak mengherankan, karena mereka adalah salah satu yang paling banyak cara yang nyaman manajemen konten halaman. Dengan bantuan mereka, Anda benar-benar dapat berinteraksi dengan elemen HTML apa pun. Saat ini ada 7 jenis penyeleksi:

  • untuk tag;
  • untuk kelas;
  • untuk tanda pengenal;
  • universal;
  • atribut;
  • untuk berinteraksi dengan kelas semu;
  • untuk mengelola elemen semu.

Sintaksnya sederhana. Untuk mempelajari cara menggunakannya, baca saja tentangnya. Opsi mana yang lebih baik untuk dipilih untuk kontrol konten dalam kasus Anda? Mari kita coba mencari tahu.

Pemilih tag

Ini adalah opsi paling sederhana yang tidak memerlukan pengetahuan khusus untuk merekamnya. Untuk mengelola tag, Anda perlu menggunakan namanya. Anggaplah header situs Anda dibungkus dengan tag

. Untuk mengontrolnya di CSS Anda perlu menggunakan pemilih header().

Keuntungan: kemudahan penggunaan, keserbagunaan.

Kekurangan - ketidakhadiran total fleksibilitas. Pada contoh di atas, semua tag header akan dipilih sekaligus. Namun bagaimana jika Anda hanya perlu mengelola satu saja?

Pemilih kelas

Opsi paling umum. Dirancang untuk mengelola tag dengan atribut kelas. Katakanlah Anda memiliki tiga blok dalam kode Anda

, yang masing-masing perlu ditanyakan warna tertentu. Bagaimana cara melakukan ini? Pemilih CSS standar berdasarkan tag tidak akan berfungsi; mereka menunjukkan parameter untuk semua blok sekaligus. Solusinya sederhana. Tetapkan kelas ke elemen. Misalnya, div pertama menerima class=’red’, div kedua menerima class=’blue’, dan div ketiga menerima class=’green’. Sekarang mereka dapat dipilih menggunakan tabel CSS.

Sintaksnya adalah sebagai berikut: kita menunjukkan titik (“.”), setelah itu kita menulis nama kelas. Untuk mengontrol blok pertama, kita menggunakan konstruksi .red. Yang kedua adalah .blue dan seterusnya.

Penting! Disarankan untuk menggunakan nilai yang jelas untuk atribut class. Penggunaan transliterasi (misalnya, krasiviy-blok) atau kombinasi huruf/angka acak (ojfh834871) dianggap sebagai bentuk yang buruk. Anda pasti akan bingung dengan kode tersebut, belum lagi kesulitan yang harus dihadapi oleh mereka yang akan mengerjakan proyek tersebut setelah Anda. Pilihan terbaik- menggunakan beberapa metodologi, seperti BEM.

Keunggulan: fleksibilitas cukup tinggi.

Kekurangan - beberapa elemen dapat memiliki kelas yang sama, yang berarti akan diedit pada waktu yang sama. Masalahnya diselesaikan dengan menggunakan metodologi, serta mewarisi praprosesor. Pastikan untuk menguasai lebih sedikit, sass, atau praprosesor lainnya, mereka akan sangat menyederhanakan pekerjaan Anda.

Pemilih berdasarkan ID

Pendapat perancang tata letak dan pemrogram mengenai opsi ini tidak jelas. Beberapa buku pelajaranCSStidak disarankan untuk digunakan sama sekaliPENGENAL,karena jika digunakan sembarangan dapat menimbulkan masalah pada warisan. Namun, banyak ahli yang secara aktif menempatkannya di seluruh penandaan. Terserah Anda untuk memutuskan. Sintaksnya adalah: simbol hash ("# "), lalu nama bloknya. Misalnya,#merah.

PENGENALberbeda dari kelas dalam beberapa hal. Pertama, tidak mungkin ada dua halaman yang identik.PENGENAL.Mereka ditugaskan nama-nama unik. Kedua, pemilih seperti itu memiliki prioritas lebih tinggi. Artinya, jika Anda memberi sebuah blok sebuah kelasmerahdan tunjukkan dalam tabelCSSmerah dan kemudian berikan padanyaidentitas birudan tentukan warna biru, blok akan berubah menjadi biru.

Keuntungan - Anda dapat mengontrol elemen tertentu tanpa memperhatikan gaya tag dan kelas.

Kekurangan - mudah bingung dalam jumlah banyakPENGENALDankelas.

Penting! Jika Anda menggunakan metodologi BEM (atau analognya),PENGENALSecara umum, Anda tidak membutuhkannya. Teknik tata letak ini melibatkan penggunaan kelas unik, yang jauh lebih nyaman.

Pemilih universal

Sintaks: tanda bintang (“*”) dan kurung kurawal, yaitu *{}.

Digunakan untuk menetapkan atribut tertentu ke semua elemen halaman sekaligus. Kapan ini berguna? Misalnya, jika Anda ingin mengatur properti halamanukuran kotak: kotak perbatasan.Dapat digunakan tidak hanya untuk mengontrol seluruh komponen dokumen, tetapi juga untuk mengontrol semua elemen turunan dari blok tertentu, misalnya.div *().

Keuntungan - dapat dikontrol sejumlah besar elemen secara bersamaan.

Kekurangan - tidak cukup fleksibel. Selain itu, penggunaan pemilih ini dapat memperlambat halaman dalam beberapa kasus.

Berdasarkan atribut

Memungkinkan Anda mengelola elemen dengan atribut tertentu. Misalnya, Anda punya beberapa tag masukan dengan atribut tipe yang berbeda. Salah satunya adalah teks, yang kedua adalah kata sandi, yang ketiga adalah angka. Tentu saja, Anda dapat menetapkan kelas atau ID untuk masing-masing kelas, tetapi hal ini tidak selalu nyaman. Pemilih atribut CSS memungkinkan penentuan nilai untuk tag tertentu dengan presisi maksimum. Misalnya seperti ini:

masukan()

Pemilih atribut ini akan memilih semua input dengan tipe teks.

Alat ini cukup fleksibel; dapat digunakan dengan tag apa pun yang mungkin memiliki atribut. Tapi bukan itu saja! Spesifikasi CSS memungkinkan manipulasi elemen dengan lebih nyaman!

Bayangkan halaman Anda memiliki masukan dengan atribut placeholder = “Masukkan nama” dan masukan placeholder = “Masukkan kata sandi.” Mereka juga dapat dipilih menggunakan pemilih! Konstruksi berikut digunakan untuk ini:

masukan() atau masukan

Pekerjaan yang lebih fleksibel dengan atribut dimungkinkan. Katakanlah Anda memiliki beberapa tag dengan atribut judul yang serupa (misalnya, “Caspian” dan “Caspian”). Untuk memilih keduanya, gunakan pemilih berikut:

CSS akan memilih semua elemen yang judulnya mengandung karakter “Kaspiysk”, yaitu “Kaspiyskiy” dan “Kaspiyskaya”.

Anda juga dapat memilih tag yang atributnya dimulai dengan karakter tertentu:

atau akhiri dengan mereka:

{}.

Keuntungan - fleksibilitas maksimum. Anda dapat memilih elemen halaman apa pun yang ada tanpa mengutak-atik kelas.

Kekurangan - relatif jarang digunakan, hanya dalam kasus tertentu. Banyak desainer tata letak lebih memilih metodologi, karena menentukan kelas bisa lebih mudah daripada mengatur banyak tanda yang sama. Selain itu, penyeleksi ini tidak berfungsi Penjelajah Internet versi 7 dan di bawahnya. Namun, siapa yang membutuhkannya saat ini? Internet lama Penjelajah?

Penyeleksi kelas semu

Kelas semu menunjukkan keadaan suatu elemen. Misalnya, :hover adalah apa yang terjadi pada bagian halaman ketika kursor diarahkan, :visited adalah link yang dikunjungi. Ini juga mencakup elemen seperti:anak pertama dan:anak terakhir.

Jenis pemilih ini aktif digunakan tata letak modern, karena berkat itu Anda dapat membuat halaman tersebut “hidup” tanpa menggunakan JavaScript. Misalnya, Anda ingin memastikan bahwa saat Anda mengarahkan kursor ke tombol dengan kelas btn, warnanya berubah. Untuk melakukan ini kami menggunakan konstruksi berikut:

btn: arahkan kursor (

Warna latar belakang: merah;

Untuk kecantikan, Anda dapat menentukan properti transisi di properti utama tombol ini, misalnya, pada 0,5 detik - dalam hal ini, tombol tidak akan langsung berubah menjadi merah, tetapi selama setengah detik.

Keuntungannya - mereka secara aktif digunakan untuk "menghidupkan kembali" halaman. Mudah digunakan.

Kekurangan - tidak ada. Ini adalah alat yang sangat berguna. Namun, desainer tata letak yang tidak berpengalaman mungkin bingung dengan banyaknya kelas semu. Masalahnya diselesaikan dengan belajar dan berlatih.

Pemilih elemen semu

"Elemen semu" adalah bagian halaman yang tidak ada dalam HTML, namun masih dapat dimanipulasi. Tidak mengerti apa-apa? Semuanya lebih sederhana dari yang terlihat. Misalnya, Anda ingin membuat huruf pertama dalam satu baris menjadi besar dan berwarna merah, sedangkan teks lainnya dibiarkan kecil dan hitam. Tentu saja, Anda dapat melampirkan surat ini dalam rentang dengan kelas tertentu, tapi ini panjang dan membosankan. Jauh lebih mudah untuk memilih seluruh paragraf dan menggunakan elemen semu::huruf pertama. Ini memungkinkan Anda mengontrol tampilan huruf pertama.

Ada cukup banyak elemen semu. Kecil kemungkinannya untuk mencantumkannya dalam satu artikel. Anda dapat menemukan informasi yang relevan di mesin pencari favorit Anda.

Keuntungannya - memungkinkan Anda menyesuaikan tampilan halaman secara fleksibel.

Kekurangan - pemula sering kali bingung tentangnya. Banyak penyeleksi jenis ini hanya berfungsi di browser tertentu.

Mari kita simpulkan

Selector adalah sarana yang ampuh untuk mengendalikan aliran dokumen. Berkat itu, Anda benar-benar dapat memilih setiap komponen halaman (bahkan yang hanya ada secara kondisional). Pastikan untuk mempelajari semua pilihan Anda atau setidaknya menuliskannya. Ini sangat penting jika Anda sedang berkreasi halaman yang rumit Dengan desain modern dan sejumlah besar elemen interaktif.

Halo semuanya, Khabrians.
Saat ini, CSS ada di sekitar kita, dan bahkan programmer kecil pun harus memahaminya.
Yang paling banyak digunakan adalah #id dan .class lama yang bagus, keduanya familiar bagi semua orang yang pernah bekerja dengan CSS setidaknya sekali.
Tentu saja, dunia Selector tidak terbatas pada hal ini. Saya telah bekerja dengan CSS selama beberapa waktu dan saya ingin membagikan sebanyak mungkin penyeleksi yang berguna. Semuanya menentukan gaya suatu objek tertentu.

Pemilih CSS

Saya menjelaskan banyak penyeleksi yang berlaku pada contoh di atas.

.kelas
(Mis. .main) Pemilih ini menggabungkan semua elemen dengan kelas “utama”. Ia lahir sejak lama dan terlibat aktif dalam pembangunan.
#pengenal
(Mis. #Block_Form) Pemilih ini menggabungkan elemen dengan id = “Block_Form” Apa perbedaan antara .class dan #id - dan perbedaannya dapat dipahami dengan contoh: fakta bahwa PASSPORT NUMBER = id, LAST NAME = class. Penting juga bahwa - Pengidentifikasi (id) dapat dipanggil dari skrip menggunakan fungsi GetElementById, tidak seperti kelas.
Kelas dapat digunakan berkali-kali, tetapi pengidentifikasinya harus unik.
*
Memilih, menggabungkan semua elemen
(Mis. *) ( warna latar:kuning; ))
elemen
(Exp. p) Menggabungkan semua elemen tag p.
elemen
(Mis. div,p) Menggabungkan semua elemen div dan semua elemen p
.
Penyeleksi serupa juga dapat dimasukkan dalam grup ini:
elemen elemen
(Mis. div p) Memilih semua elemen p di dalam div.
elemen> elemen
(Mis. div>p) Menyatukan semua p yang induknya adalah div.
elemen+elemen
(Mis. div+p) Menggabungkan semua p yang terletak tepat setelah div.
(Mis.) Menggabungkan semua elemen dengan atribut sasaran
(Mis.) Menggabungkan semua elemen dengan target="_blank" yang diberikan
(Mis.) Menggabungkan semua elemen yang mengandung “Apple” di judulnya
(Mis.) Menggabungkan semua elemen dengan atribut kelas yang dimulai dengan “top”

Semua tag ditulis tanpa "<>".

Selanjutnya, menurut saya sangat penting untuk menampilkan penyeleksi ini, karena mereka sangat penting dan sangat sering digunakan dalam menyelesaikan banyak masalah - mulai dari animasi sederhana dengan kursor melayang, desain tautan, gambar, dll., hingga tujuan yang lebih global untuk mengurangi kode secara umum.

Mereka juga disebut kelas Pseudo:
:link
(Contoh a:link) Menyatukan semua link yang belum pernah dikunjungi (Contoh a:visited) Menyatukan semua link yang pernah dikunjungi pengguna
:aktif
(Mis. a:aktif) Kelas semu:aktif mendefinisikan gaya untuk tautan aktif. Tautan aktif menjadi saat Anda menekannya.
: melayang
(Mis. a:hover) Saat Anda menggerakkan mouse, gaya tautan dapat berubah
:fokus
(Mis. input:fokus) Mengubah gaya saat memfokuskan. dalam praktiknya sering digunakan untuk menyorot bidang formulir saat memfokuskannya
:huruf pertama
(Mis. p:huruf pertama) Mendefinisikan gaya untuk karakter pertama dalam teks elemen
: baris pertama
(Mis. p:first-line) Menentukan gaya baris pertama. Saya menggunakannya untuk mengubah warna teks, warna latar belakang dan font, tetapi seperti yang ditunjukkan oleh orang Habrumel, fungsinya tidak terbatas pada ini
: anak pertama
(Exp. p:first-child) Untuk menjelaskan secara sederhana, ini menerapkan gaya pada anak pertama dari induknya. Pada contoh, jika p adalah elemen pertama dari induknya
Berikutnya adalah dua kelas yang sangat menarik:
:sebelum
(Kel. p:sebelum)
:setelah
(Exp. p:setelah)
Mereka digunakan ketika perlu untuk ditampilkan konten yang dibutuhkan sebelum atau sesudah konten elemen yang ditambahkannya. Bekerja bersama dengan konten: properti. Saya juga menggunakannya sebagai elemen tambahan alih-alih div, dalam hal ini Anda perlu menulis konten:"";. Hal lain yang perlu diingat adalah ketika menambahkan:sebelum elemen blok, nilai properti tampilan hanya dapat berupa: blok, sebaris, tidak ada, item daftar. Semua nilai lainnya akan diperlakukan sebagai blok. Saat menambahkan:sebelum ke elemen sebaris, tampilan dibatasi pada nilai sebaris dan tidak ada. Semua yang lain akan diperlakukan sebagai inline.
:sebelum mewarisi gaya dari elemen yang ditambahkannya.
:lang(bahasa)
(Exp. p:lang(it)) Cukup sederhana, namun terkadang elemen yang diperlukan- misalnya: Mendefinisikan gaya setiap p dengan atribut lang yang nilainya dimulai dengan “it”
Pemilih CSS3

Penyeleksi ini sangat menarik, karena hanya sedikit orang yang menggunakannya dan, tentu saja, saya ingin mengetahui cara menggunakannya, jadi saya akan memberikan contoh. Juga dalam kelompok penyeleksi di IE8 yang telah lama menderita dan sebelumnya, DOCTYPE harus dideklarasikan.

elemen1~elemen2
(Exp. p~ul)
p~ul ( background:red; ) Menetapkan warna latar belakang untuk semua elemen ul yang mendahului p dengan induk yang sama. Secara kasar, dalam contoh ini, latar belakang akan berwarna merah hanya untuk “daftar” yang muncul setelah induk dari tag p.
Elemen div.
  • Barang
  • Barang
  • Barang
- dalam hal ini tidak akan terjadi apa-apa, tapi masuk
  • Barang
  • Barang
  • Barang

dan dalam hal ini, bidang Item akan memiliki warna belakang - merah.
(Contoh a) Mengikuti contoh, tentukan gaya setiap a yang nilai elemen srcnya dimulai dengan “https”. Berikut contoh lainnya:
barang1
barang2
barang3

Barang4


Sederhananya, pemilih ini memungkinkan untuk mengatur warna latar belakang untuk semua elemen div, yang memiliki nilai atribut kelas yang dimulai dengan “test” - yaitu item3, item4.
(Mis. a) Memilih setiap tag yang nilai atribut SRC-nya diakhiri dengan ".PDF. Dan inilah contoh visual lainnya:
Barang1
Barang2
Barang3

Barang4


Pada contoh ini penggunaan selector ini akan terlihat sangat jelas yaitu Item1 (karena kelas diakhiri dengan _test) dan item3 akan dicat ulang dengan warna Merah.
(Mis. a) Memilih setiap tag yang nilai atribut SRC-nya berisi substring "w3schools".
barang1
barang2
barang3

Barang4


Dalam contoh ini, hasilnya adalah baris item1, item3, item4 yang diarsir.
: tipe pertama
(Exp. p:first-of-type) Menentukan aturan penataan gaya untuk elemen pertama dalam daftar turunan dari induknya.
: tipe terakhir
(Contoh p:last-of-type) Masing-masing menetapkan aturan gaya untuk elemen terakhir dalam daftar turunan dari induknya.
: hanya tipe
(Exp. p:only-of-type) Tapi yang satu ini berlaku untuk elemen anak dari tipe yang ditentukan hanya jika itu adalah satu-satunya dari induknya. Sama seperti: tipe pertama: tipe terakhir atau: tipe ke-n (1): tipe ke-terakhir (1).
:anak tunggal
(Exp. p:only-child) Elemen seperti itu diterapkan, seperti dalam contoh, ke elemen anak p, hanya jika elemen tersebut adalah satu-satunya dari elemen induknya.

Dua bilangan berikut juga dapat digunakan dengan baik untuk barisan tertentu - ganjil (ganjil), genap (genap) atau bilangan (1,2,3... atau ekspresi 2n+1) yang diberikan dalam (X):

:anak ke-n(n)
(Mis. p:anak ke-n(2)) Untuk masing-masing

Yang merupakan anak kedua dari orang tuanya.

:anak-terakhir-n(n)
(Exp. p:nth-last-child(2)) Arti yang sama dengan yang sebelumnya, hanya saja penghitungannya bukan dari elemen pertama, melainkan dari elemen terakhir.
: tipe ke-n (n)
(Mis. p:nth-of-type(2)) Digunakan untuk menambahkan gaya ke elemen tipe tertentu berdasarkan penomoran. Misalnya, untuk gambar di dekat judul, gunakan nilai Float: -kiri atau –kanan.
: tipe terakhir ke-n (n)
(Exp. p:nth-last-of-type(2)) Sama seperti sebelumnya, namun penghitungan dilakukan bukan dari elemen pertama, melainkan dari elemen terakhir.
: anak terakhir
(Contoh: p:last-child) Selector ini menentukan gaya elemen terakhir dari induknya.

Juga patut disoroti:

:akar
(Contoh:root) Pemilih ini mendefinisikan elemen root dokumen, dengan kata lain - .
:kosong
(Exp. p:empty) Mendefinisikan elemen kosong - tanpa elemen turunan, teks, atau spasi apa pun.
:target
(Contoh #berita:target) Secara kasar, ini adalah definisi berdasarkan elemen target. Pada contoh, definisi id saat ini adalah elemen #news. Digunakan untuk URL.
:diaktifkan
(Mis. input:enabled) Berlaku pada formulir sebagai akses ke elemen formulir yang dapat diakses (bukan dinonaktifkan - dinonaktifkan), maafkan tautologinya.
:dengan disabilitas
(Mis. input:disabled) Dengan kata lain, ini berlaku untuk gaya elemen formulir yang dinonaktifkan.
: diperiksa
(Mis. input: dicentang) Kelas semu ini berlaku untuk elemen antarmuka seperti kotak centang dan radio, tentu saja jika diaktifkan.
:tidak(pemilih)
(Mis. :not(p)) Dalam contoh ini, gaya diterapkan ke semua elemen yang bukan p. Pemilih dapat berupa kelas semu, tag, pengidentifikasi, kelas, dan pemilih atribut.
  • Sergei Savenkov

    semacam ulasan "pendek"... seolah-olah mereka sedang terburu-buru di suatu tempat