当前位置: 首页 > news >正文

6_Sass 选择器函数 --[CSS预处理]

Sass 提供了一系列的选择器函数,用于操作和组合CSS选择器。这些函数可以帮助你更灵活地创建样式规则,并且可以减少重复代码。以下是几个常用的选择器函数及其用法:

1. selector-append($selector1, $selector2...)

selector-append($selector1, $selector2...) 是 Sass 中的一个选择器函数,它将多个选择器连接在一起,但不会添加空格或逗号。这意味着它适合创建后代选择器、类的组合等,但不适合用于兄弟选择器或子选择器(因为这些需要特定的符号来分隔)。

下面是两个使用 selector-append($selector1, $selector2...) 函数的例子:

示例 1:创建后代选择器

假设你有一个基础类 .button 和一个修饰符类 .primary,你想创建一个新的选择器 .button.primary 来应用样式。

$base-selector: ".button";
$modifier-selector: ".primary";// 使用 selector-append 创建组合选择器
#{selector-append($base-selector, $modifier-selector)} {background-color: blue;color: white;
}

编译后的 CSS 将会是:

.button.primary {background-color: blue;color: white;
}

在这里插入图片描述

在这个例子中,selector-append() 函数被用来将两个选择器 .button.primary 连接成一个单一的选择器 .button.primary

示例 2:动态生成选择器

如果你想要根据变量动态地生成一系列类似的选择器,比如为不同的尺寸创建按钮样式,你可以这样做:

$sizes: ".small" ".medium" ".large";
$base-button: ".btn";@each $size in $sizes {// 动态构建每个尺寸的按钮选择器#{selector-append($base-button, #{$size})} {padding: if($size == '.small', 5px, if($size == '.medium', 10px, 15px));font-size: if($size == 'small', 12px, if($size == '.medium', 14px, 16px));}
}

编译后的 CSS 将会是:

.btn.small {padding: 5px;font-size: 12px;
}.btn.medium {padding: 10px;font-size: 14px;
}.btn.large {padding: 15px;font-size: 16px;
}

在这里插入图片描述

在这个例子中,我们使用了 @each 循环和 selector-append() 函数来动态创建三个不同尺寸的按钮选择器,并且根据尺寸的不同设置了不同的内边距和字体大小。

这两个示例展示了如何利用 selector-append() 函数来简化代码,减少重复,并保持良好的可维护性。请注意,当使用 selector-append() 时,确保所连接的选择器之间不需要额外的空间或特殊符号,如 >+,因为该函数不会自动插入这些符号。

2. selector-nest($selector...)

selector-nest($selector...) 是 Sass 中的一个选择器函数,它允许你以嵌套的方式书写选择器,然后编译成正确的CSS输出。这使得你可以更直观地组织代码,并且更容易维护。以下是两个使用 selector-nest() 函数的例子:

示例 1:嵌套后代选择器

假设你有一个 HTML 结构,其中 .header 包含一个 .nav 和多个链接(a 标签)。你想为这些元素编写样式,但希望在 SCSS 文件中保持结构化的布局。

$header: ".header";
$nav: "nav";
$link: "a";// 使用 selector-nest 创建嵌套的选择器
#{selector-nest($header, $nav, $link)} {color: blue;text-decoration: none;
}// 编译后的 CSS 将会是:
.header nav a {color: blue;text-decoration: none;
}

在这里插入图片描述

在这个例子中,我们使用了 selector-nest() 函数来创建一个后代选择器链,即 .header nav a。这意味着所有位于 .header 内部的 <nav> 元素中的 <a> 链接都将应用这些样式。

示例 2:组合多种类型的选择器

有时候你需要同时处理不同种类的选择器,例如类选择器、ID选择器和伪类。selector-nest() 可以帮助你轻松实现这一点。

