如何用JS修改已加载的CSS样式表样式?

JavaScript011

如何用JS修改已加载的CSS样式表样式?,第1张

js是无法直接修改css文件的,但可以通过取对象的方式修改对象的样式,通常有两种方法:\x0d\x0a1、改变className,但首先在样式表中预设定样式类。\x0d\x0a例如:document.getElementById('obj').className='...'\x0d\x0a2、改变cssText。\x0d\x0a例如:document.getElementById('obj').style.height='100px'

1、简单的方法,不管不顾,直接这样就可以:

document.createStyleSheet().cssText

=

'标签{color:red'

+

//

这个注释只在当前JS中帮助理解,并不会写入CSS中

'width:300pxheight:150px}'

+

'.类名{……}'

+

'#ID们{……}'

//完活。我喜欢分号这样写,和指令书写的起始位置对齐比较好一点,尤其是后面有其它语句的时候。

2、完善一点的方法,防止重复添加,可以通过添加样式表ID并对其判断来实现:

if

(!document.styleSheets['要建立的样式表ID如theforever'])

{

//先检查要建立的样式表ID是否存在,防止重复添加

var

ss

=

document.createStyleSheet()

ss.owningElement.id

=

'要建立的样式表ID如theforever'

ss.cssText

=

'标签{display:inline-blockoverflow:hidden'

+

//

这个注释只在当前JS中帮助理解,并不会写入CSS中

'text-align:leftwidth:300pxheight:150px}'

+

'.类名{……}'

+

'#ID们{……}'

}

以上这篇用JavaScript动态建立或增加CSS样式表的实现方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持脚本之家。

详细方法如下:第一步:在连接样式表的元素里定义一个id,例如<link href="1.css" rel="stylesheet" type="text/css" id="css">我定义的id是css。第二步:写一个js函数,代码如下:<script type="text/javascript">function change(a){var css=document.getElementById("css");if (a==1)css.setAttribute("href","1.css");if (a==2)css.setAttribute("href","2.css");}</script>这个函数的code可以放在页面的任何地方。第三步:为改变页面的样式表的连接添加一个函数的触发事件,代码如下:<a href="#" onClick="change(1)">1.css</a><a href="#" onClick="change(2)">2.css</a>该效果在IE和FF下均测试通过,相信大家看完后因该非常明了,利用这个方法我们可以让浏览者自己选择需要显示的样式表,好比年迈者可以选择一个字体较大的样式表。这里需要留意的两点是:另外假如是改变整个页面的样式,你需要在样式表文件里定义body的高度为100%