动态增加css样式

html-css019

动态增加css样式,第1张

在有些做项目项目中,需要用户自定义组件的CSS样式并即时改变组件样式状态。

1. 增加 style样式

2. 更新 style样式

3. 删除 style样式

4.其他使用方式

之前在论坛上面看到论坛后台可以把所有页面的标题,内容,字体,背景,颜色等css属性都列出来了,并且可以随意重新设置,保存以后前台页面就可以根据设置动态的更新显示了,之前就有了一点想法,做了一个demo.jsp,然后在这个页面引入一个style.css样式文件,并且在这个样式文件中定义了一些属性,然后定义了一个java类来对应样式文件的属性

动态加载外部css样式及css样式,参考代码如下:

// 动态加载外部js文件

var flag = true

if( flag ){

loadScript( "js/index.js" )

}

function loadScript( url ){

var script = document.createElement( "script" )

script.type = "type/javascipt"

script.src = url

document.getElementsByTagName( "head" )[0].appendChild( script )

}

// 动态加载js

if( flag ){

var script = document.createElement( "script" )

script.type = "text/javascript"

script.text = " "

document.getElementsByTagName( "head" )[0].appendChild( script )

}

// 动态加载外部css样式

if( flag ){

loadCss( "css/base.css" )

}

function loadCss( url ){

var link = document.createElement( "link" )

link.type = "text/css"

link.rel = "stylesheet"

link.href = url

document.getElementsByTagName( "head" )[0].appendChild( link )

}

// 动态加载css样式

if( flag ){

var style = document.createElement( "style" )

style.type = "text/css"

document.getElementsByTagName( "head" )[0].appendChild( style )

var sheet = document.styleSheets[0]

insertRules( sheet,"#gaga1","background:#f00",0 )

}

function insertRules( sheet,selectorTxt,cssTxt,position ){

if( sheet.insertRule ){ // 判断非IE浏览器

sheet.insertRule( selectorTxt + "{" + cssTxt +"}" ,position )

}else if( sheet.addRule ){ //判断是否是IE浏览器

sheet.addRule( selectorTxt ,cssTxt ,position )

}

}