$container: ".container";
$button: ".button";
$active: ":active";// 使用 selector-nest 创建复杂的嵌套选择器
#{selector-nest($container, $button, $active)} {background-color: red;
}// 编译后的 CSS 将会是:
.container .button:active {background-color: red;
}

在这里插入图片描述

在这个例子中,我们创建了一个更为复杂的选择器 .container .button:active,它将应用于任何处于激活状态(:active)的 .button 按钮,前提是该按钮位于 .container 容器内。

通过 selector-nest(),你可以简化你的 SCSS 代码,使其更加贴近实际的 HTML 结构,同时也提高了代码的可读性和可维护性。请注意,虽然这个函数非常有用,但在实际项目中应当根据需要合理使用,避免过度嵌套导致难以理解和调试的代码。

3. selector-unify($selector1, $selector2...)

selector-unify($selector1, $selector2...) 是 Sass 中的一个选择器函数,它尝试将两个或多个选择器统一为一个单一的选择器。如果这些选择器可以被统一,则返回统一后的新选择器;否则返回 null。这在处理复杂的继承关系或者需要确保某些样式只应用于特定组合的情况下非常有用。

以下是两个使用 selector-unify() 函数的例子:

示例 1:统一基础类和修饰符类

假设你有一个基础按钮类 .btn 和一个修饰符类 .btn-primary,你想创建一个新的选择器来应用特定的样式,但仅当两者都存在时才有效。

$base: ".btn";
$modifier: ".btn-primary";// 使用 selector-unify 统一两个选择器
#{selector-unify($base, $modifier)} {background-color: blue;color: white;
}// 编译后的 CSS 将会是:
.btn.btn-primary {background-color: blue;color: white;
}

在这里插入图片描述

在这个例子中,selector-unify() 函数成功地将 .btn.btn-primary 统一成了 .btn.btn-primary。这意味着只有当 HTML 元素同时拥有这两个类时,才会应用这些样式。

示例 2:结合伪类进行统一

有时候你可能想要基于某种状态(如:hover:active)对元素进行样式化,而不仅仅是基于静态类。我们可以用 selector-unify() 来实现这一点。

$button: ".btn";
$state: ":hover";// 使用 selector-unify 统一类选择器和伪类
#{selector-unify($button, $state)} {background-color: lightblue;
}// 编译后的 CSS 将会是:
.btn:hover {background-color: lightblue;
}

在这里插入图片描述

这里我们创建了一个新的选择器 .btn:hover,它会在用户悬停在按钮上时改变背景颜色。通过 selector-unify(),我们可以很容易地组合类选择器与伪类,从而创建更加灵活和动态的样式规则。

注意事项

  • 返回 null 的情况:如果提供的选择器不能被统一,selector-unify() 会返回 null。因此,在使用此函数时应该考虑到这种情况,并根据需要添加逻辑来处理可能的 null 值。
  • 选择器优先级:当你使用 selector-unify() 组合选择器时,请注意最终生成的选择器可能会有不同的优先级,这取决于所组合的选择器类型(例如ID、类、标签等)。

通过合理运用 selector-unify() 函数,你可以更灵活地控制样式的应用条件,同时保持代码的简洁性和可维护性。

4. selector-replace($selector, $original, $replacement)

selector-replace($selector, $original, $replacement) 是 Sass 中的一个选择器函数,它允许你在给定的选择器字符串中替换特定的部分。这个函数非常适合用于动态修改选择器,例如从一个基础类创建多个变体,或者基于某种逻辑更改选择器中的某个部分。

以下是两个使用 selector-replace() 函数的例子:

示例 :创建按钮大小变体

假设你有一个基础按钮类 .btn,并且想要为不同尺寸的按钮创建样式变体(如 .btn-small.btn-medium.btn-large)。你可以利用 selector-replace() 来动态生成这些变体。

