原生javascript实现读写CSS样式的方法详解

yizhihongxing

原生JavaScript实现读写CSS样式的方法详解

CSS样式可以通过JavaScript动态地进行修改和设置,而这些操作也被称作DOM样式操作。在本文中,我将详细讲解原生JavaScript实现读写CSS样式的方法。

1. 通过style属性读写CSS属性

通过元素的style属性可以获取或修改该元素的行内样式。行内样式是直接写在HTML标签中的样式,优先级最高。

读取行内样式

使用element.style.property即可获取对应属性的值。例如,获取一个div元素的宽度和高度:

const divElement = document.querySelector('div');
const width = divElement.style.width;
const height = divElement.style.height;

修改行内样式

通过element.style.property可以修改行内样式的值。例如,修改上面div元素的宽度和高度:

divElement.style.width = '100px';
divElement.style.height = '50px';

同时,也可以使用style.cssText来一次性修改多个属性:

divElement.style.cssText = 'width: 100px; height: 50px; background-color: #f00;';

2. 通过getComputedStyle方法读取计算后的样式

通过window.getComputedStyle()方法可以获取到计算后的样式,计算后的样式是从浏览器解析样式表后计算出来的,具有最高的优先级。

读取计算后的样式

使用window.getComputedStyle(element, [pseudo])即可获取计算后的属性值。其中,element是要获取属性值的元素节点,pseudo是可选参数,表示要获取的伪元素的属性值。

例如,获取一个div元素的背景颜色和字体大小:

const divElement = document.querySelector('div');
const bgColor = window.getComputedStyle(divElement).backgroundColor;
const fontSize = window.getComputedStyle(divElement).fontSize;

修改计算后的样式

通过getComputedStyle方法只能获取计算后的样式值,无法直接修改计算后的样式。如果需要修改计算后的样式,需要通过其他方式改变元素的样式属性,才能改变计算后的样式。

示例说明

示例1

<!DOCTYPE html>
<html>
<head>
  <title>示例1</title>
</head>
<body>
  <div id="box" style="width: 100px; height: 100px; background-color: #f00;"></div>
  <button onclick="changeColor()">改变颜色</button>
  <script>
    const boxElement = document.querySelector('#box');
    const colorList = ['#f00', '#0f0', '#00f'];
    function changeColor() {
      const currentColor = window.getComputedStyle(boxElement).backgroundColor;
      let index = colorList.indexOf(currentColor);
      index++;
      if (index >= colorList.length) {
        index = 0;
      }
      boxElement.style.backgroundColor = colorList[index];
    }
  </script>
</body>
</html>

在这个例子中,我们在页面中添加了一个div元素和一个按钮。点击按钮时,该元素的背景颜色可以循环变为红色、绿色、蓝色。该例子中同时使用了行内样式和计算后的样式获取和修改元素的样式。

示例2

<!DOCTYPE html>
<html>
<head>
  <title>示例2</title>
  <style>
    #box{
      width: 100px;
      height: 100px;
      background-color: #f00;
    }
    #box:hover {
      background-color: #0f0;
      border-radius: 50%;
    }
  </style>
</head>
<body>
  <div id="box"></div>
  <button onclick="changeColor()">改变颜色</button>
  <script>
    const boxElement = document.querySelector('#box');
    function changeColor() {
      boxElement.style.backgroundColor = '#00f';
    }
  </script>
</body>
</html>

在这个例子中,我们使用了CSS样式表中的:hover伪类为元素添加了一个圆形的边框。当鼠标悬停时,元素的背景颜色将变为绿色,并带有圆形边框。当点击按钮时,元素的背景颜色将直接变为蓝色,而圆形边框则不再出现。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:原生javascript实现读写CSS样式的方法详解 - Python技术站

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

