设置CSS样式
语法:元素.style.样式名=样式值
注意:如果CSS的样式名中含有-,这种名称在JS中是不合法的,比如background-color。需要将这种样式名修改为驼峰命名法:去掉-,然后将-后的第一个字母大写,比如backgroundColor
我们通过style属性设置的样式都是内联样式,而内联样式有较高的优先级,所以通过JS修改的样式往往会立即显示
但是如果在样式中写了!important,则此时样式会有最高的优先级,即使通过JS也不能覆盖该样式,此时将会导致JS修改样式失效
所以尽量不要为样式添加!important
读取CSS样式
语法:元素.style.样式名
通过style属性设置和读取的都是内联样式,无法读取样式表中的样式
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title></title>
<style>
#box1{
width: 100px;
height: 100px;
/*background-color: red !important;*/
background-color: red ;
}
</style>
</head>
<body>
<button id="btn01" onclick="btn01()">点我一下</button>
<button id="btn02" onclick="btn02()">点我一下02</button>
<div id="box1">
</div>
</body>
<script>
function btn01(){
box1.style.width="300px";
box1.style.height="300px";
box1.style.backgroundColor="yellow";
};
function btn02(){
alert(box1.style.width);
};
</script>
</html>
currentStyle读取当前元素正在显示的样式(只有IE浏览器支持)
语法:元素.currentStyle.样式名
如果当前元素没有设置该样式,则获取它的默认值
例如:box1.currentStyle.width
getComputedStyle()方法可读取当前元素正在显示的样式
这个方法是window的方法,可以直接使用需要两个参数
第一个:要获取样式的元素
第二个:可以传递一个伪元素,一般都传null
该方法会返回一个对象,对象中封装了当前元素对应的样式
可以通过对象﹒样式名来读取样式
如果获取的样式没有设置,则会获取到真实的值,而不是默认值
比如:没有设置width,它不会获取到auto,而是一个长度
// var obj = getComputedStyle( box1, null );
alert(getComputedStyle(box1,null).width);
注意:通过currentStyle和getComputedstyle()读取到的样式都是只读的,不能修改,如果要修改必须通过style属性
定义一个函数,可在所有浏览器里获取指定元素的当前样式
参数:
obj 要获取样式的元素
name 要获取的样式名
function getStyle(obj, name) {
if(window.getComputedStyle) {
//正常浏览器,具有getComputedStyle()方法
return getComputedStyle(obj, null)[name];
} else {
//IE8,没有getComputedStyle()方法
return obj.currentStyle[name];
}
}
//调用函数
//var w=getStyle(box1,"width");
alert(getStyle(box1,"width"));