JS 操作 style

2022-10-26 20:45:48 浏览数 (1)

简述

我们有时候会需要在 JS 中对文档元素的 style 进行获取和更改,这篇文章将简要的讨论一下和 style 相关的内容。

设置 style 样式

前端设置 style 样式有三种方式:

  1. 内联样式 听过直接把样式添加到元素的 style 属性中。 <p style="color: red;" > Hello </p>
  2. 嵌入样式 通过把 style 样式添加到 head 标签中。 <head> <style> .... </style> </head>
  3. 外联样式 通过下载外部的样式表资源。 <link rel="stylesheet" href="path/style.css" type="text/css">

获取 style

  • 通过 style 属性

我们通过 element.style 来获取内联样式。注意:此方法无法获取内置和外联样式。

可以直接通过 style 来操作属性:

// 获取属性 console.log(ele.style.color) // 删除属性 ele.style.color = '' // 更新属性 ele.style.color = 'blue'

  • 通过 window.getComputedStyle

应为通过 style 属性获取的样式只包含了内联样式,不包含内置和外联样式,所以如果想要获取一个元素最终的样式内容,就需要使用 window.getComputedStyle。

例如,想要获取一个元素的 border 属性可以这么写:

window.getComputedStyle(ele).border

style 和 getComputedStyle 的区别:

1. style 只能获取内联样式,getComputedStyle 能够获取完整样式。

2. style 可以读和写,但是 getComputedStyle 是只读的。可以通过读取 getComputedStyle 的内容来修改 style。

  • cssText

cssText 是 style 属性中可读可写的一个属性,它会返回该元素所有的内联样式。并且如果你修改了 cssText,会覆盖之前的内联样式。

ele.style = "width: 100px; height: 100px; color: red;"

ele.style.cssText = "color: green;"

console.log(ele.style.cssText) // color: green;

可以看到上面的代码中,因为修改了 cssText,元素的内联样式被完全覆盖了。

0 人点赞