Cara menggunakan css not attribute

The :not() CSS pseudo-class represents elements that do not match a list of selectors. Since it prevents specific items from being selected, it is known as the negation pseudo-class.

Show

The :not() pseudo-class has a number of that you should be aware of before using it.

The :not() pseudo-class requires a comma-separated list of one or more selectors as its argument. The list must not contain another negation selector or a pseudo-element.

:not( <complex-selector-list> )

There are several unusual effects and outcomes when using :not() that you should keep in mind when using it:

Jangan ngaku jago CSS kalo belum tahu yang satu ini. Apakah kamu sudah pernah belajar CSS? Iyaa kamuuu.. atau anda sudah menguasai dasar-dasar selector pada CSS seperti

li a {
text-decoration: none;
}
9,
a { color: red; }
ul { margin-left: 0; }
0, and
a { color: red; }
ul { margin-left: 0; }
1 selectors? Pada perkembangannya CSS selalu mengalami perubahan fitur pada setiap versinya (yang terbaru adalah CSS3). Hingga sampai saat ini banyak penggunaan CSS selector yang masih awam bagi sebagian orang. Harus anda ketahui bahwa CSS3 sebagian besar hanya di support oleh web browser modern.

1. *

* {
 margin: 0;
 padding: 0;
}

Mari kita mulai dengan yang paling mudah untuk pemula, sebelum melanjutkan ke tahap penggunaan CSS selector yang lebih rumit.

Simbol bintang (*) akan fokus pada semua elemen pada halaman. Banyak pengembang menggunakan trik ini untuk memberi nilai nol pada

a { color: red; }
ul { margin-left: 0; }
2 dan
a { color: red; }
ul { margin-left: 0; }
3untuk setiap id maupun class. Meskipun ini cara yang cepat, namun ini bukanlah hal yang tepat. Saya tidak merekomendasikan anda menggunakan ini dalam kode CSS anda. Ini akan membuat file CSS semakin berat jika diakses pada browser. Tapi jika diperlukan ada baiknya anda gunakan cara seperti berikut.

Sebuah

a { color: red; }
ul { margin-left: 0; }
4 bisa juga digunakan dengan child selectors.

#container * {
 border: 1px solid black;
}

Simbol bintang (*) juga bisa anda gunakan untuk memberi nilai dalam sebuah id atau class. Pada contoh di atas berarti, pada semua element yang berada di dalam id container akan memiliki border (garis pinggir) berwarna hitam.

Lihat Demo

Untuk CSS di atas kompatibel dengan browser berikut:

  • IE6+
  • Firefox
  • Chrome
  • Safari
  • Opera

2. #X

#container {
 width: 960px;
 margin: auto;
}

