Javascript 简明教程

JavaScript - Changing CSS

Changing CSS with JavaScript

JavaScript 允许您动态地更改 HTML 元素的 CSS

当 HTML 在浏览器中加载时,它会创建一个 DOM treeDOM tree 以对象格式包含每个 HTML 元素。此外,每个 HTML 元素对象都包含 ' style ' 对象作为属性。此处,一个 ' style ' 对象包含颜色、背景颜色等各种属性,以更改或获取元素的样式。

因此,您可以使用 ' style ' 对象的各种属性来更改特定 HTML 元素的样式。

Syntax

按照以下语法更改 HTML 元素的 CSS。

element.style.property = value;

在上述语法中,“元素”是您需要从 DOM 树中访问的 HTML 元素。“属性”是一个 CSS 属性,“值”可以是静态的或动态的。

Example: Changing the style of the HTML element

我们在下面的代码中将初始样式应用于 div 元素。在 JavaScript 中,我们使用样式对象的 'backgroundColor' 属性更改 div 元素的背景颜色。

<!DOCTYPE html>
<html>
<head>
  <style>
    div {
      background-color: blue;
      width: 700px;
      height: 100px;
      color: white;
    }
  </style>
</head>

<body>
  <div id = "square"> Changing the color of this Div. </div> <br>
  <button onclick="changeColor()"> Change Color </button>
  <script>
    function changeColor() {
      let square = document.getElementById('square');
      square.style.backgroundColor = 'red';
    }
  </script>
</body>
</html>

Example: Adding multiple styles to a single HTML element

在下面的代码中,我们在 changeStyle() 函数中更改 <div> 元素的多个 CSS 属性。

我们使用 'backgroundColor’、'color’,'fontSize’ 和 'width' 属性来更改 CSS。

<!DOCTYPE html>
<html>
<body>
  <div id = "square"> Changing the style of this Div. </div> <br>
  <button onclick = "changeStyle()"> Change color </button>
  <script>
    function changeStyle() {
      document.getElementById('square').style.backgroundColor = 'red';
      document.getElementById('square').style.color = "white";
      document.getElementById('square').style.fontSize = "25px";
      document.getElementById('square').style.width = "700px";
    }
  </script>
</body>
</html>

Changing Style of the Element When Event Triggers

您还可以在特定事件触发时更改元素的样式。

Example

在下面的代码中,我们向 <div> 元素添加了 'click' 事件。当用户单击按钮时,它将更改 div 元素的背景颜色。

<!DOCTYPE html>
<html>
<head>
  <style>
    div {
      width: 700px;
      height: 100px;
      color: white;
      background-color: orange;
    }
  </style>
</head>
<body>
  <div id = "square"> Click Me </div> <br>
  <script>
    const square = document.getElementById('square');
    square.addEventListener('click', () => {
      square.style.backgroundColor = 'green';
      square.style.fontSize = "25px";
    });
  </script>
</body>
</html>

Example

在下面的代码中,我们在 div 元素上添加了“hover”事件。当鼠标光标进入和离开 div 元素时,它都会改变 div 元素的样式。

<!DOCTYPE html>
<html>
<head>
  <style>
    div {
      width: 700px;
      height: 100px;
      color: white;
      background-color: orange;
    }
  </style>
</head>
<body>
  <div id = "square"> Hover Me </div> <br>
  <script>
    const square = document.getElementById('square');
    square.addEventListener('mouseenter', () => {
      square.style.backgroundColor = 'green';
      square.style.fontSize = "25px";
    });
    square.addEventListener('mouseleave', () => {
      square.style.backgroundColor = 'orange';
      square.style.fontSize = "initial";
    });
  </script>
</body>
</html>

Changing CSS of HTML elements Dynamically

你还可以动态改变 HTML 元素的 CSS。你可以使用变量分配值。

Example

在下面的代码中,我们给 <div> 元素添加了默认样式。

我们也创建了多个单选按钮。当用户选择任意单选按钮时,它都会相应地改变 div 元素的样式。

<!DOCTYPE html>
<html>
<head>
<style>
  p {
    width: 700px;
    height: 100px;
    color: white;
    background-color: blue;
  }
</style>
</head>
<body>
<div><p id = "square">Select any of the following colors to change the background color</p></div>
<div>Yellow: <input type = "radio" id = "yellow" name = "color"></div>
<div>Green: <input type = "radio" id = "green" name = "color"></div>
<div>Red: <input type = "radio" id = "red" name = "color"></div>
<script>
  let square = document.getElementById('square');
  //    Changing the style when radio button changes
  let colors = document.getElementsByName('color');
  for (let i = 0; i < colors.length; i++) {
    colors[i].addEventListener('change', function () {
      square.style.backgroundColor = this.id;
    });
 }
</script>
</body>
</html>