JavaScript九九乘法表带边框怎么实现
在前端开发中,我们经常需要制作一些简单的表格来展示数据,而九九乘法表作为小学数学的基础知识,也是我们需要掌握的一个例子,本文将介绍如何使用HTML、CSS和JavaScript来实现一个带边框的九九乘法表。
HTML结构
我们需要创建一个HTML文件,用于存放九九乘法表的结构,在这个文件中,我们主要使用table
、tr
和td
三个标签来创建表格。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),用于设置九九乘法表的样式,在这个文件中,我们主要设置表格的边框样式、字体大小和对齐方式等。
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
本网站发布或转载的文章及图片均来自网络,其原创性以及文中表达的观点和判断不代表本网站。如有问题,请联系客服处理。
发表回复