## style属性的设置和获取 在DOM当中,如果想设置样式,有两种形式: - className(针对内嵌样式表) - style(针对行内样式) 这一段就来讲一下style。 需要注意的是:style是一个对象,只能获取**行内样式**,不能获取内嵌的样式和外链的样式。例如: ```html Title
``` 打印结果: 20180129_1407.png 上图显示,因为border属性不是行内样式,所以无法通过style对象获取。 ## style属性的注意事项 style属性需要注意以下几点: - (1)样式少的时候使用。 - (2)style是对象。 我们在上方已经打印出来,typeof的结果是Object。 - (3)值是字符串,没有设置值是“”。 - (4)命名规则,驼峰命名。和css不一样。 - (5)只能获取行内样式,和内嵌和外链无关。 本段最开始的时候讲到的。 - (6)box.style.cssText = “字符串形式的样式”。 `cssText`这个属性,其实就是把行内样式里面的值当做字符串来对待。在上方代码的基础之上,举例: ```html ``` 打印结果: 20180129_1410.png ## style的常用属性 style的常用属性包括: - backgroundColor - backgroundImage - color - width - height - border - opacity 设置透明度 (IE8以前是filter: alpha(opacity=xx)) 注意DOM对象style的属性和标签中style内的值不一样,因为在JS中,`-`不能作为标识符。比如: - DOM中:backgroundColor - CSS中:background-color ## style属性的举例 我们针对上面列举的几个style的样式,来举几个例子: - 1、改变div的大小和透明度 - 2、当前输入的文本框高亮显示 - 3、高级隔行变色、高亮显示 - 4、百度皮肤 - (继续下面PPT) - 显示隐藏/关闭广告/显示二维码(隐藏方法) - 提高层级 下面来逐一实现。 ### 举例1:改变div的大小和透明度 代码举例: ```html
``` ### 举例2:当前输入的文本框高亮显示 代码实现: ```html ``` ### 举例3:高级隔行变色、高亮显示 ```html
序号 姓名 课程 成绩
1 生命壹号 语文 100
2 生命贰号 日语 99
3 生命叁号 营销学 98
4 生命伍号 数学 90
5 许嵩 英语 96
6 vae 体育 90
``` 实现的效果如下: 20180129_1520.gif 代码解释: 上方代码中,我们**用到了计数器myColor来记录每一行最原始的颜色**(赋值白色之前)。如果不用计数器,可能很多人以为代码是写的:(错误的代码) ```html ``` 这种错误的代码,实现的效果却是:(未达到效果) 20180129_1525.gif ## js 访问css属性 访问行内的css样式,有两种方式: 方式一: ```javascript box.style.width box.style.top ``` 方式二: ```javascript 元素.style["属性"]; //格式 box.style["width"]; //举例 ``` 方式二最大的优点是:可以给属性传递参数。 ### 获取css的样式 上面的内容中,我们通过`box1.style.属性`只能获得**行内样式**的属性。可如果我们想获取**内嵌或者外链**的样式,该怎么办呢? (1)w3c的做法: ```javascript window.getComputedStyle("元素", "伪类"); ``` 两个参数都是必须要有的,如果没有伪类就用 null 代替。 (2)IE和opera的做法: ```javascript obj.currentStyle; ``` 于是,就有了一种兼容性的写法,同时将其封装。代码举例如下: ```html
``` 打印结果: 20180204_1425.png