一云博客 - web
type: channel
link: https://blog.yiyunt.cn/index.php/tag/web/
items: css选择器备忘录
items: JS Document.evaluate()的使用
items: 11个开源免费Web代码编辑器
items: 实战：一款实用炫酷的Linux系统Web管理平台
items: JS之给元素添加类的方法
items: layui 获取父页面的表格的值 -- 转载

css选择器备忘录
type: item
date: 2024-04-18T16:32:05+08:00
description: {mtitle title="目录信息"/}啥是CSS选择器通用选择器 - *元素选择器 - element类名选择器 - .classID 选择器 - #id多选择器 - .class.class-2逗号组合 - .class, .class-2后代选择器 - .class .class-2相邻兄弟选择器 - .class + .class-2子选择器 - .class > .class-2兄弟选择器 - .class ~ .class-2脑残猫头鹰选择器 - + 属性选择器 - []链接伪类选择器input相关第N个孩子指定类型的第N个孩子伪类选择器伪元素0. 啥是CSS选择器CSS选择器 是用于选择 HTML 元素并为其应用样式的一种机制。选择器允许我们根据元素的 类型 、 属性 、 位置 以及其他特征来选择要样式化的元素，从而实现对网页样式的精确控制。以下是一些常见的 CSS 选择器及其用途：「元素选择器（Element Selector）」 ：选择指定类型的 HTML 元素。例如， p 选择所有段落元素。「类选择器（Class Selector）」 ：选择具有指定类名的元素。以点号（ . ）开头，后跟类名。例如， .button 选择所有类名为 button 的元素。「ID 选择器（ID Selector）」 ：选择具有指定 ID 的元素。以井号（ # ）开头，后跟 ID 名称。例如， #header 选择 ID 为 header 的元素。「后代选择器（Descendant Selector）」 ：选择指定元素的后代元素。使用 空格 分隔两个选择器，其中第一个选择器表示 父元素第二个选择器表示 后代元素例如， div p 选择所有 元素内部的所有段落 元素。「相邻兄弟选择器（Adjacent Sibling Selector）」 ：选择紧接在另一个元素后面的元素。使用加号（ + ）符号连接两个选择器，其中第一个选择器表示 第一个元素第二个选择器表示其 紧邻的兄弟元素例如， h2 + p 选择所有紧接在 元素后面的 元素。「通用选择器（Universal Selector）」 ：选择页面中的 「所有元素」 。使用星号（ * ）表示。例如， * 选择页面中的所有元素。除了这些基本的选择器外，CSS 还提供了许多其他类型的选择器，如 伪类选择器 （例如 :hover 、 :active ）、 伪元素选择器 （例如 ::before 、 ::after ）、 属性选择器 （例如 [type="text"] ）等，可以根据具体的需求选择合适的选择器来对页面元素进行样式化。{dotted startColor="#ff6c6c" endColor="#1989fa"/}1. 通用选择器 - *CSS的 通用选择器 是一个星号（ * ），它匹配文档中的 「任何元素」 。使用通用选择器，我们可以选择页面上的 「所有元素」 ，并为它们应用相同的样式。例如，如果我们想为页面上的所有元素设置相同的字体样式，我们可以使用通用选择器来实现。{callout color="#2bff00"}但要注意，过度使用通用选择器可能会导致 「性能问题」 ，因为它会匹配页面上的所有元素，包括嵌套元素，这可能会增加浏览器的渲染负担。因此，建议在必要时谨慎使用通用选择器。{/callout}{dotted startColor="#ff6c6c" endColor="#1989fa"/}2. 元素选择器 - element元素选择器 是 CSS 中最简单的选择器之一，它通过指定 HTML 元素的名称来选择元素。例如，要选择所有段落元素 ，我们可以使用以下选择器：p { /* CSS 样式 */ }这将选择页面中的所有段落元素，并应用所指定的 CSS 样式。{dotted startColor="#ff6c6c" endColor="#1989fa"/}3. 类名选择器 - .class类选择器 用于选择具有特定类名的 HTML 元素。类选择器以点号（ . ）开头，后跟类名。例如，如果我们有一个类名为 button 的按钮元素，我们可以使用类选择器来选择它：.button { /* CSS 样式 */ }这将选择页面中所有具有类名 button 的元素，并应用所指定的 CSS 样式。类选择器使我们可以为页面中的 「多个元素定义相同的样式」 ，而不必重复定义。此外，一个元素可以同时具有多个类，这样就可以轻松地将多个样式应用于同一个元素。{dotted startColor="#ff6c6c" endColor="#1989fa"/}4. ID 选择器 - #idID 选择器 是 CSS 中用于选择具有特定 ID 属性的 HTML 元素的选择器。ID 选择器以井号（…