$base-selector: ".btn";
$sizes: (small, medium, large);@each $size in $sizes {// 使用 selector-replace 创建不同尺寸的按钮选择器#{selector-replace('.btn', '.btn', '.btn-#{$size}')} {padding: if($size == small, 5px, if($size == medium, 10px, 15px));font-size: if($size == small, 12px, if($size == medium, 14px, 16px));}
}// 编译后的 CSS 将会是:
.btn-small {padding: 5px;font-size: 12px;
}.btn-medium {padding: 10px;font-size: 14px;
}.btn-large {padding: 15px;font-size: 16px;
}

在这里插入图片描述

在这个例子中,我们使用了 @each 循环和 selector-replace() 函数来动态创建三种不同尺寸的按钮选择器,并根据尺寸的不同设置了不同的内边距和字体大小。

5. selector-parse($string)

selector-parse($string) 是 Sass 中的一个选择器函数,它解析一个字符串形式的选择器表达式,并将其转换为 Sass 可以理解的选择器结构。这个函数主要用于高级用途,比如当你需要动态地处理或生成选择器时。

以下是两个使用 selector-parse() 函数的例子:

示例 1:解析并组合选择器

假设你有一个基础类 .module 和一个修饰符类 .module-item,并且你想要动态创建一个新的选择器来应用样式。你可以先使用 selector-parse() 来解析这些选择器,然后使用其他选择器函数(如 selector-append()selector-nest())来构建新的选择器。

// 定义选择器字符串
$base-selector-string: ".module";
$modifier-selector-string: ".module-item";// 使用 selector-parse 解析选择器字符串
$base-selector: selector-parse($base-selector-string);
$modifier-selector: selector-parse($modifier-selector-string);// 动态创建组合选择器
#{selector-append($base-selector, $modifier-selector)} {background-color: lightblue;
}// 编译后的 CSS 将会是:
.module.module-item {background-color: lightblue;
}

在这里插入图片描述

在这个例子中,我们首先定义了两个选择器字符串,然后使用 selector-parse() 将它们解析为 Sass 的选择器结构。接着,我们使用 selector-append() 函数将这两个选择器连接起来,创建了一个新的组合选择器 .module.module-item

示例 2:解析复杂的选择器表达式

有时候你需要处理更复杂的选择器表达式,例如包含伪类、后代选择器等。selector-parse() 可以帮助你正确解析这些表达式,以便进一步操作或验证。

// 定义复杂的原始选择器字符串
$complex-selector-string: ".nav > ul li:first-child a:hover";// 使用 selector-parse 解析复杂的选择器字符串
$parsed-selector: selector-parse($complex-selector-string);// 直接使用解析后的选择器来应用样式
#{$parsed-selector} {color: red;text-decoration: underline;
}// 编译后的 CSS 将会是:
.nav > ul li:first-child a:hover {color: red;text-decoration: underline;
}

在这里插入图片描述

在这个例子中,我们定义了一个包含多个部分的复杂选择器字符串,包括后代选择器 (>)、子元素选择器 (li:first-child) 和伪类 (a:hover)。通过 selector-parse(),我们可以确保这个复杂的字符串被正确解析成 Sass 的选择器结构,从而可以在后续的Sass代码中安全地使用它。

注意事项

  • 调试和验证selector-parse() 对于调试和验证选择器非常有用,特别是在处理动态生成的选择器时。
  • 结合其他函数使用:通常你会将 selector-parse() 结合其他选择器函数一起使用,以实现更强大的功能,如动态构建选择器、条件性扩展等。
  • 编译性能:虽然 selector-parse() 提供了强大的灵活性,但在大量使用时可能会影响编译性能,因此应谨慎使用。

通过合理运用 selector-parse(),你可以更灵活地处理和生成选择器,从而编写出更加动态和模块化的 Sass 代码。

6.is-superselector(super, sub)

is-superselector($super, $sub) 是 Sass 中的一个选择器函数,用于判断一个选择器是否是另一个选择器的超级选择器(即更通用的选择器)。如果 $super$sub 的超级选择器,则返回 true;否则返回 false。这个函数在需要验证选择器关系或进行条件性样式应用时非常有用。

