JavaScript动态插入CSS的方法
一、理解现有的样式表
我们先来了解一下`document.styleSheets`。当你打开任意页面时,它包含了该页面所有的样式表信息。其中,前三个通常是通过link标签引入的外部CSS文件,而第四个则是通过style标签内联在HTML页面中的样式。每一个样式表都有一些重要的属性,其中每一个cssRule又有更多的子属性。特别地,cssRule的cssText属性正是我们写在style标签中的源代码。
```javascript
function createStyleSheet() {
var head = document.head || document.getElementsByTagName('head')[0];
var style = document.createElement('style');
style.type = 'text/css';
head.appendChild(style);
return style.sheet || style.styleSheet;
}
```
```javascript
function addCssRule(selector, rules, index) {
index = index || 0;
if (sheetsertRule) {
sheetsertRule(selector + "{" + rules + "}", index);
} else if (sheet.addRule) {
sheet.addRule(selector, rules, index);
}
}
```
考虑到不同浏览器对于 style 元素的支持可能存在差异,我们在创建 stylesheet 对象时进行了兼容性处理,以确保代码可以在不同的浏览器中正常运行。我们还提供了判断 IE 低版本的支持,虽然现代浏览器大多已经淘汰了 IE,但在某些特殊环境下可能仍然需要使用到 IE。
如果只针对移动端或现代浏览器进行开发,我们可以去掉针对 IE 的判断和处理,使代码更加简洁。但无论如何,我们都要确保代码的兼容性和稳定性。
seo推广
- 状告苹果预装软件不可删 用户一审败诉二审再开
- CSS 清除浮动方法大全
- php+mysql5半自动注入工具图文教程
- css 使用relative设置top为百分比值的方法(仿百度首
- ai怎么设计圣诞节装饰素材-
- HTML5在线预览PDF的示例代码
- ThinkPad T460值得买吗?联想ThinkPad T460全面深度评测
- Linux环境下MySQL服务器优化的方法详解
- 电脑蓝屏的原因和解决方法
- 基于Http Header的SQL注入的方法详解
- 浅谈css动画是否会被js阻塞
- 五把技术利剑决胜智能穿戴产业
- css3 flex布局 justify-content-space-between 最后一行左对
- 罗技G102鼠标左键单击变双击怎么办-
- 红米Note 2获入网许可 或售799元
- 8个拍摄长曝相片的必需器材详情介绍