JS Document.evaluate()的使用
type: item
date: 2024-04-12T14:45:00+08:00
description: Document 接口的 evaluate() 方法根据参数中给出的 XPath 表达式选择元素。 XPath 表达式可以在 HTML 和 XML 文档上进行计算。Syntaxjsevaluate(xpathExpression, contextNode, namespaceResolver, resultType, result)ParametersxpathExpression 表示要评估的 xpath 的字符串。contextNode 查询的上下文节点（请参阅 XPath specificatio ）。通常将 document 作为上下文节点传递。namespaceResolver 将传递任何命名空间前缀的函数，并应返回表示与该前缀关联的命名空间 URI 的字符串。它将用于解析 xpath 本身内的前缀，以便它们可以与文档匹配。 null 值对于 HTML 文档或不使用命名空间前缀时很常见。resultType 与要返回的结果 XPathResult 的类型相对应的整数。以下值是可能的： ANY_TYPE (0) 无论什么类型都会自然地由给定的表达式产生。 NUMBER_TYPE (1) 包含单个数字的结果集。例如，在使用 count() 函数的 xpath 表达式中很有用。 STRING_TYPE (2) 包含单个字符串的结果集。 BOOLEAN_TYPE (3) 包含单个 boolean 值的结果集。例如，使用 not() 函数的 xpath 表达式很有用。 UNORDERED_NODE_ITERATOR_TYPE (4) 包含与表达式匹配的所有节点的结果集。结果集中的节点不一定与它们在文档中出现的顺序相同。 注意：此类型的结果包含对文档中节点的引用。修改节点将使迭代器失效。修改节点后，尝试迭代结果将导致错误。 ORDERED_NODE_ITERATOR_TYPE (5) 包含与表达式匹配的所有节点的结果集。结果集中的节点的顺序与它们在文档中出现的顺序相同。 注意：此类型的结果包含对文档中节点的引用。修改节点将使迭代器失效。修改节点后，尝试迭代结果将导致错误。 UNORDERED_NODE_SNAPSHOT_TYPE (6) 包含与表达式匹配的所有节点的快照的结果集。结果集中的节点不一定与它们在文档中出现的顺序相同。 注意：这种类型的结果是快照，本质上是匹配节点的列表。您可以通过更改快照节点来更改文档。修改文档不会使快照失效；但是，如果文档发生更改，快照可能与文档的当前状态不对应，因为节点可能已移动、更改、添加或删除。 ORDERED_NODE_SNAPSHOT_TYPE (7) 包含与表达式匹配的所有节点的快照的结果集。结果集中的节点的顺序与它们在文档中出现的顺序相同。 注意：这种类型的结果是快照，本质上是匹配节点的列表。您可以通过更改快照节点来更改文档。修改文档不会使快照失效；但是，如果文档发生更改，快照可能与文档的当前状态不对应，因为节点可能已移动、更改、添加或删除。 ANY_UNORDERED_NODE_TYPE (8) 包含与表达式匹配的任何单个节点的结果集。该节点不一定是文档中与表达式匹配的第一个节点。 FIRST_ORDERED_NODE_TYPE (9) 包含文档中与表达式匹配的第一个节点的结果集。result 用于获取结果的现有 XPathResult 。如果设置为 null 该方法将创建并返回一个新的 XPathResult 。Return value链接到所选节点的 XPathResult 。如果 result 是 null ，则它是一个新对象，如果不是，则它与作为 result 参数传递的对象相同Examplesjsconst headings = document.evaluate( "/html/body//h2", document, null, XPathResult.ANY_TYPE, null, ); /* 在文档中搜索所有 h2 元素。* 结果可能是一个无序的节点迭代器。*/ let thisHeading = headings.iterateNext(); let alertText = "Level 2 headings in this document are:\n"; while (thisHeading) { alertText += `${thisHeading.textContent}\n`; thisHeading = headings.iterateNext(); } alert(alertText); // 提醒所有 h2 元素的文本请注意，在上面的示例中，更详细的 xpath 优于常见的快捷方式（例如 //h2 ）。一般来说，如上例所示，更具体的 xpath…

