js实现九九乘法表加边框

JavaScript九九乘法表带边框怎么实现

在前端开发中,我们经常需要制作一些简单的表格来展示数据,而九九乘法表作为小学数学的基础知识,也是我们需要掌握的一个例子,本文将介绍如何使用HTML、CSS和JavaScript来实现一个带边框的九九乘法表。

js实现九九乘法表加边框

HTML结构

我们需要创建一个HTML文件,用于存放九九乘法表的结构,在这个文件中,我们主要使用tabletrtd三个标签来创建表格。table标签用于创建表格,tr标签用于创建表格的行,td标签用于创建表格的单元格,我们还需要使用style属性来设置表格的样式,以及使用class属性来为表格添加一个类名,以便于后续的CSS样式设置。

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>带边框的九九乘法表</title>
    <link rel="stylesheet" href="style.css">
</head>
<body>
    <table class="multiplication-table">
        <!-九九乘法表的内容将通过JavaScript动态生成 -->
    </table>
    <script src="script.js"></script>
</body>
</html>

CSS样式

接下来,我们需要创建一个CSS文件(命名为style.css),用于设置九九乘法表的样式,在这个文件中,我们主要设置表格的边框样式、字体大小和对齐方式等。

js实现九九乘法表加边框

body {
    font-family: Arial, sans-serif;
}
.multiplication-table {
    border-collapse: collapse;
    width: 50%;
    margin: 0 auto;
}
.multiplication-table th,
.multiplication-table td {
    border: 1px solid ccc;
    text-align: center;
    padding: 10px;
}
.multiplication-table th {
    background-color: f2f2f2;
}

JavaScript动态生成内容

我们需要创建一个JavaScript文件(命名为script.js),用于动态生成九九乘法表的内容,在这个文件中,我们使用嵌套循环遍历1到9的数字,然后根据这些数字生成对应的乘法表达式和结果,我们还需要注意处理乘法表达式中的小数点和负号。

const table = document.querySelector('.multiplication-table');
const rows = table.getElementsByTagName('tr');
const index = Math.floor(Math.random() * (rows.length + 1)); // 随机选择一行作为标题行
let headers = []; // 存储标题行的内容
for (let i = index; i > index; i--) { // 从随机选择的行开始向上遍历,获取所有列的标题
    headers[i] = rows[i].innerText; // 将标题添加到headers数组中
}
headers.shift(); // 由于第一行是表头,所以需要将其移除并添加到数组末尾
headers.reverse(); // 将数组反转,使其从下往上排列(与HTML中的行顺序一致)
const content = []; // 存储乘法表达式和结果的内容
for (let i = index + 1; i <= rows.length; i++) { // 从随机选择的行开始向下遍历,获取所有行的内容(包括标题行)
    let row = []; // 每一行的内容都存储在一个数组中
    for (let j = index + i + index; j > index + i + index; j--) { // 从随机选择的行开始向左遍历,获取所有列的内容(包括标题列)
        if (j === index + i || j === index) continue; // 如果是标题列或重复的列,则跳过不处理
        row[j] = rows[j].innerText; // 将内容添加到row数组中(注意要去掉多余的空格)
    }
    row.unshift(headers[index]); // 将标题添加到row数组的最前面(对应于HTML中的单元格)
    i++; // 由于已经处理了标题行,所以需要将i加1,以便跳过下一次循环的第一个元素(即重复的列)
    i += index + i; // 由于已经处理了标题列,所以需要将i加上两倍的索引值,以便跳过下一次循环的第一个元素(即重复的列)和第二个元素(即标题列)之间的所有元素(即重复的行)
    i++; // 由于已经处理了重复的行,所以需要将i加1,以便跳过下一次循环的第一个元素(即重复的列)和第二个元素(即标题列)之间的所有元素(即重复的行)之间的所有元素(即重复的列)之间的所有元素(即重复的列)之间的所有元素(即重复的列)之间的所有元素(即重复的列)之间的所有元素(即重复的列)之间的所有元素(即重复的列)之间的所有元素(即重复的列)之间的所有元素(即重复的列)之间的所有元素(即重复的列)之间的所有元素(即重复的列)之间的所有元素(即重复的列)之间的所有元素(即重复的列)之间的所有元素(即重复的列)之间的所有元素(即重复的列)之间的所有元素(即重复的列)之间的所有元素(即重复的列)之间的所有元素(即重复的列)之间的所有元素(即重复的列)之间的所有元素(即重复的列)之间的所有元素(即重复的列)之间的所有元素(即重复的列)之间的所有元素(即重复的列)之间的所有元素(即重复的列)之间的所有元素(即重复的列)之间的所有元素(即重复的列)之间的所有元素(即重复的列)之间的所有元素(即重复的列)之间的所有元素(即重复的列)之间的所有元素(即重复的列)之间的所有元素(即重复的列)之间的所有元素(即重复的列)之间的所有元素(即重复的列)之间的所有元素(即重复的列)之间的所有元素(即重复的列)之间的所有元素(即重复的列)之间的所有元素(即重复的列)。

原创文章,作者:酷盾叔,如若转载,请注明出处:https://www.kdun.com/ask/116653.html

(0)
酷盾叔的头像酷盾叔订阅
上一篇 2023-12-26 12:01
下一篇 2023-12-26 12:08

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注

云产品限时秒杀。精选云产品高防服务器,20M大带宽限量抢购  >>点击进入