示例:验证选择器关系并有条件地应用样式

假设我们有一个基础类 .card 和它的变体 .card.large。我们想要确保只有当 .card.large 确实是 .card 的子集时才应用特定的样式。我们可以使用 is-superselector() 来实现这一点。

// 定义两个选择器
$base-selector: ".card";
$variant-selector: ".card.large";// 使用 is-superselector 检查选择器关系
@if is-superselector($base-selector, $variant-selector) {// 如果 .card.large 是 .card 的子集,则应用样式#{$variant-selector} {padding: 20px;font-size: 1.2em;}
} @else {// 如果不是,则可以提供备用样式或者警告信息body::after {content: "Warning: .card.large is not a subset of .card.";color: red;}
}// 编译后的 CSS 将会是:
.card-large {padding: 20px;font-size: 1.2em;
}

在这里插入图片描述

在这个例子中,is-superselector(".card", ".card.large") 返回 true,因为 .card.large.card 的一种特殊情况(即它总是包含 .card 的所有属性,并可能添加更多自己的属性)。因此,编译后的 CSS 会为 .card.large 应用指定的样式。

注意事项:
  • 选择器特异性is-superselector() 只检查选择器的关系,而不考虑它们的具体性(specificity)。例如,.container .card.card 之间的关系会被正确识别,但 .container .card.card.special 之间则不会。
  • 伪类和伪元素:该函数也可以处理包含伪类(如 :hover)和伪元素(如 ::before)的选择器。
  • 动态逻辑is-superselector() 在编写动态或条件性的 Sass 代码时特别有用,可以帮助你确保只在适当的情况下应用某些样式规则。

通过这种方式,你可以利用 is-superselector() 函数来增强你的 Sass 代码逻辑,确保样式规则的应用更加严谨和准确。

7.simple-selectors(selectors)

simple-selectors($selectors) 是 Sass 中的一个选择器函数,它将一个复杂的选择器字符串分解为简单的选择器列表。这个函数可以帮助你分析和处理复杂的选择器,特别是在你需要对选择器进行进一步操作或验证时非常有用。

示例:分解复杂选择器并应用样式

假设我们有一个复杂的选择器 div.myInput:before,并且我们想要分别对每个简单选择器部分应用样式或者进行逻辑判断。我们可以使用 simple-selectors() 函数来分解这个复杂的选择器。

// 定义一个复杂的选择器字符串
$complex-selector: "div.myInput:before";// 使用 simple-selectors 函数拆解选择器
$simple-selectors-list: simple-selectors($complex-selector);// 遍历每个简单选择器并输出它们(仅用于演示)
@each $selector in $simple-selectors-list {.debug-#{$selector} {content: "#{$selector}";display: block;margin: 5px 0;padding: 5px;background-color: lightgray;border: 1px solid gray;}
}// 编译后的 CSS 将会是:
.debug-div {content: "div";display: block;margin: 5px 0;padding: 5px;background-color: lightgray;border: 1px solid gray;
}.debug-.myInput {content: ".myInput";display: block;margin: 5px 0;padding: 5px;background-color: lightgray;border: 1px solid gray;
}.debug-:before {content: ":before";display: block;margin: 5px 0;padding: 5px;background-color: lightgray;border: 1px solid gray;
}

正确的应用场景

simple-selectors() 的典型应用场景包括但不限于:

  • 选择器验证:确保某个复杂选择器包含特定的简单选择器。
  • 调试工具:帮助开发者理解复杂选择器的实际组成部分。
  • 自动化测试:编写脚本来自动检测和修复不正确或不符合规范的选择器。

总之,虽然 simple-selectors() 提供了强大的选择器解析能力,但在实际编写样式规则时应当谨慎使用,确保其用途符合预期。对于大多数情况来说,直接编写明确的选择器通常更加直观和安全。

