向当前style sheet中插入一个新的style实现方法_javascript技巧
很少会插入一个新的style rule,今天为了临时解决页面样式问题,需要更新很多页面的一些样式,这些页面都引用了一个公共的js,为了方便,直接在这个公共的js里面向style sheet插入新的style rule。
先看代码:
/**
* Add a stylesheet rule to the document (may be better practice, however,
* to dynamically change classes, so style information can be kept in
* genuine styesheets (and avoid adding extra elements to the DOM))
* Note that an array is needed for declarations and rules since ECMAScript does
* not afford a predictable object iteration order and since CSS is
* order-dependent (i.e., it is cascading); those without need of
* cascading rules could build a more accessor-friendly object-based API.
* @param {Array} decls Accepts an array of JSON-encoded declarations
* @example
addStylesheetRules([
['h2', // Also accepts a second argument as an array of arrays instead
['color', 'red'],
['background-color', 'green', true] // 'true' for !important rules
],
['.myClass',
['background-color', 'yellow']
]
]);
*/
function addStylesheetRules (decls) {
var style = document.createElement('style');
document.getElementsByTagName('head')[0].appendChild(style);
if (!window.createPopup) { /* For Safari */
style.appendChild(document.createTextNode(''));
}
var s = document.styleSheets[document.styleSheets.length - 1];
for (var i=0, dl = decls.length; i var j = 1, decl = decls[i], selector = decl[0], rulesStr = '';
if (Object.prototype.toString.call(decl[1][0]) === '[object Array]') {
decl = decl[1];
j = 0;
}
for (var rl=decl.length; j var rule = decl[j];
rulesStr += rule[0] + ':' + rule[1] + (rule[2] ? ' !important' : '') + ';\n';
}
if (s.insertRule) {
s.insertRule(selector + '{' + rulesStr + '}', s.cssRules.length);
}
else { /* IE */
s.addRule(selector, rulesStr, -1);
}
}
}
addStylesheetRules(["div.content", ["color": "#000"], ["border-width","1px"], ["border-style", "solid"]])
执行后当前document的head标签内,多了一个style
知道怎么调用了吧,每次调用都会插入一个新的style,所以最好调用一次,插入多个rule
addStylesheetRules(
[selector, [attr, value], …],
[selector, [attr, value], …]
);
主要用到两个方法:
标准方法:stylesheet.insertRule(rule, index)
rule:被插入的rule,如 div.content{color:#000}
index: 插入顺序,先后顺序会影响样式的。从0开始
firefox、chrome、opera、safri、ie从ie9开始也支持这个方法
ie的stylesheet.addRule (selector, styleDef [, positionIndex]);
selector:如div.content
styleDef:如color:#000
positionIndex:默认-1,插入到末尾
ie、safari、chrome支持这个方法

Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

AI Hentai Generator
Menjana ai hentai secara percuma.

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas

Dalam macOS Sonoma, widget tidak perlu disembunyikan di luar skrin atau dilupakan dalam panel Pusat Pemberitahuan seperti yang dilakukan dalam versi sebelumnya macOS Apple. Sebaliknya, ia boleh diletakkan terus pada desktop Mac anda - ia juga interaktif. Apabila tidak digunakan, widget desktop macOS memudar ke latar belakang dalam gaya monokrom, mengurangkan gangguan dan membolehkan anda menumpukan pada tugas yang sedang dijalankan dalam aplikasi atau tetingkap aktif. Walau bagaimanapun, apabila anda mengklik pada desktop, ia kembali kepada warna penuh. Jika anda lebih suka rupa yang menjemukan dan ingin mengekalkan aspek keseragaman itu pada desktop anda, ada cara untuk menjadikannya kekal. Langkah-langkah berikut menunjukkan cara ia dilakukan. Buka apl Tetapan Sistem

Kaedah untuk elemen.gaya untuk mengubah suai elemen: 1. Ubah suai warna latar belakang elemen; 2. Ubah suai saiz fon elemen; Ubah suai penjajaran mendatar elemen. Pengenalan terperinci: 1. Ubah suai warna latar belakang elemen, sintaksnya ialah "document.getElementById("myElement").style.backgroundColor = "red";" 2. Ubah suai saiz fon elemen, dsb.

Panduan untuk menyelesaikan halaman web WordPress yang tidak sejajar Dalam pembangunan tapak web WordPress, kadangkala kami menghadapi elemen halaman web yang tidak sejajar Ini mungkin disebabkan oleh saiz skrin pada peranti yang berbeza, keserasian penyemak imbas atau tetapan gaya CSS yang tidak betul. Untuk menyelesaikan salah jajaran ini, kita perlu menganalisis masalah dengan teliti, mencari kemungkinan punca dan nyahpepijat serta membaikinya langkah demi langkah. Artikel ini akan berkongsi beberapa masalah salah jajaran laman web WordPress biasa dan penyelesaian yang sepadan, dan memberikan contoh kod khusus untuk membantu membangunkan

Kaedah untuk bertindak balas untuk mengubah suai gaya secara dinamik: 1. Tambahkan ref pada elemen yang gayanya perlu diubah suai, dengan sintaks seperti "<div className='scroll-title clear-fix' ref={ this.manage }>" 2 . Melalui kawalan dinamik Perubahan keadaan mengubah gaya elemen 3. Dengan menggunakan kod JS dalam DOM, peralihan paparan dan penyembunyian DOM yang berbeza direalisasikan.

Ciri baharu gaya versi Vue3.2 telah membuat banyak peningkatan kepada gaya komponen fail tunggal, seperti gaya setempat, pembolehubah css dan gaya yang terdedah kepada templat. (Perkongsian video pembelajaran: tutorial video vue) 1. Gaya setempat Apabila label mempunyai atribut berskop, CSSnya hanya akan digunakan pada elemen komponen semasa: hi.example{color:red;} 2. Pemilih kedalaman ialah scoped Jika pemilih dalam gaya ingin membuat pemilihan yang lebih "mendalam", iaitu mempengaruhi sub-komponen, anda boleh menggunakan :deep() pseudo-class: .a:deep(.b){/*.. .*/ }Kandungan DOM yang dibuat melalui v-html tidak akan

Reka bentuk imej latar belakang halaman web CSS: Cipta pelbagai gaya dan kesan imej latar belakang, contoh kod khusus diperlukan Ringkasan: Dalam reka bentuk web, imej latar belakang ialah elemen visual yang penting, yang boleh meningkatkan daya tarikan dan kebolehbacaan halaman dengan berkesan. Artikel ini akan memperkenalkan beberapa gaya reka bentuk imej latar belakang CSS biasa dan kesan, dan memberikan contoh kod yang sepadan. Pembaca boleh memilih dan menggunakan gaya dan kesan imej latar belakang ini mengikut keperluan dan keutamaan mereka sendiri untuk mencapai kesan visual dan pengalaman pengguna yang lebih baik. Kata kunci: CSS, imej latar belakang, gaya reka bentuk, kesan, perwakilan kod

Ralat Vue: Tidak dapat menggunakan v-bind untuk mengikat kelas dan gaya dengan betul, bagaimana untuk menyelesaikannya? Dalam pembangunan Vue, kami sering menggunakan arahan v-bind untuk mengikat kelas dan gaya secara dinamik, tetapi kadangkala kami mungkin menghadapi beberapa masalah, seperti tidak dapat menggunakan v-bind dengan betul untuk mengikat kelas dan gaya. Dalam artikel ini, saya akan menerangkan punca masalah ini dan memberi anda penyelesaian. Pertama, mari kita fahami arahan v-bind. v-bind digunakan untuk mengikat V

Gunakan pemilih kelas pseudo :nth-last-child(2) untuk memilih gaya elemen anak kedua. Contoh kod khusus diperlukan Dalam CSS, pemilih kelas pseudo ialah alat yang sangat berkuasa yang boleh digunakan untuk memilih pokok dokumen. Salah satunya ialah pemilih kelas pseudo :nth-last-child(2), yang memilih elemen anak kedua hingga terakhir dan menggunakan gaya padanya. Mula-mula, mari kita buat contoh dokumen HTML supaya kita boleh menggunakan pemilih kelas pseudo ini di dalamnya. oleh