Awalan simbol hash / pagar (#) memungkinkan kita untuk memberi style pada

li a {
text-decoration: none;
}
9. Ini adalah cara yang mudah pada penggunaan yang paling umum, namun berhati-hati ketika menggunakan selektor
li a {
text-decoration: none;
}
9.

Tanyakan kepada diri anda sendiri: apakah anda memang perlu untuk menerapkan

li a {
text-decoration: none;
}
9 pada elemen ini?

Selector

li a {
text-decoration: none;
}
9 sesungguhnya bersifat kaku dan tidak memungkinkan untuk digunakan kembali pada element yang lainnya. Jika memungkinkan, lebih baik gunakan class untuk mendifinisikan element yang ingin anda beri nilai.

Lihat Demo

Untuk CSS di atas kompatibel dengan browser berikut:

  • IE6+
  • Firefox
  • Chrome
  • Safari
  • Opera

3. .X

.error {
color: red;
}

Ini adalah sebuah

a { color: red; }
ul { margin-left: 0; }
0 selector. Perbedaan antara
li a {
text-decoration: none;
}
9 dan
a { color: red; }
ul { margin-left: 0; }
0 adalah ID hanya bisa digunakan untuk satu objek saja, diawali dengan tanda pagar (#). Class adalah style dari CSS yang bisa digunakan untuk beberapa elemen, dengan adanya class ini memungkinkan anda untuk merubah beberapa objek pada html dengan settingan yang sama, dengan menuliskan satu perintah saja, class diawali dengan tanda titik (.).

Lihat Demo

Untuk CSS di atas kompatibel dengan browser berikut:

  • IE6+
  • Firefox
  • Chrome
  • Safari
  • Opera

4. X Y

li a {
text-decoration: none;
}

Berikutnya adalah

a { color: red; }
ul { margin-left: 0; }
1 selector. Bila Anda perlu untuk lebih spesifik dengan selector anda, Anda dapat menggunakan selector ini. Sebagai contoh jika anda menargetkan semua tag anchor, Anda hanya perlu menargetkan sebuah selector yang berada dalam suatu selector induknya.

Pro-tip - Jika anda membuat syntax CSS seperti

a:link { color: red; }
a:visted { color: purple; }
3, berarti anda sedang melakukan hal yang salah. Bertanya pada diri anda sendiri, apakah hal itu benar-benar diperlukan.

Lihat Demo

Untuk CSS di atas kompatibel dengan browser berikut:

  • IE6+
  • Firefox
  • Chrome
  • Safari
  • Opera

5. X

a { color: red; }
ul { margin-left: 0; }

Bagaimana jika Anda ingin menargetkan pada suatu elemen tertentu? Misalkan saja pada link (a). Hal ini seharusnya jangan dibuat sulit, anda tidak perlu lagi menggunakan selector seperti

li a {
text-decoration: none;
}
9 atau
a { color: red; }
ul { margin-left: 0; }
0. Jika Anda perlu untuk menargetkan semua daftar unordered, gunakan
a:link { color: red; }
a:visted { color: purple; }
6 atau jika perlu menargetkan link, gunakan
a:link { color: red; }
a:visted { color: purple; }
7.

Lihat Demo

Untuk CSS di atas kompatibel dengan browser berikut:

  • IE6+
  • Firefox
  • Chrome
  • Safari
  • Opera
a:link { color: red; }
a:visted { color: purple; }

Jadi di sini, kami menggunakan

a:link { color: red; }
a:visted { color: purple; }
8 pseudo-class untuk menargetkan semua tag yang belum diklik.

Atau, kami juga menggunakan

a:link { color: red; }
a:visted { color: purple; }
9 pseudo class, memungkinkan kita untuk menerapkan styling khusus untuk hanya tag anchor pada halaman yang telah diklik atau telah dikunjungi.

Lihat Demo

Untuk CSS di atas kompatibel dengan browser berikut:

  • IE7+
  • Firefox
  • Chrome
  • Safari
  • Opera

7. X + Y

ul + p {
 color: red;
}

Hal ini disebut sebagai pemilih yang berdekatan. Ini akan memilih suatu unsur yang segera didahului oleh elemen pendahulunya.

Lihat Demo

Untuk CSS di atas kompatibel dengan browser berikut:

  • IE7+
  • Firefox
  • Chrome
  • Safari
  • Opera

8. X > Y

div#container > ul {
border: 1px solid black;
}

Perbedaan antara standar

ul + p {
 color: red;
}
0 dan
ul + p {
 color: red;
}
1 akan menargetkan ke cabang selector secara langsung. Sebagai contoh, perhatikan markup berikut.

 <div id="container">
    <ul>
       <li> List Item
         <ul>
            <li> Child </li>
         </ul>
       </li>
       <li> List Item </li>
       <li> List Item </li>
       <li> List Item </li>
    </ul>
 </div>

Sebuah pemilih dari

ul + p {
 color: red;
}
2 hanya akan menargetkan
ul + p {
 color: red;
}
3 yang menjadi cabang (anak-anak) dari
ul + p {
 color: red;
}
4 dengan
li a {
text-decoration: none;
}
9 dari
ul + p {
 color: red;
}
6. Ini tidak akan menargetkan, misalnya,
ul + p {
 color: red;
}
3 yang merupakan cabang (anak) dari
ul + p {
 color: red;
}
8 pertama.

Untuk alasan ini, ada manfaat kinerja dalam menggunakan combinator cabang (anak). Bahkan, dianjurkan ketika bekerja dengan JavaScript berbasis CSS selector.

Lihat Demo

Untuk CSS di atas kompatibel dengan browser berikut:

  • IE7+
  • Firefox
  • Chrome
  • Safari
  • Opera

9. X ~ Y

#container * {
 border: 1px solid black;
}
0

Combinator ini mirip dengan

ul + p {
 color: red;
}
9, jika (
div#container > ul {
border: 1px solid black;
}
0) hanya akan memilih elemen pertama yang didahului oleh nama parameter yang di pilih, yang satu ini lebih umum. Ini (x~y) akan memilih semua elemen y setelah x, mengacu pada contoh kita di atas, setiap elemen p, selama mereka mengikuti ul a. Gimana? Sudah mulai mual melihat CSS yang membuat kepala anda jadi pusing? Jadi, belajarnya pelan-pelan saja ya..

