Rumah > hujung hadapan web > tutorial css > @Supports Selector ()

@Supports Selector ()

Lisa Kudrow
Lepaskan: 2025-03-18 12:06:10
asal
414 orang telah melayarinya

Keupayaan peraturan @supports untuk memeriksa sokongan pemilih adalah mengejutkan teguh! Walaupun sering digunakan untuk menguji property: value , fungsi selector() memanjangkan keupayaannya untuk menilai sokongan pemilih. Ini dilakukan dengan hanya meletakkan pemilih dalam kurungan:

 @Supports Selector (: nth-child (1 of .foo)) {
  / * Gaya yang digunakan jika pemilih disokong */
}
Salin selepas log masuk

The :nth-child(n of .foo) pemilih, "argumen senarai pemilih" yang serasi dengan :nth-child , berfungsi sebagai contoh yang baik. Pada masa ini, hanya Safari yang menyokong pemilih khusus ini.

Pertimbangkan senario di mana anda perlu gaya senarai dengan pemisah dan jalur zebra. Sebaik -baiknya, anda akan menggunakan pemilih seperti ini untuk mencapai jalur zebra sambil mengabaikan pemisah:

 li: nth-child (ganjil .list-item) {
  Latar Belakang: Lightgoldenrodyellow;
}
Salin selepas log masuk

Walau bagaimanapun, disebabkan sokongan penyemak imbas terhad, anda boleh menggunakan @supports untuk menggunakan gaya ini:

 @Supports Selector (: nth-child (1 of .foo)) {
  li {
    Padding: 0.25em;
  }
  li: nth-child (ganjil .list-item) {
    Latar Belakang: Lightgoldenrodyellow;
  }
  li.separator {
    Senarai gaya: Tiada;
    Margin: 0.25em 0;
  }
}
@Supports bukan pemilih (: nth-child (1 of .foo)) {
  li.separator {
    Ketinggian: 1px;
    Senarai gaya: Tiada;
    Border-top: 1px berwarna ungu;
    Margin: 0.25em 0;
  }
}
Salin selepas log masuk

Ini memberikan gaya sandaran untuk pelayar yang tidak mempunyai sokongan untuk pemilih lanjutan. Sintaks yang lebih baik, yang berpotensi menggunakan @when dan @else , dapat memudahkan ini:

 / * Sintaks masa depan hipotetikal */
@When menyokong (pemilih (: nth-child (1 of .foo))) {
  / * Gaya untuk penyemak imbas */
} @else {
  / * Gaya Fallback */
}
Salin selepas log masuk

API JavaScript juga wujud untuk menguji sokongan pemilih:

 Css.supports ("pemilih (: nth-child (1 of .foo))")
Salin selepas log masuk

Kaedah ini kembali true dalam safari dan false dalam krom (pada masa penulisan).

Walaupun peraturan @supports berkuasa, bilangan pemilih CSS dengan sokongan silang penyemak imbas yang tidak konsisten, dan bilangan kes penggunaan yang memerlukan @supports untuk pemilih tersebut, agak kecil. Ramai pemilih yang bermasalah sebelum ini, seperti ::marker dan pemilih atribut yang tidak sensitif, kini menikmati sokongan yang luas. Pemilih seperti :fullscreen atau :-webkit-full-screen mungkin menawarkan aplikasi yang menarik dan berguna kerana kekurangan sokongan mereka yang unik dalam safari iOS.

@Supports Selector ()

Atas ialah kandungan terperinci @Supports Selector (). Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan