前端学习笔记style,currentStyle,getComputedStyle的用法与区别

yizhihongxing

前言

在前端开发中,样式的处理是非常重要的一部分。而 style、currentStyle 和 getComputedStyle 是三种常见的处理样式的方式。本篇攻略将详细讲解它们的用法和区别。

style

style 属性用于在 JavaScript 中设置和返回样式。我们可以通过给 HTMLElement 对象的 style 属性赋值来设置样式,也可以通过读取 style 属性来获取元素的内联样式。

例如,设置元素的样式:

<div id="myDiv">Hello World!</div>
var myDiv = document.getElementById("myDiv");
myDiv.style.color = "red";
myDiv.style.backgroundColor = "blue";

也可以读取元素的内联样式:

var color = myDiv.style.color;
var backgroundColor = myDiv.style.backgroundColor;

style 属性只能获取和设置内联样式,不能获取和设置外部样式和计算样式。在内联样式中使用的单位可以是任意有效的 CSS 单位,如 em、px、in 等。

当前样式类别只包括内联样式,不包括外部样式或嵌入式样式。此外,style 属性只能获取和设置字符串类型的样式值,不能获取数值类型的样式值。

currentStyle

currentStyle 属性是 IE 独有的属性,用于获取元素当前计算出的样式值。此属性返回的样式是应用于元素的所有样式的最终计算结果。

例如:

var myDiv = document.getElementById("myDiv");
var backgroundColor = myDiv.currentStyle.backgroundColor;
var color = myDiv.currentStyle.color;

currentStyle 属性仅适用于 IE 浏览器,因此不能在其他浏览器中使用。

getComputedStyle

getComputedStyle 方法是 W3C 标准的一部分,用于获取元素的计算样式,它返回的是一个对象,其中包含了所有计算样式的属性和值。

例如:

var myDiv = document.getElementById("myDiv");
var backgroundColor = window.getComputedStyle(myDiv).backgroundColor;
var color = window.getComputedStyle(myDiv).color;

getComputedStyle 方法在 IE8 及以下版本的 IE 浏览器中不支持,需要使用 IE 独有的 currentStyle 属性。

区别

  • style 属性只能获取和设置内联样式,而 currentStyle 和 getComputedStyle 可以获取计算样式;
  • currentStyle 属性只适用于 IE 浏览器,而 getComputedStyle 是 W3C 标准的一部分,可以在所有现代浏览器中使用;
  • 获取样式属性的值的方式也不同:style 直接获取和设置样式属性的字符串形式的值,而 currentStyle 和 getComputedStyle 都返回计算样式的值。

示例

示例1:获取元素的宽度和高度

<div id="myDiv" style="width: 100px; height: 50px;">Hello World!</div>
var myDiv = document.getElementById("myDiv");

// 获取元素的内联样式
var width1 = myDiv.style.width; // "100px"
var height1 = myDiv.style.height; // "50px"

// 获取元素的当前计算样式(适用于 IE 浏览器)
var width2 = myDiv.currentStyle.width; // "100px"
var height2 = myDiv.currentStyle.height; // "50px"

// 获取元素的计算样式(适用于非 IE 浏览器)
var width3 = window.getComputedStyle(myDiv).width; // "100px"
var height3 = window.getComputedStyle(myDiv).height; // "50px"

示例2:获取元素的字体大小和颜色

<div id="myDiv" style="font-size: 14px; color: red;">Hello World!</div>
var myDiv = document.getElementById("myDiv");

// 获取元素的内联样式
var fontSize1 = myDiv.style.fontSize; // "14px"
var color1 = myDiv.style.color; // "red"

// 获取元素的当前计算样式(适用于 IE 浏览器)
var fontSize2 = myDiv.currentStyle.fontSize; // "14px"
var color2 = myDiv.currentStyle.color; // "#ff0000"

// 获取元素的计算样式(适用于非 IE 浏览器)
var fontSize3 = window.getComputedStyle(myDiv).fontSize; // "14px"
var color3 = window.getComputedStyle(myDiv).color; // "rgb(255, 0, 0)"

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:前端学习笔记style,currentStyle,getComputedStyle的用法与区别 - Python技术站

