Bagaimana Anda menambahkan aturan CSS (misalnya strong { color: red }
) dengan menggunakan Javascript?
javascript
css
nickf
sumber
sumber
<strong>
elemen baru ditambahkan ke dokumen.Jawaban:
Anda juga dapat melakukan ini menggunakan antarmuka CSS DOM Level 2 ( MDN ):
... pada semua kecuali (secara alami) IE8 dan sebelumnya, yang menggunakan kata-katanya yang sedikit berbeda:
Ada keuntungan teoretis dalam hal ini dibandingkan dengan metode createElement-set-innerHTML, di mana Anda tidak perlu khawatir tentang menempatkan karakter HTML khusus di innerHTML, tetapi dalam praktiknya elemen gaya adalah CDATA dalam HTML lawas, dan '<' dan '&' jarang digunakan dalam stylesheet.
Anda memang membutuhkan stylesheet sebelum Anda dapat mulai menambahkannya seperti ini. Itu bisa berupa stylesheet aktif apa pun yang ada: eksternal, tertanam atau kosong, tidak masalah. Jika tidak ada, satu-satunya cara standar untuk membuatnya saat ini adalah dengan createElement.
sumber
sheet = window.document.styleSheets[0]
(Anda harus memiliki setidaknya satu <style type = "text / css"> </style> di sana).SecurityError: The operation is insecure.
Pendekatan sederhana dan langsung adalah membuat dan menambahkan
style
simpul baru ke dokumen.sumber
document.body
juga lebih pendek untuk mengetik dan lebih cepat dieksekusi daripadadocument.getElementsByTagName("head")[0]
dan menghindari masalah lintas-browser dari insertRule / addRule.document.head.appendChild
.document.body.appendChild(css);
Anda pastikan CSS baru selalu merupakan aturan terakhir.Solusi oleh Ben Blank tidak akan bekerja di IE8 untuk saya.
Namun ini berhasil di IE8
sumber
head
sebelum pengaturan.cssText
, atau IE6-8 akan kecelakaan jikacssCode
mengandung @ -directive, seperti@import
atau@font-face
, melihat Update untuk phpied.com/dynamic-script-and-style-elements-in-ie dan stackoverflow .com / a / 7952904Berikut ini adalah versi yang sedikit diperbarui dari solusi Chris Herring , dengan mempertimbangkan bahwa Anda juga dapat menggunakan
innerHTML
daripada membuat simpul teks baru:sumber
head
sebelum pengaturan.cssText
, atau IE6-8 akan kecelakaan jikacode
mengandung @ -directive, seperti@import
atau@font-face
, melihat Update untuk phpied.com/dynamic-script-and-style-elements-in-ie dan stackoverflow .com / a / 7952904Satu Liner Terpendek
sumber
Anda bisa menambahkan atribut kelas atau gaya pada elemen demi elemen.
Sebagai contoh:
Di mana Anda bisa melakukan this.style.background, this.style.font-size, dll. Anda juga dapat menerapkan gaya menggunakan metode yang sama ala
Jika Anda ingin melakukan ini dalam fungsi javascript, Anda bisa menggunakan getElementByID daripada 'ini'.
sumber
Ini contoh mudah menambahkan
<style>
kepala htmlSource Dynamic style - memanipulasi CSS dengan JavaScript
sumber
YUI baru-baru ini menambahkan utilitas khusus untuk ini. Lihat stylesheet.js di sini.
sumber
Ini solusi saya untuk menambahkan aturan css di akhir daftar style sheet terakhir:
sumber
Opsi lain adalah menggunakan JQuery untuk menyimpan properti gaya in-line elemen, menambahkannya, dan kemudian memperbarui properti gaya elemen dengan nilai-nilai baru. Sebagai berikut:
Dan kemudian jalankan dengan atribut CSS baru sebagai objek.
Ini mungkin tidak selalu menjadi metode yang paling efisien (saya terbuka untuk saran tentang cara meningkatkan ini. :)), tetapi pasti berhasil.
sumber
Berikut contoh template untuk membantu Anda memulai
Membutuhkan 0 pustaka dan hanya menggunakan javascript untuk menyuntikkan HTML dan CSS.
Fungsi itu dipinjam dari pengguna @Husky di atas
Berguna jika Anda ingin menjalankan skrip tampermonkey dan ingin menambahkan toggle overlay pada situs web (misalnya aplikasi note, misalnya)
sumber
jika Anda tahu setidaknya ada satu
<style>
tag di halaman, gunakan fungsi ini:penggunaan:
sumber
Inilah fungsi tujuan umum saya yang menentukan parametrize pemilih dan aturan CSS, dan secara opsional menggunakan nama file css (case-sensitive) jika Anda ingin menambahkan ke sheet tertentu (jika tidak, jika Anda tidak memberikan nama file CSS, itu akan membuat elemen gaya baru dan menambahkannya ke kepala yang ada. Ini akan membuat paling banyak satu elemen gaya baru dan menggunakannya kembali pada panggilan fungsi di masa depan). Bekerja dengan FF, Chrome, dan IE9 + (mungkin lebih awal juga, belum diuji).
sumber
gunakan
.css
di Jquery seperti$('strong').css('background','red');
sumber