使用注意事项

  • 性能考虑:虽然选择器函数提供了强大的功能,但是过度使用可能会导致编译时间增加以及难以维护的代码。
  • 可读性:确保你的代码仍然易于理解和阅读。过多依赖选择器函数可能导致复杂的选择器链,降低代码的清晰度。

通过合理运用这些选择器函数,你可以编写更加模块化和可维护的Sass代码,同时保持高效的开发流程。请根据具体的项目需求来决定何时何地应用这些工具。

相关文章:

6_Sass 选择器函数 --[CSS预处理]

Sass 提供了一系列的选择器函数&#xff0c;用于操作和组合CSS选择器。这些函数可以帮助你更灵活地创建样式规则&#xff0c;并且可以减少重复代码。以下是几个常用的选择器函数及其用法&#xff1a; 1. selector-append($selector1, $selector2...) selector-append($select…...

考研数学【线性代数基础box(数二)】

本文是对数学二线性代数基础进行总结&#xff0c;一些及极其简单的被省略了&#xff0c;代数的概念稀碎&#xff0c;不如高数关联性高&#xff0c;所以本文仅供参考&#xff0c;做题请从中筛选&#xff01; 本文为初稿&#xff0c;后面会根据刷题和自己的理解继续更新 第一章…...

ModbusTcp获取数据

ModbusTcp获取数据 记录一个用 pymodbus 库来获取数据的代码。 注意&#xff1a; 1.读取寄存器地址是16进制的。2.大小端转换通过代码知道原理。读取数据时&#xff0c;切记频率别太高&#xff0c;否则会出现连接被关闭问题。 from pymodbus.client.sync import ModbusTcpCli…...

java 知识点:注解及使用

注解 大多数时候&#xff0c;我们会使用注解&#xff0c;而不是自定义注解。注解给谁用&#xff1f;编译器 、给解析程序用注解不是程序的一部分&#xff0c;可以理解为注解就是一个标签 主要的作用有以下四方面&#xff1a; 生成文档&#xff0c;通过代码里标识的元数据生成…...

AI预测体彩排3采取888=3策略+和值012路+胆码+通杀1码测试12月13日升级新模型预测第156弹

经过100多期的测试&#xff0c;当然有很多彩友也一直在观察我每天发的预测结果&#xff0c;得到了一个非常有价值的信息&#xff0c;那就是9码定位的命中率非常高&#xff0c;已到达90%的命中率&#xff0c;这给喜欢打私菜的朋友提供了极高价值的预测结果~当然了&#xff0c;大…...

faiss数据库检索不稳定

faiss数据检索不稳定 def build_faiss_index(embeddings_vector):dim np.shape(embeddings_vector)[-1]index faiss.index_factory(dim, HNSW64, faiss.METRIC_INNER_PRODUCT)index.add(embeddings_vector)return index这个代码不稳定&#xff0c;构建的索引召回结果可能会不…...

Vue技术中参数传递:Props与事件的实践指南

在Vue.js中&#xff0c;组件间的参数传递是构建动态和交互式应用的核心。本文将深入探讨如何通过Props和事件&#xff08;$emit&#xff09;在Vue组件间进行参数传递&#xff0c;并提供代码示例。 Props传递数据 Props是Vue中组件间传递数据的一种方式&#xff0c;它允许父组…...

C++【基础】 ---- 快速入门 C++

文章目录 前言一、有关 const 区分二、有关命名空间三、有关输入和输出四、有关缺省参数四、函数重载总结 前言 本篇文章笔者将会对 C 这么语言中必须的基础部分进行简单讲解 , 同时也作为笔者自我复习使用, 这部分是初学C 的学者不可绕过的部分 , 希望学者认真理解 ,认真领会…...

Neo4j+Neovis+Vue3:前端连接数据库渲染