Lihat Demo

Untuk CSS di atas kompatibel dengan browser berikut:

  • IE7+
  • Firefox
  • Chrome
  • Safari
  • Opera

10. X[title]

#container * {
 border: 1px solid black;
}
1

Disebut sebagai attributes selector, dalam contoh kita di atas, ini akan memilih tag anchor yang memiliki atribut

div#container > ul {
border: 1px solid black;
}
1 . Tag yang bukan anchor
div#container > ul {
border: 1px solid black;
}
1, tidak akan menerima styling tertentu. Tapi, bagaimana jika Anda perlu untuk lebih spesifik?

Lihat Demo

Untuk CSS di atas kompatibel dengan browser berikut:

  • IE7+
  • Firefox
  • Chrome
  • Safari
  • Opera

11. X[href="foo"]

#container * {
 border: 1px solid black;
}
2

Selector di atas akan memberikan suatu style ke semua tag anchor yang di link ke http://net.tutsplus.com; warna tulisannya akan berubah menjadi warna hijau. Namun, tag anchor lainnya tidak akan terpengaruh.

Perhatikan bahwa kita sedang membungkus sebuah nilai di dalam tanda kutip (“…”). Jangan lupa juga untuk melakukan hal ini ketika menggunakan JavaScript CSS selector. Jika memungkinkan, selalu menggunakan selector CSS3 pada metode yang lain.

Ini bekerja dengan baik, meskipun agak kaku. Link ini memang langsung mengarah ke Nettuts +, tapi bagaimana jika yang dituju adalah alamat nettuts.com dengan url penuh (http://net.tutsplus.com/x/x/x) ? Dalam kasus-kasus ini kita dapat menggunakan sedikit ekspresi sintaks biasa.

Lihat Demo

Untuk CSS di atas kompatibel dengan browser berikut:

  • IE7+
  • Firefox
  • Chrome
  • Safari
  • Opera

12. X[href*="nettuts"]

#container * {
 border: 1px solid black;
}
3

Bintang menunjuk bahwa suatu nilai harus muncul di suatu tempat di nilai atribut itu. Dengan begitu, ini meliputi setiap link yang berisikan tulisan “tuts” akan berwarna hijau, contoh tulisan yang berisikan tulisan “tuts” adalah nettuts.com, net.tutsplus.com, dan tutsplus.com.

Perlu diingat bahwa ini adalah pernyataan yang luas. Bagaimana jika tag anchor dikaitkan dengan beberapa situs non-Envato dengan tuts string dalam url? Bila Anda perlu untuk lebih spesifik, gunakan

div#container > ul {
border: 1px solid black;
}
3 dan
div#container > ul {
border: 1px solid black;
}
4, untuk referensi awal dan akhir dari masing-masing string.

Lihat Demo

Untuk CSS di atas kompatibel dengan browser berikut:

  • IE7+
  • Firefox
  • Chrome
  • Safari
  • Opera

13. X[href^="http"]

#container * {
 border: 1px solid black;
}
4

Pernah bertanya-tanya bagaimana cara yang dilakukan beberapa situs agar mampu menampilkan icon kecil di sebelah link eksternal? Saya yakin Anda pernah melihat ini sebelumnya. Hal ini berfungsi sebagai penanda bahwa link akan mengarahkan anda ke situs web yang berbeda.

Ini paling sering digunakan dalam ekspresi reguler untuk menunjuk awal string. Jika kita ingin menargetkan semua tag anchor yang memiliki href yang dimulai dengan http, kita bisa menggunakan pemilih mirip dengan selector di atas.

Perhatikan bahwa kita tidak mencari

div#container > ul {
border: 1px solid black;
}
5 itu tidak perlu, dan tidak memperhitungkan url yang dimulai dengan
div#container > ul {
border: 1px solid black;
}
6.

Sekarang, bagaimana jika kita ingin membatasi style untuk beberapa anchor yang memiliki link? katakanlah, sebuah foto? Dalam kasus tersebut, mari kita mencari akhir dari string.

Lihat Demo

Untuk CSS di atas kompatibel dengan browser berikut:

  • IE7+
  • Firefox
  • Chrome
  • Safari
  • Opera

14. X[href$=".jpg"]

#container * {
 border: 1px solid black;
}
5

Sekali lagi, kita menggunakan simbol ekspresi reguler, $, untuk merujuk ke akhir string. Dalam hal ini, kita cari semua anchor yang menggunakan gambar - atau setidaknya url yang berakhir dengan

