用法一
.css( propertyName ) => String
.css( propertyName ) => String
说明:获取匹配元素集中第一个元素的计算样式属性。
-
添加的版本:1.0
.css( propertyName )
-
propertyName类型:String一个 CSS 属性。
-
-
添加的版本:1.9
.css( propertyNames )
-
propertyNames类型:Array一个或多个 CSS 属性的数组。
-
.css()
方法是从第一个匹配元素获取计算样式属性的便捷方法,特别是考虑到浏览器访问大多数这些属性的不同方式(基于标准的浏览器中的 getComputedStyle()
方法与 currentStyle
和 9 之前 Internet Explorer 中的 runtimeStyle
属性)以及浏览器对某些属性使用的不同术语。例如,Internet Explorer 的 DOM 实现将 float
属性称为 styleFloat
,而 W3C standards-compliant 浏览器将其称为 cssFloat
。为了保持一致性,您可以简单地使用 "float"
,jQuery 会将其转换为每个浏览器的正确值。
此外,jQuery 可以同样解释 multiple-word 属性的 CSS 和 DOM 格式。例如,jQuery 理解并返回 .css( "background-color" )
和 .css( "backgroundColor" )
的正确值。这意味着混合大小写具有特殊含义,例如 .css( "WiDtH" )
不会与 .css( "width" )
做同样的事情。
请注意,元素的computed style
可能与样式表中为该元素指定的值不同。例如,尺寸的计算样式几乎总是像素,但它们可以在样式表中指定为 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 开始,将一组样式属性传递给.css()
将产生 property-value 对的对象。例如,要检索所有四个渲染border-width
值,你可以使用$( elem ).css([ "borderTopWidth", "borderRightWidth", "borderBottomWidth", "borderLeftWidth" ])
.
从 jQuery 3.2 开始,CSS 自定义属性(也称为 CSS 变量)受支持:$( "p" ).css( "--custom-property" )
.请注意,您需要按原样提供属性名称,camelCasing 不会像常规 CSS 属性那样工作。
例子:
获取点击的 div 的背景颜色。
|
演示:
获取点击的 div 的宽度、高度、文本颜色和背景颜色。
|
演示:
用法二
.css( propertyName, value ) => jQuery
.css( propertyName, value ) => jQuery
说明:为一组匹配的元素设置一个或多个 CSS 属性。
-
添加的版本:1.0
.css( propertyName, value )
-
propertyName类型:StringCSS 属性名称。
-
value为属性设置的值。
-
-
添加的版本:1.4
.css( propertyName, function )
-
propertyName类型:StringCSS 属性名称。
-
function返回要设置的值的函数。
this
是当前元素。接收集合中元素的索引位置和旧值作为参数。
-
-
添加的版本:1.0
.css( properties )
-
properties类型:PlainObject要设置的property-value 对的对象。
-
与.prop()
方法一样,.css()
方法可以快速轻松地设置元素的属性。此方法可以将属性名称和值作为单独的参数,也可以将键值对的单个对象。
此外,jQuery 可以同样解释 multiple-word 属性的 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()
作为一个 setter,jQuery 修改元素的style
属性。例如,$( "#mydiv" ).css( "color", "green" )
相当于document.getElementById( "mydiv" ).style.color = "green"
.将样式属性的值设置为空字符串——例如$( "#mydiv" ).css( "color", "" )
— 如果该属性已被直接应用,则从元素中删除该属性,无论是在 HTML 样式属性中,通过 jQuery 的.css()
方法,或通过直接 DOM 操作style
属性。因此,该属性的元素样式将恢复为应用的任何值。因此,此方法可用于取消您之前执行的任何样式修改。但是,它不会删除在样式表中使用 CSS 规则应用的样式或<style>
元素。警告:一个值得注意的例外是,对于 IE 8 及更低版本,删除速记属性,例如border
或者background
将从元素中完全删除该样式,无论样式表中设置了什么或<style>
元素。
注意: .css()
不支持!important
声明。所以,声明$( "p" ).css( "color", "red !important" )
从 jQuery 3.6.0 开始,不会将页面中所有段落的颜色变为红色。不要依赖那个not working
不过,作为 jQuery 的未来版本,可能会添加对此类声明的支持。强烈建议改用类;否则使用 jQuery 插件。
从 jQuery 1.8 开始,.css()
setter 将自动处理属性名称的前缀。例如,在 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()
允许我们将函数作为属性值传递:
|
此示例将匹配元素的宽度设置为逐渐增大的值。
注意:如果在 setter 函数中没有返回任何内容(即。function( index, style ){} )
, 或者如果undefined
返回时,当前值不变。这对于仅在满足某些条件时有选择地设置值很有用。
从 jQuery 3.2 开始,CSS 自定义属性(也称为 CSS 变量)受支持:$( "p" ).css( "--custom-property", "value" )
.请注意,您需要按原样提供属性名称,camelCasing 不会像常规 CSS 属性那样工作。
例子:
在鼠标悬停事件中将任何段落的颜色更改为红色。
|
演示:
第一次单击 #box 时将其宽度增加 200 像素。
|
演示:
突出显示段落中单击的单词。
|
演示:
在 mouseenter 和 mouseleave 上更改字体粗细和背景颜色。
|
演示:
单击时增加 div 的大小。
|
演示:
相关用法
- JQuery UI .cssClip()用法及代码示例
- JQuery .contextmenu()用法及代码示例
- JQuery .contents()用法及代码示例
- JQuery .click()用法及代码示例
- JQuery .context用法及代码示例
- JQuery .clearQueue()用法及代码示例
- JQuery .closest()用法及代码示例
- JQuery .children()用法及代码示例
- JQuery .change()用法及代码示例
- JQuery .clone()用法及代码示例
- JQuery .jquery用法及代码示例
- JQuery .scroll()用法及代码示例
- JQuery .add()用法及代码示例
- JQuery .undelegate()用法及代码示例
- JQuery .load()用法及代码示例
- JQuery .empty()用法及代码示例
- JQuery UI .labels()用法及代码示例
- JQuery UI .addClass()用法及代码示例
- JQuery UI .toggleClass()用法及代码示例
- JQuery .removeAttr()用法及代码示例
- JQuery .addClass()用法及代码示例
- JQuery .next()用法及代码示例
- JQuery UI .hide()用法及代码示例
- JQuery .promise()用法及代码示例
- JQuery .trigger()用法及代码示例
注:本文由纯净天空筛选整理自jquery.com大神的英文原创作品 .css()。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。