Neovis&#xff08;github&#xff09;&#xff1a;https://github.com/neo4j-contrib/neovis.js Neovis配置文档&#xff1a;neovis.js (neo4j-contrib.github.io) 一、安装Neo4j 参考文章&#xff1a;neo4j下载安装配置步骤-CSDN博客 二、Neovis使用 1.npm引入 ?npm ins…...

React 18

文章目录 React 18自动批处理并发特性Suspense 组件增强新 HookscreateRoot API 替代 ReactDOM.renderStrict Mode严格模式服务器端渲染改进性能优化 React 18 React 18 引入了一系列新特性和改进&#xff0c;旨在提升性能、改善用户体验&#xff0c;并简化开发流程。以下是 R…...

Java:集合(List、Map、Set)

文章目录 1. Collection集合1-1. 迭代器遍历方式1-2. 通过for循环进行遍历1-3. forEach遍历 2. List集合2-1. ArrayList底层实现原理2-2. LinkedList底层实现原理 3. Set集合3-1. HashSet 底层实现3-2. LinkedHashSet 底层实现3-3. TreeSet 4. Collection集合->总结5. Map集…...

使用秘钥登录服务器

在我们测试或生产环境中&#xff0c;为了服务器安全性&#xff0c;有时可能需要以 SSH 密钥的方式登录服务器&#xff0c;接下来&#xff0c;将演示如何通过 SSH 私钥的方式来远程服务器。 一、远程服务器生成密钥对 1、首先在目标远程服务器下生成 SSH 密钥对 ssh-keygen然…...

BFS算法题

目录 1.BFS 2.树里的宽搜 题目一——429. N 叉树的层序遍历 - 力扣&#xff08;LeetCode&#xff09; 题目二——103. 二叉树的锯齿形层序遍历 - 力扣&#xff08;LeetCode&#xff09; 题目三——662. 二叉树最大宽度 - 力扣&#xff08;LeetCode&#xff09; 题目四——…...

网络应用技术 实验八:防火墙实现访问控制(华为ensp)

目录 一、实验简介 二、实验目的 三、实验需求 四、实验拓扑 五、实验步骤 1、设计全网 IP 地址 2、设计防火墙安全策略 3、在 eNSP 中部署园区网 4、配置用户主机地址 5、配置网络设备 配置交换机SW-1~SW-5 配置路由交换机RS-1~RS-5 配置路由器R-1~R-3 6、配置仿…...

嵌入式现状、机遇、挑战与展望

在当今数字化浪潮中&#xff0c;嵌入式系统宛如一颗璀璨的明珠&#xff0c;熠熠生辉&#xff0c;深刻地渗透到了我们生活的方方面面&#xff0c;成为推动现代科技进步不可或缺的关键力量。从智能家居的便捷控制&#xff0c;到工业生产的精准运作&#xff0c;再到汽车的智能驾驶…...

天通卫星卡通知短信模板

文章目录 引言I 阿里云新增短信模板短信模板通知短信变量规范计费规则: 短信长度不超过70个字,按照1条短信计费;II 表设计III 实现方案引言 背景:天通卡适用于应急救灾、登山探险、海上通信、野外作业等需要稳定可靠通信的场景。 需求:天通卡充值成功通知 平台基于阿里云给…...

Unity WebGL 编译和打包说明(官方文档翻译校正)

目录 Unity WebGL 编译和打包说明WebGL 简介WebGL 浏览器兼容性 (WebGL Browser Compatibility)平台支持 (Platform Support)多线程支持限制多线程支持的因素安装 Unity Hub 并添加所需模块WebGL 开发WebGL Player 设置Resolution and PresentationResolutionWebGL TemplateSpl…...

题解 - 取数排列

题目描述 取1到N共N个连续的数字&#xff08;1≤N≤9&#xff09;&#xff0c;组成每位数不重复的所有可能的N位数&#xff0c;按从小到大的顺序进行编号。当输入一个编号M时&#xff0c;就能打印出与该编号对应的那个N位数。例如&#xff0c;当N&#xff1d;3时&#xff0c;可…...

