使用DOM操作css
通过JS修改元素的样式
- 语法:元素.style.样式名 = 样式值
- 注意:如果css的样式名中含有 - ,这种名称在JS中是不合法的比如 background-color 需要将这种样式名修改为驼峰命名法,去掉-,然后将- 后面的字母大写
- 我们通过style属性设置的样式都是内联样式,而内联样式有较高的优先级,所以通过JS修改的样式往往会立即显示
- 但是如果在样式中写了!important,则此时样式会有最高的优先级 即使通过JS也不能覆盖该样式,此时将会导致JS修改样式失效 所以尽量不要为样式添加!important
box1.style.width = "300px";
box1.style.height = "300px";
box1.style.backgroundColor = "yellow";
读取元素的样式
alert(box1.style.width);
获取元素的当前显示的样式
- 语法: 元素.currentStyle.样式名
- 它可以用来读取当前元素正在显示的样式
- 如果当前元素没有设置该样式,则获取它的默认值
- currentStyle只有IE浏览器支持,其他的浏览器都不支持
在其他浏览器中可以使用
- getComputedStyle()这个方法来获取元素当前的样式
- 这个方法是window的方法,可以直接使用
- 需要两个参数 第一个:要获取样式的元素 第二个:可以传递一个伪元素,一般都传null
- 该方法会返回一个对象,对象中封装了当前元素对应的样式
- 可以通过对象.样式名来读取样式
- 如果获取的样式没有设置,则会获取到真实的值,而不是默认值 比如:没有设置width,它不会获取到auto,而是一个长度
- 但是该方法不支持IE8及以下的浏览器
- 通过currentStyle和getcomputedStyle()读取到的样式都是只读的,不能修改,如果修改必须通过style属性
var obj = getComputedStyle(box1,null);
alert(obj.width);
alert(obj.backgroundColor);