(0)
上一篇 2023年6月10日
下一篇 2023年6月10日

相关文章

  • Vue动画事件详解及过渡动画实例

    Vue动画事件详解及过渡动画实例 一、引言 Vue.js 是一个流行的JavaScript框架,该框架不仅可以创建单页面应用程序(SPA),还可以帮助Web开发人员快速创建动画效果。本篇文章将介绍Vue.js的动画事件以及过渡动画的实现方法,并提供了两个完整的过渡动画示例。 二、Vue.js的动画事件 在Vue.js中,可以使用以下动画事件来创建动画效果: …

    css 2023年6月10日
    00
  • 使用CSS去掉网页中超链接的下划线示例

    当我们在网页中添加超链接时,浏览器会自动地为这些链接添加下划线样式,这个样式可能会影响页面的视觉效果。在这种情况下,我们可以使用CSS来去除链接下划线样式。 下面是完整的CSS样式代码,使用该代码可以去除网页上所有链接的下划线: a { text-decoration: none; } 在上述代码中,我们使用了 text-decoration CSS属性,该…

    css 2023年6月10日
    00
  • CSS中背景background-position负值定位深入理解[图文]

    CSS中背景background-position负值定位深入理解[图文] 什么是background-position? background-position属性用于指定背景图像的起始位置(也就是背景图像在容器中的位置)。在未指定background-position属性时,背景图像的起始位置默认为左上角。 background-position属性可以…

    css 2023年6月9日
    00
  • css样式层叠规则详解

    当多个 CSS 规则同时作用于同一个 HTML 元素时,就会涉及到 CSS 样式的层叠。而当出现了冲突时,就需要根据层叠规则来确定哪个样式会被最终应用到元素上。以下是 CSS 样式层叠规则的详解。 1. 权重 Specificity 当一个元素被多个 CSS 规则选择到时,就需要根据 Specificity 权重来决定哪一条样式会被优先应用。CSS 的 Sp…

    css 2023年6月10日
    00
  • webpack 静态资源集中输出的方法示例

    下面是详细讲解“webpack 静态资源集中输出的方法示例”的完整攻略。 什么是静态资源集中输出? 静态资源指的是网页中不需要经过服务器处理直接能被使用的文件,包括但不限于 CSS、JS 文件、图片文件。静态资源集中输出是指在打包构建时将这些文件从各自的模块中提取出来,集中输出到指定的目录中,以单独文件的形式发挥作用。 webpack 静态资源集中输出的方法…

    css 2023年6月9日
    00
  • jQuery validata插件实现方法

    如何使用jQuery Validata插件来实现表单验证呢?下面是完整的攻略。 1. 下载和引入jQuery Validata插件 首先需要下载jQuery Validata插件,并在页面中引入相关的JS和CSS文件。可以通过script和link标签来分别引入相关文件,具体方法如下所示: <!– 引入jQuery文件 –> <scri…

    css 2023年6月10日
    00
  • 移动端布局之动态rem的实现

    移动端布局是现在Web前端开发的重要一环,其中动态rem是解决移动端适配的好方法之一。下面是基本的实现步骤: 1. 设置页面的viewport 首先在HTML文档的head标签中设置viewport,这样才能正确显示在移动设备上: <meta name="viewport" content="width=device-wi…

    css 2023年6月9日
    00
  • css实现动态阴影、蚀刻文本、渐变文本效果

    CSS实现动态阴影、蚀刻文本、渐变文本效果的攻略如下: 动态阴影 动态阴影效果可以通过CSS3中的box-shadow属性实现,结合:hover伪类使其出现动态变化。具体实现步骤如下: 定义一个带有box-shadow属性的元素,可以设置阴影的颜色、位置、大小和扩散程度。例如: .box { width: 200px; height: 200px; box-…

    css 2023年6月9日
    00
合作推广
合作推广
分享本页
返回顶部