JAVA实战:借助阿里云实现短信发送功能

亲爱的小伙伴们&#x1f618;&#xff0c;在求知的漫漫旅途中&#xff0c;若你对深度学习的奥秘、JAVA 、PYTHON与SAP 的奇妙世界&#xff0c;亦或是读研论文的撰写攻略有所探寻&#x1f9d0;&#xff0c;那不妨给我一个小小的关注吧&#x1f970;。我会精心筹备&#xff0c;在…...

高阶函数:JavaScript 编程中的魔法棒

在JavaScript的世界里&#xff0c;高阶函数是一种强大的工具&#xff0c;它允许我们将函数作为参数传递或将函数作为返回值。这种特性使得JavaScript代码更加灵活和强大。本文将深入探讨高阶函数的定义、用法以及在实际项目中的最佳实践&#xff0c;帮助大家更好地理解和应用这…...

Android 12.0 Launcher3从首页开始安装app功能实现

1.前言 在12.0的系统rom定制化开发中,在进行Launcher3的某些功能开发实现过程中,在某些项目中,安装的app比较多,要求在launcher3的首页开始安装 app应用,接下来就需要分析下app安装图标排序的流程,然后在实现相关的功能 2. Launcher3从首页开始安装app功能实现的核心…...

软考高级架构 - 10.5 软件架构演化评估方法

10.4 软件架构演化原则总结 本节提出了18条架构演化的核心原则&#xff0c;并为每条原则设计了简单而有效的度量方法&#xff0c;用于从系统整体层面提供实用信息&#xff0c;帮助评估和指导架构演化。 演化成本控制&#xff1a;成本小于重新开发成本&#xff0c;经济高效。进…...

半导体制造全流程

半导体制造是一个极其复杂且精密的过程&#xff0c;主要涉及将硅片加工成功能强大的芯片。以下是半导体制造的全流程概述&#xff1a; 1. 硅材料制备 硅提纯&#xff1a; 使用冶金级硅&#xff0c;进一步提纯为高纯度硅&#xff08;电子级硅&#xff09;&#xff0c;纯度可达 …...

国科大网络协议安全期末

完整资料仓库地址&#xff1a;https://gitee.com/etsuyou/UCAS-Network-Protocol-Security 部分题目&#xff1a; 六 论述题10*220 试讨论IPv6解决了IPv4的哪些“痛点”&#xff0c;以及IPv6存在的安全问题试比较IPsec与SSL的安全性 五 简答题5*315 简述MAC欺骗和ARP欺骗的…...

ES动态索引——日志es索引数据按月份存储

一、定义ES索引 NoArgsConstructor AllArgsConstructor Data Accessors(chain true) Document(indexName "charge_pile_log" Constants.ES_TIME_DYNAMIC_INDEX) //(索引名称动态&#xff0c;前面固定&#xff0c;后面月份) public class ChargePileLogESDomain {…...

NLP论文速读(ICML 2024)|面相对齐大语言模型的迁移和合并奖励模型方法

论文速读|Transforming and Combining Rewards for Aligning Large Language Models 论文信息&#xff1a; 简介&#xff1a; 本文探讨了如何使大型语言模型&#xff08;LLMs&#xff09;与人类偏好对齐。传统的对齐方法是先从偏好数据中学习一个奖励模型&#xff0c;然后使用这…...

蓝桥杯我来了

最近蓝桥杯报名快要截止了&#xff0c;我们学校开始收费了&#xff0c;我们学校没有校赛&#xff0c;一旦报名缴费就是省赛&#xff0c;虽然一早就在官网上报名了&#xff0c;但是一直在纠结&#xff0c;和家人沟通&#xff0c;和朋友交流&#xff0c;其实只是想寻求外界的支持…...

Vue3+TypeScript+AntVX6实现Web组态(从技术层面与实现层面进行分析)内含实际案例教学

