首页 > 代码库 > javascript 动态样式添加
javascript 动态样式添加
异步加载css文件或者异步加载css模块,支持所有浏览器,包括IE,参考至javascript高级编程
1.createLink方法用于创建一个style标签并添加到head标签中
2.createModule方法用于创建一个style样式表的标签,并且如果在IE8以下的版本运行会抛出异常,在异常捕获模块中执行style.styleSheet.cssText兼容IE添加style的样式内容。
<button id="demo">css文件</button> <button id="demo1">css模块</button> <script type="text/javascript"> //异步加载css文件,支持所有浏览器 document.getElementById("demo").onclick = function () { createLink("../../css/demo.css"); } function createLink(src) { var link = document.createElement("link"); link.rel = "stylesheet" link.type = "text/css"; link.href = src; document.getElementsByTagName("head")[0].appendChild(link); } //IE将<style>视为一个特殊的与<script>类似的节点,不允许其访问子节点,事实上,IE此时抛出的错误与向<script>元素添加子节点时抛出的错误相同, //解决IE中的这个问题的办法就是访问元素的styleSheet属性,该属性又有一个CSSText属性,可以接受css代码 document.getElementById("demo1").onclick = function () { createModule("body{background:green;}"); } function createModule(css) { var style = document.createElement("style"); style.type = "text/css"; try { style.appendChild(document.createTextNode(css)); } catch (ex) { style.styleSheet.cssText = css; } document.getElementsByTagName("head")[0].appendChild(style); } </script>
javascript 动态样式添加
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。