less -- 总结 01 -(增删改查)

news/2024/9/13 2:41:37/ 标签: 前端

less的使用

// 下载插件 easy-less 
// 新建文件,后缀名是less,会自动生成一个后缀名为css的文件// 浏览器只认识 html css js
// less css 是一种动态样式语言,属于 css预处理语言的一种,它使用类似 css的语法,为 css的赋予了动态语言的特性,如变量、继承、运算、函数等,更方便css的编写和维护
// less css可以在多种语言、环境中使用,包括浏览器端、桌面客户端、服务端.box{width: 30px;height: 30px;border: 1px solid red;
}

变量的使用 

@width-px:30px;
@main-color:red;
// less让css具有可编程性
.boxFather{.box{width: @width-px;height: @width-px;color:@main-color;// @main-color:skyblue;.boxSon{color: @main-color;}}
}

 混合

.box{width: 300px;height: 200px;border: 2px solid red;
}
.main{color: skyblue;.box()
}

嵌套 

nav{width: 1200px;height: 66px;margin: 0 auto;ul{display: flex;list-style: none;align-items: center;li{flex: 1;text-align: center;height: 66px;line-height: 66px;border: 1px solid red;a{text-decoration: none;display: block;&:hover{background-color: red;}}}}
}

导入

// 后面必须要有英文 ; (分号),不然会报错
// ./嵌套 后缀的less可以省略,但css不能省略
@import './嵌套';
@import './混合.css';

 使用

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title><link rel="stylesheet" href="./嵌套.css">
</head>
<body><nav><ul><li><a href="">首页</a></li><li><a href="">我的</a></li><li><a href="">关于</a></li><li><a href="">加入</a></li></ul></nav>    
</body>
</html>

增删改查

html-css 代码

<!DOCTYPE html>  
<html lang="en">  
<head>  
<meta charset="UTF-8">  
<title></title>  
<style>  /* 简单的样式 */  table { width: 100%; border-collapse: collapse; }  th, td { border: 1px solid #ddd; padding: 8px; text-align: left; }  .modal { display: none; position: fixed; z-index: 1; left: 0; top: 0; width: 100%; height: 100%; overflow: auto; background-color: rgba(0,0,0,0.4); }  .modal-content { background-color: #fefefe; margin: 15% auto; padding: 20px; border: 1px solid #888; width: 80%; }  .close { color: #aaa; float: right; font-size: 28px; font-weight: bold; }  .close:hover, .close:focus { color: black; text-decoration: none; cursor: pointer; }  
</style>  
</head>  
<body>  <h1>用户信息</h1>  <div>  <input type="text" id="searchPhone" placeholder="输入手机号查询">  <button onclick="searchUser()">查询</button>  </div>  <button type="button" onclick="showModal('add')">添加用户</button>  <table id="userTable">  <thead>  <tr>  <th>身份证号</th>  <th>手机号</th>  <th>操作</th>  </tr>  </thead>  <tbody>  <!-- 用户数据将通过JavaScript动态添加 -->  </tbody>  </table>  <!-- 自定义弹框 -->  <div id="myModal" class="modal">  <div class="modal-content">  <span class="close" onclick="closeModal()">&times;</span>  <h2 id="modalTitle">添加用户</h2>  <form id="userInfoForm">  <label for="idCard">身份证号:</label>  <input type="text" id="idCard" required>  <br>  <label for="phone">手机号:</label>  <input type="text" id="phone" required>  <br>  <button type="button" onclick="submitForm()">提交</button>  </form>  </div>  </div>  <script src="script.js"></script>  
</body>  
</html>

js代码

let users = [];  
let editMode = false;  
let editIndex = null; // 用于存储当前编辑的用户的索引  const idCardRegex = /^(1[1-5]|2[1-3]|3[1-7]|4[1-6]|5[0-4]|6[1-5])\d{4}((19|20)\d{2})(0[1-9]|1[0-2])(0[1-9]|[12][0-9]|3[01])\d{3}(\d|[Xx])$/;  
const phoneRegex = /^1[3-9]\d{9}$/;  function validateIdCard(idCard) {  return idCardRegex.test(idCard);  
}  function validatePhone(phone) {  return phoneRegex.test(phone);  
}  function showModal(mode, index = null) {  editMode = mode === 'edit';  editIndex = index;  document.getElementById('myModal').style.display = 'block';  document.getElementById('modalTitle').textContent = editMode ? '修改用户' : '添加用户';  const idCardInput = document.getElementById('idCard');  const phoneInput = document.getElementById('phone');  if (editMode) {  const user = users[index];  idCardInput.value = user.idCard;  phoneInput.value = user.phone;  } else {  idCardInput.value = '';  phoneInput.value = '';  }  
}  function closeModal() {  document.getElementById('myModal').style.display = 'none';  editMode = false;  editIndex = null;  
}  function submitForm() {  const idCard = document.getElementById('idCard').value;  const phone = document.getElementById('phone').value;  if (validateIdCard(idCard) && validatePhone(phone)) {  if (editMode) {  // 修改用户  users[editIndex] = { idCard, phone };  } else {  // 添加新用户  users.push({ idCard, phone });  }  // 更新表格  updateTable();  closeModal();  } else {  alert('请输入有效的身份证号和手机号!');  }  
}  function updateTable() {  const tbody = document.getElementById('userTable').getElementsByTagName('tbody')[0];  tbody.innerHTML = ''; // 清空表格  users.forEach((user, index) => {  const row = tbody.insertRow();  const idCardCell = row.insertCell(0);  const phoneCell = row.insertCell(1);  const actionCell = row.insertCell(2);  idCardCell.textContent = user.idCard;  phoneCell.textContent = user.phone;  // 添加操作按钮  const editButton = document.createElement('button');  editButton.textContent = '编辑';  editButton.onclick = () => showModal('edit', index);  const deleteButton = document.createElement('button');  deleteButton.textContent = '删除';  deleteButton.onclick = () => deleteUser(index);  actionCell.appendChild(editButton);  actionCell.appendChild(document.createTextNode(' ')); // 添加一些间隔  actionCell.appendChild(deleteButton);  });  
}  
function deleteUser(index) {  users.splice(index, 1); // 从数组中删除用户  updateTable(); // 更新表格  
}  
function searchUser() {  const searchPhone = document.getElementById('searchPhone').value.trim(); // 去除首尾空格  // 如果输入为空,则显示所有数据  if (!searchPhone) {  displayAllUsers();  return;  }  // 如果输入不是有效的手机号,则提示错误  if (!validatePhone(searchPhone)) {  alert('请输入有效的手机号!');  return;  }  // 过滤并显示匹配的用户  const filteredUsers = users.filter(user => user.phone === searchPhone);  if (filteredUsers.length === 0) {  alert('未找到该手机号的用户!');  return;  }  // 更新表格以显示查询结果  const tbody = document.getElementById('userTable').getElementsByTagName('tbody')[0];  tbody.innerHTML = ''; // 清空表格  filteredUsers.forEach(user => {  const row = tbody.insertRow();  const idCardCell = row.insertCell(0);  const phoneCell = row.insertCell(1);  // 假设不需要操作列,如果需要可以添加  idCardCell.textContent = user.idCard;  phoneCell.textContent = user.phone;  });  
}  
// 假设这是用于显示所有用户的函数  
function displayAllUsers() {  const tbody = document.getElementById('userTable').getElementsByTagName('tbody')[0];  tbody.innerHTML = ''; // 清空表格  users.forEach(user => {  const row = tbody.insertRow();  const idCardCell = row.insertCell(0);  const phoneCell = row.insertCell(1);  // 假设不需要操作列,如果需要可以添加  idCardCell.textContent = user.idCard;  phoneCell.textContent = user.phone;  });  
}  
function validatePhone(phone) {  const regex = /^1(3|4|5|6|7|8|9)\d{9}$/;  return regex.test(phone);  
}  
users.push({ idCard: '410521200100001234', phone: '18200000000' });  
users.push({ idCard: '4105211200011224321', phone: '18400000000' });  
updateTable(); // 初始显示表格

http://www.ppmy.cn/news/1516530.html

相关文章

解除 Excel 表格的文档保护全攻略

在日常工作和学习中&#xff0c;我们可能会遇到 Excel 表格被保护无法编辑的情况。别担心&#xff0c;今天就为大家分享几种解除 Excel 表格文档保护的方法。 一、导入腾讯文档 可以将受保护的 Excel 表格上传到腾讯文档。在部分情况下&#xff0c;腾讯文档会尝试自动解除表…

Unity3D UI Toolkit数据动态绑定详解

前言 在Unity3D中&#xff0c;Compute Shader是一种强大的工具&#xff0c;用于在GPU上执行并行计算任务&#xff0c;这些任务通常涉及大量的数据处理&#xff0c;如图像处理、物理模拟等。然而&#xff0c;由于GPU的并行特性&#xff0c;Compute Shader中的线程&#xff08;也…

归并排序与其例题

一、归并排序的简述 归并排序&#xff08;Merge Sort&#xff09;是一种高效的排序算法&#xff0c;采用分治法&#xff08;Divide and Conquer&#xff09;的策略。它的基本思想是将一个大的问题分解成多个小问题&#xff0c;然后解决这些小问题&#xff0c;最后将结果合并起…

pnpm快速入门

pnpm快速入门 1.使用pnpm启动项目 pnpm是一个优化的包管理器&#xff0c;它通过锁定工作树的方式来减少依赖安装的开销。要在pnpm环境中启动项目&#xff0c;首先你需要确保已经全局安装了pnpm。然后按照以下步骤操作 克隆项目&#xff1a;如果项目还没有下载&#xff0c;使用…

Linux基础 - yum、rzsz、vim 使用与配置、gcc/g++的详细解说

目录 一、Linux 软件包管理器 yum A.什么是软件包&#xff1f; B.关于rzsz&#xff0c;yum的配置 1.安装 sz&#xff0c;rz 命令&#xff1a; a.执行命令sz可将linux中的文件传输到Windows中 b.执行rz命令可将Windows中的文件传输到linux 2.scp XXX.tgz 用户名另一台lin…

2024最新FL Studio24.1.1.4285破解版中文安装包百度云网盘下载地址

大家好&#xff0c;今天我要给大家介绍一款音乐制作神器——FL Studio 24.1.1.4285中文版。这款软件可是音乐制作界的翘楚&#xff0c;无论是专业人士还是音乐爱好者&#xff0c;都会为它的强大功能和易用性所折服。 我们来看看FL Studio的特点。 这是一款全能型的音乐工作站&…

el-form中使用v-model和prop实现动态校验

如何在Vue的el-form中使用v-model和prop实现动态校验&#xff0c;包括多个变量控制校验、数组循环校验和字段级条件显示。通过实例演示了如何配合rules和自定义验证函数来确保表单的完整性和有效性。 公式&#xff1a; 动态校验项的v-model的绑定值 el-form的属性 :model的值 …

SystemTap(stap)架构和原理介绍,以及脚本编写举例

1 SystemTap简介 SystemTap是一个诊断Linux系统性能或功能问题的开源工具。它允许开发人员和系统管理员深入研究内核甚至用户空间应用程序的行为&#xff0c;以便发现错误状态、性能问题&#xff0c;或者仅仅为了解系统是如何工作的。它使得对运行时的Linux系统进行诊断调式变…

Windows安装Tomcat10

1. 下载Tomcat Tomcat官网 https://tomcat.apache.org/download-10.cgi ​下载安装jdk17 &#xff1a;jdk-17_windows-x64_bin.exe 配置JAVA环境变量 JAVA_HOME&#xff1a;C:\Program Files\Java\jdk-17 PATH&#xff1a;%Java_Home%\bin;%Java_Home%\jre\bin; 2. 设置环境变…

【13.3 python中的高级文件操作】

python中的高级文件操作 在Python中&#xff0c;除了基本的文件读写和目录操作外&#xff0c;还有一些高级的文件和目录操作&#xff0c;如删除文件、重命名文件和目录、以及获取文件的基本信息等。这些操作通常通过os模块和pathlib模块来实现。下面我将详细介绍这些操作&#…

电脑换硬盘怎么全盘克隆?轻松实现数据迁移

随着科技的不断发展&#xff0c;电脑硬盘的存储容量和读写速度也在不断提升。为了获得更好的电脑使用体验&#xff0c;许多用户会选择更换更大容量、更高效的硬盘。然而&#xff0c;在更换硬盘的过程中&#xff0c;一个关键的问题摆在了我们面前&#xff1a;如何将旧硬盘中的所…

物联网---ESP32

物联网---ESP32 一、TCP/IP协议(互联网协议)二、MQTT协议(通信协议)2.1 MQTT基本原理2.2 连接MQTT服务端 三、ESP323.1 ESP介绍3.2 ESP32连接云端3.2.1 ESP32连接WIFI/MQTT3.2.2 OneNET云端 一、TCP/IP协议(互联网协议) TCP/IP是一组用于互联网及其他网络中数据传输的通信协议…

hutool工具类JSONUtil无法映射全是大写的单词,如何解决

背景 在解析第三方接口数据时&#xff0c;发现有的字段数据没有映射到对应的字段上&#xff0c;还有对于有的字段有空格或换行&#xff0c;也会一同存入数据库。 示例 实体类&#xff1a; public class Goods { private String id;private String unit;private Integer US…

HexView 刷写文件脚本处理工具-命令行介绍(八)-文件合并(/MO /MT)

介绍 /MO 和 /MT 参数:用于将一个或多个文件合并到程序的内部数据存储中。文件读取:使用第2.2.1.2.1节中描述的自动检测文件类型机制来读取文件。合并操作类型:需要选择合并操作的类型。可以选择透明模式(/MT)或不透明模式(/MO),两者不能混合使用。透明模式(/MT):加载的文…

黑神话悟空无法登录服务器怎么办

黑神话悟空游戏在登录的时候会遇到无法登录服务器的问题&#xff0c;玩家可以采用一些有效的方法进行解决&#xff0c;其中最主要的措施就是优化网络环境和减少网络干扰。Rak小编为您整理黑神话悟空无法登录服务器如何解决的步骤及注意事项。 优化网络环境 1、当游戏无法登录服…

使用notepad++将shell脚本转为UNIX格式方法(主要差别在换行符)

sh文件尽量在linux上改&#xff0c;因windows和linux换行符不同&#xff0c;在windows上改后&#xff0c;在linux上改可能会出现换行符错误。 windows换行符 linux换行符 windows环境改换行符方法 使用notepad点 编辑–》文档格式转换–》转换未unix格式。 注&#xff1a;tx…

搭建ELK-Filebeat采集系统日志

1、解压到/data/elk/filebeat mkdir -p /data/elk/filebeat tar -zxf filebeat-7.17.7-linux-x86_64.tar.gz -C /data/elk/filebeat --strip-components1 #--strip-components选项表示从目录级别上去除指定的前缀&#xff0c;以实现更加控制解压的效果 2、修改配置文件 vi /…

【长文细说】20个ElementPlus核心组件以及使用技巧

Element Plus 是一个基于 Vue 3 和 Vite 的组件库&#xff0c;它提供了一套丰富的 UI 组件&#xff0c;用于构建高质量的网页应用程序。Element Plus 是 Element UI 的 Vue 3 版本&#xff0c;Element UI 是一个广泛使用的 Vue 2 组件库。Element Plus 继承了 Element UI 的设计…

Qt5.14.2 操作PostgreSQL 记录

在Qt5.14.2中操作PostgreSQL数据库. #include <QSqlDatabase> #include <QSqlQuery> #include <QSqlError> #include <QDebug>// 初始化数据库连接QSqlDatabase db QSqlDatabase::addDatabase("QPSQL");//qDebug() << "aaaa&qu…

构建第一个zk

1 必要步骤 视频学习&#xff1a;5. Circcom 中的基本算术电路_哔哩哔哩_bilibili 文字学习&#xff1a;https://hackmd.io/YlNLZS2ESI21OSqdTW_mPw/S1jqN-h80/edit 第五课&#xff0c;circom实践&#xff0c;需要安装 1 vscode 2 rust&#xff1a;Windows安装Rust环境&…