笔记:JS设置CSS样式的几种方式

html-css021

笔记:JS设置CSS样式的几种方式,第1张

1、直接更改,比如:

xID.style.display = "block" // 更改display属性,会覆盖css中的定义。

xID.style.display = ""      // 取消js更改display属性,以css样式为准。

这里的xID,是通过id获取的标签。当然,也可能是通过tagName之类的获取的标签。

这种方式,简单直接。但是要修改大量的样式的时候,不适合。所以,我更推荐第二种方式。

2、更改类名

xID.className = "xx   yy"

如果有多个类,就用空格隔开。前提,在样式中要有已有类的定义。比如这里的xx和yy类,在css中应该是写好的。

这种方式把所有的样式写在了css文件中,适合更改较多的样式以及炫酷的样式。js就只做一件事情:改类。至于这个类会把标签变成什么样子,交给css吧。

通过jquery也可以达到如上的效果:

$("#xID").css({

  fontSize:"12px",

  display:"block"

})  // 直接更改样式

$("#xID").addClass("xx")  // 增加删除类

$("#xID").removeClass("xx")

在页面内用JS操作CSS除非用AJAX,但操作页面内的样式的话,是可以的。操作样式分为改变直接样式,改变className和改变cssText三种

一、局部改变样式

调用方法:

改变className

<div id="demo">测试</div>

<script>

document.getElementById('demo').className="test"

</script>

改变直接样式

<div id="demo">测试</div>

<script>

document.getElementById('obj').style.backgroundColor="#003366"

</script>

二、全局改变样式

可以通过改变外链样式的的href的值实现网页样式的实时切换

<link rel = "stylesheet" type="text/css" id="css" href="firefox.css" />

<span on click="javascript:document.getElementById('css').href = 'ie.css'">点我改变样式</span>

JavaScript动态建立或增加CSS样式表,参考如下:

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们{……}'  

   

}