Saya ingin menargetkan semua tag h pada halaman. Saya tahu Anda bisa melakukannya dengan cara ini ...
h1,
h2,
h3,
h4,
h5,
h6 {
font: 32px/42px trajan-pro-1,trajan-pro-2;
}
tetapi apakah ada cara yang lebih efisien untuk melakukan ini menggunakan penyeleksi CSS tingkat lanjut? misalnya sesuatu seperti:
[att^=h] {
font: 32px/42px trajan-pro-1,trajan-pro-2;
}
(tapi jelas ini tidak berhasil)
css
css-selectors
SparrwHawk
sumber
sumber
h1 a:hover, h2 a:hover, h3 a:hover, h4 a:hover, ...
Jawaban:
Tidak, daftar yang dipisahkan koma adalah yang Anda inginkan dalam kasus ini.
sumber
h1, h2, h3 {}
,.Ini bukan css dasar, tetapi jika Anda menggunakan KURANG ( http://lesscss.org ), Anda dapat melakukan ini menggunakan rekursi:
Sass ( http://sass-lang.com ) akan memungkinkan Anda untuk mengelola ini, tetapi tidak akan mengizinkan rekursi; mereka memiliki
@for
sintaks untuk instance ini:Jika Anda tidak menggunakan bahasa dinamis yang mengkompilasi ke CSS seperti KURANG atau Sass, Anda harus memeriksa salah satu opsi ini. Mereka benar-benar dapat menyederhanakan dan membuat pengembangan CSS Anda lebih dinamis.
sumber
"can" != "should"
. Meski begitu, opsi Sass / LESS memberi Anda ekstensibilitas yang tidak dimiliki oleh vanilla CSS. Pikirkan sesuatu sepertifont-size: (48px / @index)
.scss/sass
dalam proyek mereka, tetapi ingin menghasilkancss
denganscss/sass
mereka dapat menggunakan alat online ini yang disebut sassmeisterJika Anda menggunakan SASS, Anda juga dapat menggunakan mixin ini:
Gunakan seperti ini:
Sunting: Cara favorit pribadi saya untuk melakukan ini dengan secara opsional memperluas pemilih placeholder pada setiap elemen heading.
Lalu saya dapat menargetkan semua pos seperti saya akan menargetkan satu kelas, misalnya:
sumber
!optional
bendera pada perpanjangan itu? Dan sepertinya tidak dapat menemukan apa pun di google ...SCSS + Compass membuat ini mudah, karena kita berbicara tentang pra-prosesor.
Anda dapat mempelajari tentang semua penyeleksi pembantu Kompas di sini :
sumber
Stylus 's pemilih interpolasi
sumber
Pemilih jQuery untuk semua tag h (h1, h2 dll) adalah ": header". Misalnya, jika Anda ingin membuat semua tag h berwarna dengan jQuery, gunakan:
sumber
$('.my_div :header').css("color","red")
?Untuk mengatasinya dengan vanilla CSS, cari pola di leluhur
h1..h6
elemen:Jika Anda dapat menemukan pola, Anda mungkin dapat menulis pemilih yang menargetkan apa yang Anda inginkan. Dengan contoh di atas, semua
h1..h6
elemen dapat ditargetkan dengan menggabungkan kelas:first-child
dan:not
pseudo dari CSS3, tersedia di semua browser modern, seperti:Di masa depan, penyeleksi pseudo-kelas lanjutan seperti
:has()
, dan kombinator saudara kandung berikutnya (~
), akan memberikan lebih banyak kontrol saat standar Web terus berkembang seiring waktu.sumber
Anda juga dapat menggunakan PostCSS dan plugin penyeleksi kustom
Keluaran:
sumber
Anda dapat mengklasifikasikan semua judul dalam dokumen Anda jika Anda ingin menargetkannya dengan pemilih tunggal, sebagai berikut,
dan di css
Saya tidak mengatakan ini selalu praktik terbaik, tetapi ini bisa bermanfaat, dan untuk penargetan sintaksis, lebih mudah dalam banyak hal,
jadi jika Anda memberikan semua h1 hingga h6 kelas .heading yang sama di html, maka Anda dapat memodifikasinya untuk setiap dokumen html yang memanfaatkan lembar css itu.
terbalik, lebih banyak kontrol global dibandingkan "artikel bagian h1, dll {}",
Kelemahannya, daripada memanggil semua penyeleksi di tempat di css, Anda akan memiliki lebih banyak mengetik html, namun saya menemukan bahwa memiliki kelas di html untuk menargetkan semua judul dapat bermanfaat, hanya berhati-hati dari prioritas dalam css, karena konflik dapat muncul dari
sumber
Baru
:is()
CSS pseudo-class dapat melakukannya dalam satu pemilih:sumber