div#container > ul {
border: 1px solid black;
}
7. Perlu diingat bahwa ini pasti tidak akan bekerja untuk
div#container > ul {
border: 1px solid black;
}
8 dan
div#container > ul {
border: 1px solid black;
}
9.

Lihat Demo

Untuk CSS di atas kompatibel dengan browser berikut:

  • IE7+
  • Firefox
  • Chrome
  • Safari
  • Opera

15. X[data-*="foo"]

#container * {
 border: 1px solid black;
}
6

Lihat kembali ke nomor delapan. Bagaimana kita mengimbangi berbagai jenis gambar:

 <div id="container">
    <ul>
       <li> List Item
         <ul>
            <li> Child </li>
         </ul>
       </li>
       <li> List Item </li>
       <li> List Item </li>
       <li> List Item </li>
    </ul>
 </div>
0,
 <div id="container">
    <ul>
       <li> List Item
         <ul>
            <li> Child </li>
         </ul>
       </li>
       <li> List Item </li>
       <li> List Item </li>
       <li> List Item </li>
    </ul>
 </div>
1,
 <div id="container">
    <ul>
       <li> List Item
         <ul>
            <li> Child </li>
         </ul>
       </li>
       <li> List Item </li>
       <li> List Item </li>
       <li> List Item </li>
    </ul>
 </div>
2,
 <div id="container">
    <ul>
       <li> List Item
         <ul>
            <li> Child </li>
         </ul>
       </li>
       <li> List Item </li>
       <li> List Item </li>
       <li> List Item </li>
    </ul>
 </div>
3? Nah, kita bisa membuat beberapa penyeleksi, seperti:

#container * {
 border: 1px solid black;
}
7

Tapi, itu tidak efisien. Solusi lain yang mungkin adalah dengan menggunakan atribut khusus. Bagaimana jika kita menambahkan sendiri atribut

 <div id="container">
    <ul>
       <li> List Item
         <ul>
            <li> Child </li>
         </ul>
       </li>
       <li> List Item </li>
       <li> List Item </li>
       <li> List Item </li>
    </ul>
 </div>
4 kami untuk setiap anchor yang memiliki link ke gambar?

#container * {
 border: 1px solid black;
}
8

Kemudian, dengan mengaitkannya di tempat, kita bisa menggunakan selector atribut standar untuk menargetkan anchor khusus.

#container * {
 border: 1px solid black;
}
6
Lihat Demo

Untuk CSS di atas kompatibel dengan browser berikut:

  • IE7+
  • Firefox
  • Chrome
  • Safari
  • Opera

16. X[foo~="bar"]

#container {
 width: 960px;
 margin: auto;
}
0

Berikut adalah salah satu khusus yang akan kesan teman-teman Anda. Tidak terlalu banyak orang tahu tentang trik ini. Simbol ini

 <div id="container">
    <ul>
       <li> List Item
         <ul>
            <li> Child </li>
         </ul>
       </li>
       <li> List Item </li>
       <li> List Item </li>
       <li> List Item </li>
    </ul>
 </div>
5 memungkinkan kita untuk menargetkan atribut yang memiliki daftar spasi yang dipisahkan nilai.

Mulai dengan atribut khusus dari nomor lima belas di atas, kita bisa membuat

 <div id="container">
    <ul>
       <li> List Item
         <ul>
            <li> Child </li>
         </ul>
       </li>
       <li> List Item </li>
       <li> List Item </li>
       <li> List Item </li>
    </ul>
 </div>
6 atribut, yang dapat menerima daftar dipisahkan dengan spasi dari apa pun yang kita butuhkan untuk membuat catatan. Dalam hal ini, kita akan membuat catatan dari link eksternal dan link ke gambar - hanya untuk contoh.

#container {
 width: 960px;
 margin: auto;
}
1

Dengan markup di tempat, sekarang kita dapat menargetkan setiap tag yang memiliki salah satu dari nilai-nilai tersebut, dengan menggunakan trik ~ atribut selector.

#container {
 width: 960px;
 margin: auto;
}
2

Cukup bagus ya?

Lihat Demo

Untuk CSS di atas kompatibel dengan browser berikut:

  • IE7+
  • Firefox
  • Chrome
  • Safari
  • Opera

17. X:checked

#container {
 width: 960px;
 margin: auto;
}
3

Pseudo class ini hanya akan menargetkan pengguna elemen interface yang telah diperiksa - seperti radio button atau check box. Sangat sederhana bukan?

Lihat Demo

Untuk CSS di atas kompatibel dengan browser berikut:

  • IE9+
  • Firefox
  • Chrome
  • Safari
  • Opera

18. X:after

Setiap hari, tampaknya, orang yang menemukan cara-cara baru dan kreatif untuk menggunakannya secara efektif. Mereka hanya menghasilkan konten di seluruh elemen yang dipilih.

Banyak yang diperkenalkan pertama kali ke kelas-kelas ini ketika mereka mencari clear-fix hack.

#container {
 width: 960px;
 margin: auto;
}
4

Hack ini menggunakan

 <div id="container">
    <ul>
       <li> List Item
         <ul>
            <li> Child </li>
         </ul>
       </li>
       <li> List Item </li>
       <li> List Item </li>
       <li> List Item </li>
    </ul>
 </div>
7 pseudo class untuk menambahkan spasi setelah elemen, dan kemudian menghapusnya. Ini adalah trik yang sangat baik untuk anda miliki, terutama dalam kasus-kasus ketika
 <div id="container">
    <ul>
       <li> List Item
         <ul>
            <li> Child </li>
         </ul>
       </li>
       <li> List Item </li>
       <li> List Item </li>
       <li> List Item </li>
    </ul>
 </div>
8 Metode ini tidak mungkin bekerja.

Untuk penggunaan kreatif lain ini, lihat tips cepat yang saya buat untuk menciptakan efek shadow dengan CSS3. .

Menurut spesifikasi CSS3 Selectors, Anda harus secara teknis menggunakan sintaks elemen semu dari dua titik dua

 <div id="container">
    <ul>
       <li> List Item
         <ul>
            <li> Child </li>
         </ul>
       </li>
       <li> List Item </li>
       <li> List Item </li>
       <li> List Item </li>
    </ul>
 </div>
9. Namun, untuk tetap kompatibel, pengguna akan menerima penggunaan tanda titik dua tunggal juga. Bahkan, pada titik ini, itu lebih cerdas untuk menggunakan versi titik dua tunggal dalam proyek Anda.

Untuk CSS di atas kompatibel dengan browser berikut:

  • IE8+
  • Firefox
  • Chrome
  • Safari
  • Opera

19. X:hover

#container {
 width: 960px;
 margin: auto;
}
5

Oh, ayolah.. masak yang beginian belum kenal? Anda pasti tahu yang satu ini. Istilah resmi untuk ini adalah pengguna class action semu. Kedengarannya membingungkan, tetapi sebenarnya tidak. Apakah anda pernah menerapkan style tertentu ketika cursor mouse berada di atas sebuah elemen? Ini akan memberikan efek atau style yang berbeda ketika sebelum dilewati cursor!

Perlu diingat bahwa versi lama dari Internet Explorer tidak merespon ketika

#container * {
 border: 1px solid black;
}
00 pseudo-class jika diterapkan pada selector apa pun, selain sebuah tag anchor.

Anda akan sering menggunakan selector ini saat mengajukan permintaan. Misalnya,

#container * {
 border: 1px solid black;
}
01 untuk tag anchor, ketika cursor melewati sebuah elemen.

#container {
 width: 960px;
 margin: auto;
}
6

Pro-tip -

#container * {
 border: 1px solid black;
}
02 terlihat lebih baik daripada
#container * {
 border: 1px solid black;
}
03.

Untuk CSS di atas kompatibel dengan browser berikut:

  • IE6+ (In IE6, :hover must be applied to an anchor element)
  • Firefox
  • Chrome
  • Safari
  • Opera

20. X:not(selector)

#container {
 width: 960px;
 margin: auto;
}
7

#container * {
 border: 1px solid black;
}
04 pseudo class sangatlah bermanfaat. Katakanlah saya ingin memilih semua div, kecuali untuk satu yang memiliki
li a {
text-decoration: none;
}
9
ul + p {
 color: red;
}
6. Selector di atas akan bekerja dengan sempurna.

Atau, jika saya ingin memilih setiap elemen tunggal (tidak disarankan) kecuali untuk tag paragraf, kita bisa lakukan:

#container {
 width: 960px;
 margin: auto;
}
8
Lihat Demo

Untuk CSS di atas kompatibel dengan browser berikut:

  • IE9+
  • Firefox
  • Chrome
  • Safari
  • Opera

21. X::pseudoElement

#container {
 width: 960px;
 margin: auto;
}
9