摘要 用Vue3+TypeScript+AntVX6实现Web组态(从技术层面与实现层面进行分析),包含画布创建、节点设计、拖拽实现(实际案例)、节点连线、交互功能,后续文章持续更新。 注:本文章可以根据目录进行导航 文档支持 AntVX6使用文档 https://x6.antv.antgroup.com/tutorial…...

【LeetCode】每日一题 2024_12_13 K 次乘运算后的最终数组 I(暴力)

前言 每天和你一起刷 LeetCode 每日一题~ 小聊两句 1、今天是 12.13 南京大屠杀国家公祭日。铭记历史&#xff0c;勿忘国耻。 2、今天早上去看了 TGA 年度游戏颁奖&#xff0c;小机器人拿下了年度最佳游戏&#xff0c;所有人都震惊了&#xff0c;大伙纷纷问到&#xff0c;谁…...

Plant simulation、Flexsim、Automod、Emulate3D、VisuaComponent仿真软件对比

软件名称物流系统仿真工业布局仿真动画效果数据分析优化虚拟现实/混合现实二次开发虚拟电控和PLC调试 软件行业内特殊功能Emulate3D1.物流设备模块完备&#xff0c;功能灵活设置&#xff0c;涵盖各种设备形态和运作方式 2.唯一将摩擦力、重力、阻力等物理属性融入到物流运动中&…...

定西市住房和城乡建设局网站/2023新闻摘抄大全

一、np.random.normal()函数用法 numpy.random.normal(loc0,scale1e-2,sizeshape) 其参数意义为&#xff1a; 参数loc(float)&#xff1a;正态分布的均值&#xff0c;对应着这个分布的中心。loc0说明这一个以Y轴为对称轴的正态分布&#xff0c; 参数scale(float)&#xff1a;…...

类豆瓣的模板wordpress/百度大数据官网

我们在项目中经常会用到一些正则表达式&#xff0c;将常用的正则做个归纳&#xff0c;方便后期查找 正则字符的简要说明 "^" &#xff1a; ^会匹配行或者字符串的起始位置&#xff0c;有时还会匹配整个文档的起始位置 "$" &#xff1a; $会匹配行或字符串的…...

服装门户系统网站/全渠道营销的概念

最近更新的博客 华为 od 2023 | 什么是华为 od,od 薪资待遇,od 机试题清单华为 OD 机试真题大全,用 Python 解华为机试题 | 机试宝典【华为 OD 机试】全流程解析+经验分享,题型分享,防作弊指南华为 od 机试,独家整理 已参加机试人员的实战技巧本篇题目:停车找车位 or 停车…...

0基础微信小程序开发教程/aso搜索优化

仅作为记录&#xff0c;大佬请跳过。 博主自制一个.csv的数据集&#xff08;数据集来源—传送门&#xff09; 在使用下面代码打开时&#xff0c; import pandas as pd import numpy as np import matplotlib.pyplot as plt plt.style.use(seaborn-whitegrid) plt.rc(font, *…...

商业网站导航怎么做/创建网站教程

蓝桥杯 分巧克力 python 题目标题 儿童节那天有K位小朋友到小明家做客。小明拿出了珍藏的巧克力招待小朋友们。 小明一共有N块巧克力&#xff0c;其中第i块是Hi x Wi的方格组成的长方形。 为了公平起见&#xff0c;小明需要从这 N 块巧克力中切出K块巧克力分给小朋友们。切…...

做农产品的网站/景区营销案例100例

在Java GUI应用中&#xff0c;难免用到文件选择框JFileChooser&#xff0c;这个组件可以用来选择打开文件(jFileChooser1.setFileSelectionMode(JFileChooser.OPEN_DIALOG))和保存文件(jFileChooserOut.setFileSelectionMode(JFileChooser.SAVE_DIALOG))&#xff0c;虽然setFil…...