11个开源免费Web代码编辑器
type: item
date: 2024-04-10T15:32:21+08:00
description: 基于Web的代码编辑器是一种用于直接在Web浏览器中编写代码的应用，无需在本地安装任何软件。 它提供了一个在线开发环境，开发人员可以在其中编写代码、预览效果、更改代码并与团队成员实时协作。基于Web的代码编辑器对于团队之间的协作非常重要， 有许多优势 ：可访问性：基于Web的代码编辑器可以从任何具有互联网连接的设备访问，使团队成员可以轻松地远程协同工作。这种可访问性具备更大的灵活性，并支持跨地区和跨时区的协作。实时团队协作：基于Web的代码编辑器通常支持实时协作功能，允许多个团队成员同时处理同一代码。开发人员能够在项目上进行协作，一起编辑和审查代码，并即时反馈。版本控制集成：与Git等版本控制系统集成，使团队能够管理和跟踪代码库的变更。通过两者集成，以提供集中的代码存储库，促进工作流的顺畅协作，从而简化协作。代码共享和审查：基于Web的代码编辑器提供了与团队成员共享代码片段或整个项目的简单方法。这简化了代码评审的过程，团队成员可以直接在编辑器中留下评论、提出更改建议、提供反馈。跨平台兼容性：基于Web的代码编辑器一般独立于平台，允许开发人员使用不同的操作系统（Windows、macOS、Linux）进行协作，而不会出现兼容性问题。具备较高包容性，不管团队成员的开发环境如何都能够为项目做贡献。本文主要推荐一些比较好的开源Web代码编辑器，以直接体验或嵌入到你的产品中。01 Monaco Editor https://github.com/microsoft/monaco-editorMonaco编辑器是微软开发的基于Web的代码编辑器，由VS Code提供功能支持。体验地址：https://microsoft.github.io/monaco-editor/playground.html优点：具有语法突出显示、代码完成和调试功能的丰富功能集。高度可定制和可扩展。性能出色，即使是大型代码库。支持多种编程语言。与其他工具和框架的集成。缺点：与更简单的代码编辑器相比，学习曲线更陡峭。由于其功能丰富的性质，需要更多的资源来运行。有限的离线功能，因为它主要在网络环境中运行。02 OpenVSCode Server https://github.com/gitpod-io/openvscode-server这个项目提供了一个可以在远处服务器上运行的VS Code，允许通过Web浏览器进行访问。它基于Gitpod和GitHub Codespaces 的技术架构 。VS Code团队对其架构进行重构，以支持基于浏览器的工作模式，并且该项目共享了使用最新版本的VS Code所需的最小更改集，具有简单的升级路径和低维护工作量。03 ecode https://github.com/SpartanJ/ecodeecode是为现代硬件设计的轻量级代码编辑器，专注于响应性和性能。它利用硬件加速的eepp GUI，并改进eepp GUI库。功能特征：轻巧便携极简的GUI，可定制的配色方案支持50多种语言的文本高亮显示和LSP语义高亮显示多光标支持，实现高效编辑终端集成，实现无缝命令执行用于快速访问编辑器功能的命令行自动完成和可定制的键盘绑定04 Code Server https://github.com/coder/code-server Code-Server是一个支持在浏览器中运行VS Code的开源项目，能够在任何设备上提供一致的开发环境。它还支持使用云服务器以获得更快的执行效率，并为移动的用户保留电池寿命。05 Tabby https://github.com/TabbyML/tabbyTabby是一个可以私有化部署的AI编码助手，提供了GitHub Copilot的开源和本地部署方案。它是独立的，不需要DBMS或云服务，具有易于集成的OpenAPI接口，并支持消费级GPU。另外，Tabby可以使用Docker轻松安装。06 Neko Code Editor https://github.com/flyingcatdeveloper/nceNeko Code Editor是一个简单的代码编辑器，具有Monaco Editor类似的功能，包括：控制台、在新选项卡中打开代码、多文件功能、项目管理、DevLog更新、本地数据保存、可自定义设置等功能。 功能特征：Monaco编辑器功能： 具有代码自动完成、 MDN 应 用 等功能。控制台：只需单击一个按钮即可轻松查看控制台。在新选项卡中打开代码：查看代码时，它看起来就像一个网页。多文件功能：拥有尽可能多的文件，支持HTML，CSS，文件夹和JS文件。仪表板：在一个位置查看所有编辑器，沿着显示上次打开它们的时间。项目导入：开始在新设备上工作或通过导入项目恢复已删除的数据。项目下载：安全下载整个项目，以防止…