Kita dapat menggunakan pseudo element (ditunjuk oleh

 <div id="container">
    <ul>
       <li> List Item
         <ul>
            <li> Child </li>
         </ul>
       </li>
       <li> List Item </li>
       <li> List Item </li>
       <li> List Item </li>
    </ul>
 </div>
9) fragmen gaya elemen, seperti baris pertama, atau huruf pertama. Perlu diingat bahwa ini harus diterapkan untuk memblokir elemen-elemen tingkat untuk berlaku.

Sebuah pseudo-elemen terdiri dari dua titik dua

 <div id="container">
    <ul>
       <li> List Item
         <ul>
            <li> Child </li>
         </ul>
       </li>
       <li> List Item </li>
       <li> List Item </li>
       <li> List Item </li>
    </ul>
 </div>
9

Target the First Letter of a Paragraph

.error {
color: red;
}
0

Potongan ini adalah sebuah abstraksi yang akan menemukan semua paragraf pada halaman, dan kemudian sub-target hanya huruf pertama dari elemen tersebut.

Hal ini paling sering digunakan untuk membuat style seperti koran untuk kata-kata pertama dari sebuah artikel.

Target the First Line of a Paragraph

#container {
 width: 960px;
 margin: auto;
}
9

Demikian pula,

 <div id="container">
    <ul>
       <li> List Item
         <ul>
            <li> Child </li>
         </ul>
       </li>
       <li> List Item </li>
       <li> List Item </li>
       <li> List Item </li>
    </ul>
 </div>
9 link ini pertama elemen semu akan, seperti yang diharapkan, gaya baris pertama dari elemen saja.

"Untuk kompatibilitas dengan style sheet yang ada, agen pengguna juga harus menerima sebelumnya notasi satu-usus untuk pseudo-elemen diperkenalkan di tingkat CSS 1 dan 2 (yaitu :first-line, :first-letter, :before dan :after). Kompatibilitas ini tidak diperbolehkan untuk pseudo-elemen baru yang diperkenalkan dalam spesifikasi ini. "- Sumber

Lihat Demo

Untuk CSS di atas kompatibel dengan browser berikut:

  • IE6+
  • Firefox
  • Chrome
  • Safari
  • Opera

22. X:nth-child(n)

.error {
color: red;
}
2

Apakah anda pernah mengalami ketika kita tidak punya cara untuk menargetkan elemen tertentu dalam tumpukan? Sebuah

#container * {
 border: 1px solid black;
}
10 pseoudo class dapat memecahkan masalah itu!

Harap dicatat bahwa

#container * {
 border: 1px solid black;
}
10 menerima integer sebagai parameter, namun, hal ini tidak berbasis nol. Jika Anda ingin menargetkan daftar item yang kedua, menggunakan
#container * {
 border: 1px solid black;
}
12.

Kita bahkan dapat menggunakan ini untuk memilih satu set variabel anak-anak. Sebagai contoh, kita bisa melakukan

#container * {
 border: 1px solid black;
}
13 untuk memilih setiap item daftar keempat.

Lihat Demo

Untuk CSS di atas kompatibel dengan browser berikut:

  • IE9+
  • Firefox 3.5+
  • Chrome
  • Safari

23. X:nth-last-child(n)

.error {
color: red;
}
3

Bagaimana jika Anda memiliki daftar besar item dalam

ul + p {
 color: red;
}
3, dan hanya diperlukan untuk mengakses, katakanlah, ketiga item terakhir? Daripada melakukan
#container * {
 border: 1px solid black;
}
15, Anda malah bisa menggunakan
#container * {
 border: 1px solid black;
}
10 pseudo class.

Teknik ini bekerja hampir identik dari nomor enam belas di atas, bagaimanapun, perbedaan adalah bahwa hal itu dimulai pada akhir koleksi, dan bekerja jalan kembali.

Lihat Demo

Untuk CSS di atas kompatibel dengan browser berikut:

  • IE9+
  • Firefox 3.5+
  • Chrome
  • Safari
  • Opera

24. X:nth-of-type(n)

.error {
color: red;
}
4

Akan ada saat-saat dimana anda harus memilih sebuah

#container * {
 border: 1px solid black;
}
17, Anda perlu memilih sesuai dengan
#container * {
 border: 1px solid black;
}
18 elemen.

Bayangkan mark-up yang berisi lima daftar unordered. Jika Anda ingin menerapkan style hanya untuk

ul + p {
 color: red;
}
3 ketiga, dan tidak memiliki
li a {
text-decoration: none;
}
9 yang unik untuk menghubungkan ke dalamnya, Anda bisa menggunakan
#container * {
 border: 1px solid black;
}
21 pseudo class. Dalam potongan di atas, hanya
ul + p {
 color: red;
}
3 ketiga akan memiliki perbatasan di sekitarnya.

