内容:
.css( propertyName )返回类型:String
描述:针对匹配的元素集合的第一个元素,取得计算的样式属性。
-
增补版本:1.0.css( propertyName )
-
propertyName类型:StringA CSS property.
-
-
增补版本:1.9.css( propertyNames )
-
propertyNames类型:Array一个或多个CSS属性的数组。
-
.css()
方法是从第一个匹配元素上取得计算样式属性的便利方法,尤其在于应付浏览器访问大多数属性的不同方式时(getComputedStyle()
方法是标准方法,相较之下在Internet Explorer 9以前的Internet Explorer 版本中,是使用currentStyle
属性和runtimeStyle
属性),并且,某些特定的属性,不同浏览器使用不同的术语。例如,Internet Explorer 的DOM实现器把float
属性称为styleFloat
,与此同时W3C标准浏览器称它为cssFloat
。为了一致性,你可以简单使用"float"
,并且jQuery将把它翻译为针对每个浏览器的当前值。
此外,jQuery可以等同地解释CSS和多单词属性的DOM格式。例如,jQuery理解.css( "background-color" )
和.css( "backgroundColor" )
,并返回正确值。这意味着混合大小写具有特殊的意义,例如,.css( "WiDtH" )
将不用与.css( "width" )
做同样的事情。
请注意,元素的计算样式可能与在样式表中针对元素指定的值不相同。例如,尺寸的计算样式始终是像素,但是在样式表中它们可能是以em、ex、px或%指定的。不同的浏览器可能返回逻辑上相同但是字面上不同的CSS颜色值,例如,#FFF、#ffffff和rgb(255,255,255)。
取得简写CSS属性(例如,margin
、background
、border
)虽然是一些浏览器的功能,但是不能保证取得。例如,如果你想检索呈现的border-width
,请使用$( elem ).css( "borderTopWidth" )
、$( elem ).css( "borderBottomWidth" )
等等。
一个元素在它上面调用.css()
时,必须连接到DOM。如果未连接,jQuery可能抛出一个错误。
自从jQuery 1.9以来,把一个样式属性的数组传给.css9)
将产生属性值对的对象。例如,为了检索所有四个呈现的border-width
值,你可以使用$( elem ).css([ "borderTopWidth", "borderRightWidth", "borderBottomWidth", "borderLeftWidth" ])
。
示例:
取得被点击div的背景色。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
|
|
演示:
取得被点击div的宽度、高度、字色、背景色。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
|
|
演示:
.css( propertyName, value )返回类型:jQuery
描述:针对匹配的元素集合,设置一个或多个CSS属性。
-
增补版本:1.0.css( propertyName, value )
-
propertyName类型:String一个CSS属性名。
-
value一个设置给属性的值。
-
-
增补版本:1.4.css( propertyName, function )
-
propertyName类型:String一个CSS属性名。
-
function一个函数,返回要设置的值。
this
是当前元素。检索元素在集合中的位置以及旧值作为参数。
-
-
增补版本:1.0.css( properties )
-
properties类型:PlainObject一个要设置的属性值对的对象。
-
就像用.prop()
方法,.css()
方法用来快速简单地设置元素的属性。此方法可以取用属性名称以及值作为分开的参数,也可以取用一个键值对的对象作为参数。
而且,jQuery会等同地解析CSS和多单词属性的DOM格式。例如,jQuery理解 .css({ "background-color": "#ffe", "border-left": "5px solid #ccc" })
和.css({backgroundColor: "#ffe", borderLeft: "5px solid #ccc" })
并返回正确的值。请注意,利用DOM记号法,包围属性名称的引号是可选的,但是用CSS记号法,由于名称中有连字符(“-”),就必须用引号。
当数字传递为一个值时,jQuery将把它转换为字符串并在字符串末尾加上px
。如果属性需要除了px
以外的单位,就请在调用此方法之前,先把该值转换为字符串,并加上适当的单位。
当使用.css()
作为设置器时,jQuery会修改元素的style
属性。例如,$( "#mydiv" ).css( "color", "green" )
等于document.getElementById( "mydiv" ).style.color = "green"
。把一个样式属性值设置为空字符串,例如$( "#mydiv" ).css( "color", "" )
,会从元素上删除属性,如果它已经被直接应用了,无论是用HTML样式特定应用的,还是通过jQuery的.css()
方法引用的,或者是通过style
属性的直接的DOM操纵应用的。作为后果,针对此属性的元素的样式将被重新存储为为它所应用的值。所以,此方法可以用来撤销任何先前实施的样式修改。然而,它并不会删除用样式表或者<style>
元素中的CSS规则应用的样式。
警告:对于Internet Explorer 8及以下版本,一个显著的异常是,删除简写属性,譬如border
或background
将从元素上删除整个样式,无论在样式表或<style>
元素中被设置成了什么。
注意: .css()
将忽略掉!important
声明。所以,此语句$( "p" ).css( "color", "red !important" )
不会把网页中的所有段落的字色变红。强烈建议使用类来代替,或者使用jQuery插件。
自从jQuery 1.8以来,.css()
设置器将自动照顾到属性名的前缀。例如,在Chrome/Safari中取用.css( "user-select", "none" )
,将把它设置为-webkit-user-select
,在Firefox中将使用-moz-user-select
,在IE10中将取用-ms-user-select
。
自从jQuery 1.6以来,.css()
接受相对值类似于.animate()
的。相对值是一个字符串,用+=
或-=
开头,以增加或减少当前值。例如,如果元素的padding-left是10px,则.css( "padding-left", "+=15" )
将产生padding-left为25px的总补白。
自从jQuery 1.4以来,.css()
允许我们传递一个函数作为属性的值:
1
2
3
|
|
此示例把匹配的元素的宽度设置为增加到更大的值。
注意:在设置器函数(亦即function( index, style ){} )
)中如果没有返回什么东西,或者返回了undefined
,当前值不会改变。这对于在满足特定条件时选择性地设置值来说很有用。
示例:
针对mouseover事件,把一些段落的字色改成红色。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
|
|
演示:
当#box第一次被点击时,增加宽度200像素。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
|
|
演示:
高亮段落中被点击的单词。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
|
|
演示:
针对mouseenter事件和mouseleave事件,改变字体的粗细和背景色。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
|
|
演示:
当你点击div时增加它的尺寸。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
|
|