实战：一款实用炫酷的Linux系统Web管理平台
type: item
date: 2024-04-10T11:06:31+08:00
description: {mtitle title="院长简介"/}作者：院长职位：运维开发工程师官网：https://deanit.cn博客：https://blog.deanit.cn擅长：{callout color="#bfbfbf"}【虚拟化，容器化，自动化运维，CICD，监控，日志，中间件，双机热备，分布式存储，数据库，认证，组网隧道，Kali 安全渗透，网络攻击，负载均衡，Html，Css，Js，Jq，Vue3，Shell，Python，Go，前后端框架】{/callout}项目简介{callout color="#bfbfbf"}Webmin 是用于Linux / UNIX系统管理的开源Web控制面板。Webmin允许您管理用户，组，磁盘配额以及配置最受欢迎的服务，包括Web，FTP，电子邮件和数据库服务器。{/callout}项目官网https://webmin.com/项目GitHubhttps://github.com/webmin/webminWebmin特点易于使用 ：Webmin提供了直观的界面和友好的用户体验，使得系统管理员能够轻松地完成各种管理任务。支持多种操作系统 ：Webmin支持多种Linux发行版以及其他UNIX系统，如FreeBSD和Solaris等。全面的管理功能 ：Webmin集成了众多常见的服务器管理任务，包括系统配置、软件包管理、用户管理等。安全性高 ：Webmin具有访问控制和SSL支持，为远程管理提供了足够的安全性。可扩展性强 ：Webmin采用插件式结构，可以轻松地添加或删除功能模块，使其具有很强的扩展性和伸缩性。多语言支持 ：Webmin提供多国语言版本，包括中文，能够满足不同地区和语言习惯的用户需求。灵活的配置 ：Webmin的配置非常灵活，可以根据用户的需求进行定制，满足不同规模和服务器的管理需求。实时监控与日志分析 ：Webmin能够实时监控服务器的状态，提供实时的日志分析功能，帮助管理员及时发现并解决潜在问题。支持自动化任务 ：Webmin可以配置自动化任务，使得管理员能够定时执行特定的管理任务，提高管理效率。集成度高 ：Webmin可以与其他常见的服务器软件进行集成，如Apache、Nginx、MySQL等，方便管理员进行统一的管理和维护。{mtitle title="部署安装"/}设置repo源vim /etc/yum.repos.d/webmin.repo [Webmin] name=Webmin Distribution Neutral #baseurl=https://download.webmin.com/download/yum mirrorlist=https://download.webmin.com/download/yum/mirrorlist enabled=1下载Webmin GPG密钥[root@Dean ~]# wget http://www.webmin.com/jcameron-key.asc --no-check-certificate --2024-01-21 18:23:41-- http://www.webmin.com/jcameron-key.asc 正在解析主机 www.webmin.com (www.webmin.com)... 216.105.38.11 ...... 长度：1320 (1.3K) [text/plain] 正在保存至: “jcameron-key.asc” jcameron-key.asc 100%[=======================================================================================>] 1.29K --.-KB/s 用时 0s 2024-01-21 18:23:44 (37.0 MB/s) - 已保存 “jcameron-key.asc” [1320/1320])导入Webmin GPG密钥[root@Dean ~]# rpm --import jcameron-key.asc重新生成缓存yum clean all yum makecahe安装webmin[root@Dean ~]# yum install webmin -y Webmin Distribution Neutral 3.6 MB/s | 20 MB 00:05 上次元数据过期检查：0:00:06 前，执行于 2024年01月21日 星期日 18时26分18秒。 依赖关系解决。 =============================================================================================…