Lihat Demo

Untuk CSS di atas kompatibel dengan browser berikut:

  • IE9+
  • Firefox 3.5+
  • Chrome
  • Safari

25. X:nth-last-of-type(n)

.error {
color: red;
}
5

Kemudian, untuk tetap konsisten, kita juga bisa menggunakan

#container * {
 border: 1px solid black;
}
23 akan dimulai pada akhir daftar selector, dan bekerja dengan cara kami untuk kembali menargetkan elemen yang diinginkan.

Untuk CSS di atas kompatibel dengan browser berikut:

  • IE9+
  • Firefox 3.5+
  • Chrome
  • Safari
  • Opera

26. X:first-child

.error {
color: red;
}
6

Struktural pseudo-class ini memungkinkan kita untuk menargetkan child pertama dari elemen parent. Anda akan sering menggunakan ini untuk menghapus batas dari daftar item pertama dan terakhir.

Sebagai contoh, katakanlah Anda memiliki daftar baris, dan masing-masing memiliki

#container * {
 border: 1px solid black;
}
24 dan
#container * {
 border: 1px solid black;
}
01. Nah, dengan pengaturan itu, pertama dan terakhir item dalam set yang akan terlihat agak ganjil.

Banyak web desainer menerapkan kelas

#container * {
 border: 1px solid black;
}
26 dan
#container * {
 border: 1px solid black;
}
27 untuk mengkompensasi hal ini. Sebaliknya, Anda dapat menggunakan pseudo class tersebut.

Lihat Demo

Untuk CSS di atas kompatibel dengan browser berikut:

  • IE7+
  • Firefox
  • Chrome
  • Safari
  • Opera

27. X:last-child

.error {
color: red;
}
7

Ini adalah kebalikan dari

#container * {
 border: 1px solid black;
}
28,
#container * {
 border: 1px solid black;
}
29 menargetkan item terakhir dari parent elemen.

Contoh

Mari kita membangun sebuah contoh sederhana untuk menunjukkan salah satu kemungkinan penggunaan kelas-kelas ini. Kami akan membuat daftar item yang bergaya.

Markup

.error {
color: red;
}
8

Tidak ada yang istimewa di sini; hanya daftar sederhana.

CSS

.error {
color: red;
}
9

Styling ini akan merubah background, menghapus browser-default padding pada

ul + p {
 color: red;
}
3, dan menerapkan border pada
ul + p {
 color: red;
}
8 untuk menegaskan style dari
ul + p {
 color: red;
}
8

Cara menggunakan css not attribute
Cara menggunakan css not attribute
Cara menggunakan css not attribute

Untuk menambah kedalaman daftar Anda, menerapkan

#container * {
 border: 1px solid black;
}
01 pada setiap li yang satu atau dua warna lebih gelap dari warna latar belakang
ul + p {
 color: red;
}
8 itu. Selanjutnya, menerapkan
#container * {
 border: 1px solid black;
}
24 dengan beberapa nuansa ringan.

Satu-satunya masalah, seperti yang ditunjukkan pada gambar di atas, adalah bahwa perbatasan akan diterapkan ke dasar paling atas dan daftar unordered - yang tampak ganjil. Mari kita gunakan

#container * {
 border: 1px solid black;
}
36 dan
#container * {
 border: 1px solid black;
}
37 pseudo class untuk memperbaiki hal ini.

li a {
text-decoration: none;
}
0
Cara menggunakan css not attribute
Cara menggunakan css not attribute
Cara menggunakan css not attribute

Haha, ini dapat memecahkan masalah...!

Lihat Demo

Untuk CSS di atas kompatibel dengan browser berikut:

  • IE9+
  • Firefox
  • Chrome
  • Safari
  • Opera

Ehemm - IE8 supported

#container * {
 border: 1px solid black;
}
36, tapi tidak untuk
#container * {
 border: 1px solid black;
}
37.

28. X:only-child

li a {
text-decoration: none;
}
1

Anda mungkin tidak akan menemukan diri Anda menggunakan

#container * {
 border: 1px solid black;
}
40 pseudo class terlalu sering. Meskipun demikian, mungkin saja sewaktu-waktu Anda akan membutuhkannya.

Hal ini memungkinkan Anda untuk menargetkan elemen-elemen yang merupakan anak tunggal dari induknya. Sebagai contoh, referensi potongan di atas, hanya paragraf yang merupakan

#container * {
 border: 1px solid black;
}
40 dari div tersebut akan berwarna, merah.

