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

原生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定义鼠标经过时鼠标图形的十五种样式整理

    下面将为您详细讲解“CSS定义鼠标经过时鼠标图形的十五种样式整理”的完整攻略。 什么是CSS定义鼠标经过时鼠标图形的样式? CSS定义鼠标经过时鼠标图形的样式,顾名思义,就是在鼠标经过某个元素时改变鼠标的样式。这在网页设计中是非常重要的,能够让用户提高交互性和体验感。 如何定义鼠标经过时鼠标图形的样式? 在CSS中,定义鼠标经过时鼠标图形的样式,可以使用以下…

    css 2023年6月10日
    00
  • AlertBox 弹出层信息提示框效果实现步骤

    实现 AlertBox 弹出层信息提示框的步骤如下: 1. 定义 HTML 结构 首先需要定义一个 HTML 结构,用于存放提示框的内容。可以使用 div 元素作为容器,设置其 id 属性值为任意名称,例如 alertBox: <div id="alertBox"> <div class="content&qu…

    css 2023年6月10日
    00
  • 使用CSS定位HTML元素的实现方法

    使用CSS对HTML元素进行定位是网页开发中的重要技能之一,下面是实现这一过程的完整攻略。 1. 进行元素定位 在CSS中,元素定位主要有两种方式:相对定位和绝对定位。 1.1 相对定位 相对定位是通过position: relative属性来实现的。它可以将元素相对于其自身的原始位置进行定位。具体来说,相对定位会依据元素当前位置移动一定的距离,而不会影响其…

    css 2023年6月9日
    00
  • 你必须要知道的CSS特殊性概念

    你必须要知道的CSS特殊性概念 在CSS中,特殊性是用来确定样式优先级的一个重要概念。特殊性是由选择器的组成部分决定的,包括元素选择器、类选择器、ID选择器和内联样式等。本攻略将详细讲解CSS特殊性的概念、计算方法和示例说明。 1. 概念 CSS特殊性是用来确定样式优先级的一个重要概念。特殊性是由选择器的组成部分决定的,包括元素选择器、类选择器、ID选择器和…

    css 2023年5月18日
    00
  • 前端面试必备之CSS3的新特性

    我来讲解一下。 前端面试必备之CSS3的新特性 1. CSS3的属性选择器 在CSS3中,新增了一些属性选择器,让选择元素更加灵活方便。下面介绍两种常用的属性选择器: 1.1 属性存在选择器 语法:[attribute] 这个选择器可以匹配指定属性的元素。例如: input[type] 这段代码选择所有具有”type”属性的input元素。如果我们想匹配所有…

    css 2023年6月9日
    00
  • css实现的漂亮的分页效果代码(橘黄色与蓝色)

    下面是CSS实现漂亮的分页效果的代码攻略。 准备工作 在开始之前,需要准备以下素材: 分页的HTML结构代码如下: <div class="paging"> <ul class="page-list"> <li class="page-item"><a hr…

    css 2023年6月9日
    00
  • CSS3系列教程:背景图片(背景大小和多背景图) 应用说明

    下面是针对“CSS3系列教程:背景图片(背景大小和多背景图) 应用说明”的完整攻略。 1. 背景图片的应用说明 在网页开发中,背景图片是很重要的一部分,可以为网页增加美感和视觉效果。CSS3不仅提供了多种背景图片的设置方式,还提供了更多的背景属性可以设置。 1.1 背景图片的设置方式 设置背景图片可以通过以下的CSS属性: background-image:…

    css 2023年6月9日
    00
  • 手把手教你用纯css3实现轮播图效果实例

    让我来为您详细讲解“手把手教你用纯css3实现轮播图效果实例”的攻略。 手把手教你用纯CSS3实现轮播图效果实例 1. 前言 轮播图是现代网站中常见的一种元素。在这篇文章中,我们将使用CSS3实现一个轮播图。使用CSS3来实现轮播图可以减少网站的请求次数,而且使动画效果更加流畅。 2. HTML结构 要创建一个轮播图,我们需要一个图片列表和一个导航列表,其中…

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