相关文章

  • 浅析CSS :is() 和 :where() 即将出现在浏览器中

    概述 在CSS4 Selector Level 4 规范中, :is() 和 :where() 伪类将被正式引入到浏览器中。这两个伪类都可以用来简化CSS选择器的书写,提高选择器的复用性。其中,:is() 和 :where() 功能类似,但也有细微差异。 :is() 伪类 对于复杂的选择器,我们经常需要嵌套或者使用逗号分隔不同的选择器。 :is() 可以让我…

    css 2023年6月9日
    00
  • Python全栈之学习HTML

    Python全栈之学习HTML攻略 1. 前置知识 在开始学习HTML前,你需要掌握以下前置知识: 基本的计算机操作能力 基本的文本编辑器使用技能 了解网页和互联网的基本概念 了解HTML的基本语法和标记 如果你已经掌握了以上知识,那么可以开始下一步。 2. 学习HTML 2.1 HTML基础语法 HTML是一种标记语言,用于创建网页。HTML标记由尖括号括…

    css 2023年6月10日
    00
  • 使用Qt QSS绘制简单美化界面功能

    使用Qt QSS(Qt Style Sheets)可以方便的美化QT应用程序的界面。下面是使用Qt QSS绘制简单美化界面的完整攻略: 步骤1:在QT的界面设计器中,通过QSS design按钮添加样式表 首先,我们需要在QT的界面设计器中创建一个界面,并在此基础上添加样式表。为此,我们可以通过界面设计器的属性编辑器中的QSS按钮添加样式表文件。 步骤2:编…

    css 2023年6月11日
    00
  • CSS网页布局入门教程6:左列固定,右列宽度自适应

    【CSS网页布局入门教程6:左列固定,右列宽度自适应】是指在网页布局中,将页面分为左右两个部分,左侧固定宽度,右侧随着浏览器窗口大小的变化而宽度自适应的一种布局方式。接下来,我们将详细讲解如何实现这种布局方式。 HTML结构 首先,我们需要使用HTML代码编写页面结构。整个页面分为两个部分,左侧固定宽度,右侧宽度自适应,因此我们需要使用两个div元素来分别表…

    css 2023年6月10日
    00
  • css实现兼容火狐、IE的LI奇偶行颜色交替方法

    CSS实现兼容火狐、IE的LI奇偶行颜色交替方法 为了实现网页中列表的行颜色交替,通常需要使用CSS中的:odd和:even伪类,但是在不同的浏览器下(比如firefox和IE)这两个伪类的实现方式有所不同,因此需要针对不同的浏览器进行特别处理,以下是实现方法: 方法一:使用CSS选择器 li:nth-child(odd) { background-colo…

    css 2023年6月9日
    00
  • 精彩的Bootstrap案例分享 重点在注释!(选项卡、栅格布局)

    标题:精彩的Bootstrap案例分享 重点在注释!(选项卡、栅格布局)攻略 介绍:Bootstrap是一个非常流行的前端开发框架,可以帮助开发人员在短时间内快速构建现代化的网站和Web应用程序。在本文中,我们将重点介绍Bootstrap中选项卡和栅格布局的使用。此外,我们将详细说明如何在代码中添加注释,以便其他开发人员能够更好地理解您的代码。 一、选项卡 …

    css 2023年6月9日
    00
  • vue-cli的index.html中使用环境变量方式

    下面我来详细讲解使用环境变量方式在Vue CLI的index.html中使用的完整攻略。 1. 环境变量配置 首先,我们需要在.env文件中配置环境变量。Vue CLI会自动加载.env文件中的配置,具体的加载顺序可以参考官方文档。下面是一个简单的.env文件示例: VUE_APP_TITLE=My App VUE_APP_API_BASE_URL=http…

    css 2023年6月9日
    00
  • 详解css图像拼合技术(精灵图)

    下面是“详解CSS图像拼合技术(精灵图)”的完整攻略。 什么是CSS图像拼合技术 CSS图像拼合技术,也叫精灵图技术,是指将多个小图像合成一张大的背景图片,减少页面加载次数,提升页面加载速度和性能的一种技术。通过CSS的背景定位和尺寸调整来显示需要的图像。 精灵图的原理 精灵图的原理就是将多个小图像合成一张大的背景图片,通过CSS的背景定位和尺寸调整来显示需…

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