Mari kita asumsikan dengan markup berikut.

li a {
text-decoration: none;
}
2

Dalam hal ini, paragraf

ul + p {
 color: red;
}
4 kedua akan tidak ditargetkan; hanya
ul + p {
 color: red;
}
4 pertama. Segera setelah Anda menerapkan lebih dari satu child ke elemen,
#container * {
 border: 1px solid black;
}
40 pseudo class akan berhenti berlaku.

Lihat Demo

Untuk CSS di atas kompatibel dengan browser berikut:

  • IE9+
  • Firefox
  • Chrome
  • Safari
  • Opera

29. X:only-of-type

li a {
text-decoration: none;
}
3

Struktural pseudo class ini dapat digunakan dalam beberapa cara pintar. Ini akan menargetkan elemen-elemen yang tidak memiliki saudara kandung dalam wadah induknya. Sebagai contoh, mari kita menargetkan semua

ul + p {
 color: red;
}
3, yang hanya memiliki daftar item tunggal.

Pertama, tanyakan pada diri Anda bagaimana Anda akan menyelesaikan tugas ini? Anda bisa melakukan

#container * {
 border: 1px solid black;
}
46, tapi, ini akan menargetkan semua item daftar. Satu-satunya solusi adalah dengan menggunakan
#container * {
 border: 1px solid black;
}
47.

li a {
text-decoration: none;
}
4
Lihat Demo

Untuk CSS di atas kompatibel dengan browser berikut:

  • IE9+
  • Firefox 3.5+
  • Chrome
  • Safari
  • Opera

30. X:first-of-type

#container * {
 border: 1px solid black;
}
48 pseudo class memungkinkan Anda untuk memilih saudara pertama dari jenisnya.

Pengujian

Untuk lebih memahami hal ini, mari kita tes. Salin mark-up berikut ke dalam kode editor Anda:

li a {
text-decoration: none;
}
5

Sekarang, tanpa membaca lebih lanjut, cobalah untuk mencari tahu bagaimana untuk menargetkan hanya "List Item 2". Bila Anda telah menemukan jawabannya (atau menyerah), baca terus.

Solusi Pertama

Ada berbagai cara untuk memecahkan tes ini. Kami akan meninjau beberapa dari kode. Mari kita mulai dengan menggunakan

#container * {
 border: 1px solid black;
}
49.

li a {
text-decoration: none;
}
6

Potongan ini pada dasarnya mengatakan, "menemukan daftar unordered pertama pada halaman, kemudian menemukan hanya anak-anak langsung, yaitu daftar item. Berikutnya, filter yang turun ke hanya daftar item kedua dalam set itu.

Solusi ke Dua

Pilihan lain adalah dengan menggunakan pemilih yang berdekatan.

li a {
text-decoration: none;
}
7

Dalam skenario ini, kita menemukan bahwa

ul + p {
 color: red;
}
3 segera melanjutkan tag
#container * {
 border: 1px solid black;
}
51, dan kemudian menemukan last child dari elemen.

Solusi ke Tiga

Kita bisa jengkel atau main-main seperti yang kita inginkan dengan pemilih ini.

li a {
text-decoration: none;
}
8

Kali ini, kita ambil

ul + p {
 color: red;
}
3 pertama pada halaman, dan kemudian menemukan item daftar pertama, tapi mulai dari bawah! :)

Lihat Demo

Untuk CSS di atas kompatibel dengan browser berikut:

  • IE9+
  • Firefox 3.5+
  • Chrome
  • Safari
  • Opera

Kesimpulan

Jika Anda masih menggunakan browser lama, seperti Internet Explorer 6, Anda masih harus berhati-hati saat menggunakan selector yang lebih baru. Tapi, jangan biarkan hal itu menghalangi Anda untuk belajar. Anda akan merasakan kerugian besar untuk diri sendiri. Pastikan untuk merujuk di sini untuk melihat daftar kompatibilitas browser yang bisa digunakan. Atau, Anda dapat menggunakan script IE9.js dari Dean Edward yang luar biasa untuk membawa dukungan untuk selector ini untuk browser lama.

Kedua, ketika bekerja dengan JavaScript libraries, seperti jQuery populer, selalu mencoba untuk menggunakan penyeleksi CSS3 asli atas library metode kustom / selector, bila memungkinkan. Itu akan membuat kode Anda lebih cepat.

Terima kasih sudah membaca artikel ini. Semoga bisa menambah ilmu anda untuk menjadi seorang professional web designer!