JS之给元素添加类的方法
type: item
date: 2024-03-28T15:11:00+08:00
description: 原生js中添加类的方法//1.为 元素添加一个类: document.getElementById("div").classList.add("类名"); //2.为 元素添加多个类: document.getElementById("div").classList.add("类名1","类名2","类名3",...); //3.为 元素移除一个类: document.getElementById("div").classList.remove("类名"); //4.为 元素移除多个类: document.getElementById("div").classList.remove("类名1","类名2","类名3",...); .jquery中添加类的方法//1.为 元素添加一个类: $("#div").addClass("类名"); //2.为 元素添加多个类: //只需要通过空格来间隔 class 值即可一次性添加多个 class $("#div").addClass("类名1 类名2 类名3"); //3.为 元素移除一个类: $("#div").removeClass("类名"); //4.为 元素移除多个类: //只需要通过空格来间隔 class 值即可一次性清除掉多个 class $("#div").removeClass("类名1 类名2 类名3"); 检查是否含有某个类的方法//检查是否含有某个CSS类 div.classList.contains('类名'); //return true or false

layui 获取父页面的表格的值 -- 转载
type: item
date: 2024-03-28T13:14:00+08:00
description: 如果您在 layui 中使用了表格组件，那么可以使用 layui 提供的 table 模块中的 getParentVal() 方法来获取父页面的表格的值。具体步骤如下：1.在父页面中定义表格，并给表格添加 id： 2.在子页面中调用 getParentVal() 方法：var parentTable = parent.layui.table; // 获取父页面中的 table 模块 var parentTableData = parentTable.cache.parentTable; // 获取表格数据其中，parentTable 变量获取父页面中的 table 模块，parentTableData 变量获取父页面中表格的数据。注意，获取父页面中的 table 模块需要使用 parent 对象，该对象表示当前子页面所在的父页面。如果您需要获取表格中被选中的数据，则可以使用 layui 提供的 getCheckStatus() 方法来获取。示例代码如下：var parentTable = parent.layui.table; // 获取父页面中的 table 模块 var checkStatus = parentTable.checkStatus('parentTable'); // 获取选中行的数据 var checkedData = checkStatus.data; // 获取选中行的数据数组其中，checkStatus() 方法用于获取选中行的状态，'parentTable' 参数表示表格的 id，checkedData 变量则是选中行的数据数组。原文出处： layui 获取父页面的表格的值