CSS 系列之:grid 布局
基本概念
<template><div class="parent"><div class="box">p1-1</div><div class="box">p1-2</div><div class="box">p1-3</div></div><div class="parent"><div class="box">p2-1</div><div class="box">p2-2</div><div class="box">p2-3</div></div>
</template><style scoped>
.parent {background-color: skyblue;display: grid; // 块级容器,宽度撑满整行/* display: inline-grid; */ // 行内容器,宽度随内容自适应
}.box {border: 1px solid #000;
}
</style>
最外层的 <div class="parent">
称为容器,内层的三个 <div class="children">
称为项目(或网格项)。
使用网格布局后,项目的 float、display: inline-block、display: table-cell、vertical-align、column-*
等设置都将失效。
指定行列
grid-template-columns 指定划分列数
grid-template-rows 指定划分行数
固定宽高 px
<template><div class="parent"><div class="box">1</div><div class="box">2</div><div class="box">3</div><div class="box">4</div><div class="box box5">5</div></div>
</template><style scoped>
.parent {background-color: skyblue;display: grid;/* 3 列 */grid-template-columns: 100px 100px 100px;/* 2 行 */grid-template-rows: 50px 40px;
}.box {border: 1px solid #000;margin: 10px;
}
</style>
可以看到 grid-template-columns 和 grid-template-rows 设置的值是包含 margin 在内的。
使用了 grid-template-columns 和 grid-template-rows 后还可以单独给项目设置宽高吗?答案是可以的。
.box5 {height: 80px;
}
单独设置宽高是不包含 margin 的,且容器的宽高不会受它影响。
百分比 %
-
如果
.parent
没有显式设置 width 和 height ,则 100% 将等于 .parent 自然展开后的宽高。 -
如果
.parent
有显式的 width 和 height 值,那么 100% 就等于该指定的宽高值。
<template><div class="parent"><div class="box">1</div><div class="box">2</div><div class="box">3</div><div class="box">4</div><div class="box">5</div><div class="box">6</div><div class="box"><div style="height: 30px;">7</div></div></div></template><style scoped>
.parent {background-color: skyblue;display: grid;/* 3 列 */grid-template-columns: 40% 30% 20%;/* 2 行 */grid-template-rows: 100% 50%;
}.box {border: 1px solid #000;margin: 10px;
}
</style>
第 7 个 项目的高度没有被 grid-template-rows
设置到,则第 7 个 div 的高度是他实际内容的高度。
重复设置 repeat
使用 repeat 统一设置值,第一个参数为重复数量,第二个参数是重复值
<template><div class="parent"><div class="box">1</div><div class="box">2</div><div class="box">3</div><div class="box">4</div><div class="box">5</div><div class="box">6</div><div class="box">7</div></div></template><style scoped>
.parent {background-color: skyblue;display: grid;/* 3 列 */grid-template-columns: repeat(3, 40%);/* 2 行 */grid-template-rows: repeat(2, 50%);
}.box {border: 1px solid #000;margin: 10px;
}
</style>
项目总宽度超过 100% 时会产生滚动条。
repeat 还可以设置多个值:
<template><div class="parent"><div class="box">1</div><div class="box">2</div><div class="box">3</div><div class="box">4</div><div class="box">5</div><div class="box">6</div><div class="box">7</div></div></template><style scoped>
.parent {background-color: skyblue;display: grid;grid-template-columns: repeat(2, 200px 100px);grid-template-rows: repeat(2, 50px);
}.box {border: 1px solid #000;margin: 10px;
}
</style>
自动填充 auto
用于填充满所有剩余空间
<template><div class="parent"><div class="box">1</div><div class="box">2</div><div class="box">3</div><div class="box">4</div><div class="box">5</div><div class="box">6</div><div class="box">7</div></div></template><style scoped>
.parent {background-color: skyblue;display: grid;grid-template-columns: 100px 20% auto;
}.box {border: 1px solid #000;margin: 10px;
}
</style>
比例划分 fr
fr 是 fraction 的缩写,意为"片段"。
<template><div class="parent"><div class="box">1</div><div class="box">2</div><div class="box">3</div><div class="box">4</div><div class="box">5</div><div class="box">6</div><div class="box">7</div></div></template><style scoped>
.parent {background-color: skyblue;display: grid;grid-template-columns: 100px 1fr 2fr;grid-template-rows: 3fr 1fr 2fr;
}.box {border: 1px solid #000;margin: 10px;
}
</style>
假设容器总宽度是 800px,grid-template-columns: 100px 1fr 2fr
则表示第一列占据 100px 宽度,第二列占据剩余 700px 的三分之一的宽度,第三列占据剩余 700px 的三分之二的宽度。
所以 grid-template-columns: 100px 20% 1fr
中最后一列的 1fr 其实也是铺满剩余空间的意思。
repeat 中也能用 fr。
最大最小值 minmax
minmax() 函数产生一个长度范围,表示长度就在这个范围之中。它接受两个参数,分别为最小值和最大值。
<template><div class="parent"><div class="box">1</div><div class="box">2</div><div class="box">3</div><div class="box">4</div><div class="box">5</div><div class="box">6</div><div class="box">7</div></div></template><style scoped>
.parent {background-color: skyblue;display: grid;grid-template-columns: 100px 100px minmax(100px, 1fr);grid-template-rows: 3fr 1fr 2fr;
}.box {border: 1px solid #000;margin: 10px;
}
</style>
最后一列表示宽度最小 100px,最大铺满剩余空间。
自动调整 auto-fit 和 auto-fill
<template><div class="parent auto-fit"><div class="box">1</div><div class="box">2</div><div class="box">3</div></div><div class="parent auto-fill"><div class="box">1</div><div class="box">2</div><div class="box">3</div></div>
</template><style scoped>
.parent {background-color: skyblue;display: grid;width: 600px;margin-bottom: 20px;
}.auto-fit {grid-template-columns: repeat(auto-fit, minmax(100px, 1fr));
}.auto-fill {grid-template-columns: repeat(auto-fill, minmax(100px, 1fr));
}.box {border: 1px solid #000;margin: 10px;
}
</style>
容器宽度为 600px,我们希望在其中放置一些最小宽度为 100px 的项目,每个项目的最大宽度为 1fr(即剩余空间的等分部分)。
理论上可以创建 6 个 100px 宽的列,但只有 3 个项目,所以会有 3 个空的列。
auto-fit 会合并多余的空列,使现有列扩展以填满所有可用空间。
auto-fill 仍然会创建 6 个列,但其中 3 个列将是空的。
auto-fill 和 auto-fit 关键需要与 repeat() 函数和 minmax() 函数一起使用,才能发挥它们的作用。
在上例中我们看到,使用 auto-fill 时,项目的宽度始终时 minmax(100px, 1fr)
中的最小值 100px,那么 1fr 的作用是什么呢?
直接说结论:
-
当容器的宽度小于等于项目的宽度时,1fr 不会起作用
-
当容器的宽度是项目的宽度的整数倍时,1fr 不会起作用
-
当容器的宽度是项目的宽度的大于 1 的小数倍时,1fr 才会起作用
例如把上面的例子中改成:
.parent {width: 460px
}
每个项目宽度是 115px,被扩充了。
总结:
auto-fit 和 auto-fill 都会尝试创建尽可能多的项目,例如 460px 的容器最多可以创建 4 个最小宽度为 100px 的项目,但是 html 中只有 3 个项目,对多出的这 1 个空白项目和剩余的额外 60px 空间的处理方式就是 auto-fit 和 auto-fill 的区别
-
auto-fit 会吞并多出的空白项目,使现有项目扩展以填满所有剩余空间
-
auto-fill 会保留多出的空白项目,空白项目会占据空间,如果有剩余的额外,则所有项目会扩展以填满剩余额外空间
指定区域
grid-template-areas
可以将网格布局中的某个单元格或多个单元格定义为一个区域。
网格区域一定要形成规整的矩形区域,无论是 L 形,还是凹的或凸的形状都会认为是无效的属性值。
按固定数值划分
<template><div class="parent"><div class="box top">top</div><div class="box left">left</div><div class="box right">right</div><div class="box bottom">bottom</div></div>
</template><style scoped>
.parent {background-color: skyblue;height: 100%;display: grid;grid-template-columns: 50px auto;grid-template-rows: 70px auto 70px;grid-template-areas:"top top""left right""bottom bottom";
}.box {border: 1px solid #000;
}.top {grid-area: top;
}.left {grid-area: left;
}.right {grid-area: right;
}.bottom {grid-area: bottom;
}
</style>
按比例划分
<template><div class="parent"><div class="box top">top</div><div class="box left">left</div><div class="box right">right</div><div class="box bottom">bottom</div></div>
</template><style scoped>
.parent {background-color: skyblue;height: 100%;display: grid;grid-template-columns: 1fr 1fr 1fr;grid-template-rows: 1fr 1fr 1fr 1fr;grid-template-areas:"top top top""left right right""left right right""bottom bottom bottom";
}.box {border: 1px solid #000;
}.top {grid-area: top;
}.left {grid-area: left;
}.right {grid-area: right;
}.bottom {grid-area: bottom;
}
</style>
grid-tempalte
是 grid-template-rows、grid-template-columns、grid-template-areas 的三个属性的简写。
按固定数值划分
上面的按固定数值划分可以改造为:
.parent {background-color: skyblue;height: 100%;display: grid;grid-template:"top top" 70px"left right" auto"bottom bottom" 70px/ 50px auto;
}
第一行 "top top" 70px
定义了一个名为 top 的区域占据前两列,并且该区域所在行的高度为 70px。
第二行 "left right" auto
定义了一个名为 left 的区域占据第一列和一个名为 right 的区域占据第二列,并且该区域所在行的高度为 auto。
第三行 "bottom bottom" 70px
定义了一个名为 bottom 的区域占据前两列,并且该区域所在行的高度为 70px。
最后的 / 50px auto
定义了列的大小:第一列的宽度为 50px,第二列的宽度为 auto。
按比例划分
上面的按比例划分可以改造为:
.parent {background-color: skyblue;height: 100%;display: grid;grid-template:"top top top" 1fr"left right right" 1fr"left right right" 1fr"bottom bottom bottom" 1fr/ 1fr 1fr 1fr;
}
一行可以有多个不同的高度吗?例如把第一行改成 "top top top" 1fr 50px
。答案是不行,会导致错乱。
点代表占位符
.parent {background-color: skyblue;height: 100%;display: grid;grid-template:"top top ." 1fr"left . ." 1fr"right . ." 1fr"bottom bottom bottom" 1fr/ 1fr 1fr 1fr;
}
注意:
一个元素不能同时占据多个不连续的网格区域。
也就是说 "top top ."
和 ". top . "
、". . top"
等等都是允许的,但是 "top . top"
是不允许的。
其实 top
对应的是一个 html 元素,它要么占据连续的区域,要么占据一个单独的单元格,它不能分裂成不连续的部分。
定义间距
行间距 row-gap
列间距 column-gap
<template><div class="parent"><div class="box">1</div><div class="box">2</div><div class="box">3</div><div class="box">4</div><div class="box">5</div><div class="box">6</div><div class="box">7</div></div>
</template><style scoped>
.parent {background-color: skyblue;display: grid;grid-template-columns: repeat(3, 1fr);grid-template-rows: repeat(3, 1fr);column-gap: 30px;row-gap: 20px;
}.box {border: 1px solid #000;
}
</style>
组合定义 gap
组合写法 gap: 20px 30px;
先行(row)后列(column)
元素定位
grid-row/column-start/end
样式属性 | 说明 |
---|---|
grid-row-start | 行开始网格线 |
grid-row-end | 行结束网格线 |
grid-column-start | 列开始网格线 |
grid-column-end | 列结束网格线 |
属性值 | 说明 |
---|---|
Line | 网格络 |
span 数值 | 网格包含的网格数量 |
span 区域名称 | 网格包含到指定的区域名称 |
auto | 自动设置,默认为一个网格宽度和高度 |
用于指定一个网格项目的开始行(列)和结束行(列)的位置。
例如:
.grid-item1 {grid-row-start: 1; /* 从第 1 行开始 */grid-row-end: 3; /* 到第 3 行结束(不包括第 3 行,即跨越两行) */
}.grid-item2 {grid-row-start: 1;grid-row-end: span 2; /* 从第 1 行开始,跨越 2 行 */
}
行线 1 对应第一行的上边缘
行线 2 对应第二行的上边缘
行线 3 对应第三行的上边缘
…
grid-row-start 通常要比 grid-row-end 小,否则会导致一些意想不到的结果。
<template><div class="parent"><div class="box box1">1</div><div class="box box2">2</div><div class="box box3">3</div><div class="box box4">4</div><div class="box box5">5</div><div class="box box6">6</div><div class="box box7">7</div></div>
</template><style scoped>
.parent {background-color: skyblue;display: grid;grid-template-columns: repeat(3, 1fr);grid-template-rows: repeat(3, 1fr);gap: 20px 30px;
}.box {border: 1px solid #000;
}.box1 {grid-row-start: 1;
}
</style>
.box1 {grid-row-start: 2;
}
.box1 {grid-row-start: 3;
}
.box1 {grid-row-start: 4;
}
.box1 {grid-row-start: 1;grid-row-end: 3; /* 当该值是 1 和 2 时表现形式和默认图相同,直接从 3 开始 */
}
.box1 {grid-row-start: 1;grid-row-end: 4;
}
.box1 {grid-row-start: 1;grid-row-end: 5;
}
.box1 {grid-row-start: 1;grid-row-end: 6;
}
简写模式 grid-row、grid-column
grid-row 和 grid-column
语法:
grid-row: grid-row-start / grid-row-end;
grid-column: grid-row-column / grid-row-column;
例如:
.box1 {grid-row-start: 1;grid-row-end: 6;
}
就可以简写成
.box1 {grid-row: 1/6;
}
超级简写模式 grid-area
grid-area: grid-row-start / grid-column-start / grid-row-end / grid-column-end;
网格流动 grid-auto-flow
在容器中设置 grid-auto-flow 属性可以改变单元格排列方式。
选项 | 说明 |
---|---|
row | 按行排列,默认值 |
column | 按列排序 |
row dense | 网格将尝试在行方向上尽可能紧密地放置项目,尽量不出现空格 |
column dense | 网格将尝试在列方向上紧密放置项目,尽量不出现空格 |
<template><div class="parent"><div class="box box1">1</div><div class="box box2">2</div><div class="box box3">3</div><div class="box box4">4</div><div class="box box5">5</div><div class="box box6">6</div><div class="box box7">7</div></div>
</template><style scoped>
.parent {background-color: skyblue;display: grid;grid-template-columns: repeat(3, 1fr);grid-template-rows: repeat(3, 1fr);gap: 20px 30px;grid-auto-flow: row;
}.box {border: 1px solid #000;
}
</style>
grid-auto-flow: column
设置单元格对齐方式
justify-items
指定单元格内容的水平对齐方式
属性 | 描述 |
---|---|
stretch | 默认值,占满单元格的整个宽度 |
start | 对齐单元格的起始边缘 |
end | 对齐单元格的结束边缘 |
center | 单元格内部居中 |
<template><div class="parent"><div class="box box1">1</div><div class="box box2">2</div><div class="box box3">3</div><div class="box box4">4</div><div class="box box5">5</div><div class="box box6">6</div><div class="box box7">7</div></div>
</template><style scoped>
.parent {background-color: skyblue;display: grid;grid-template-columns: 1fr 1fr 1fr;grid-template-rows: repeat(3, 50px);gap: 20px;
}.box {border: 1px solid #000;
}
</style>
.parent {justify-items: start
}
.parent {justify-items: center
}
.parent {justify-items: end
}
align-items
指定单元格内容的垂直对齐方式
normal | 默认值,会根据使用场景的不同表现为 stretch 或者 start |
stretch | 拉伸,占满单元格的整个宽度 |
start | 对齐单元格的起始边缘 |
end | 对齐单元格的结束边缘 |
center | 单元格内部居中 |
baseline | 基线对齐 |
.parent {align-items: normal; // 或 stretch
}
.parent {align-items: start;
}
.parent {align-items: center;
}
.parent {align-items: end;
}
place-items
是 align-items 属性和 justify-items 属性的合并简写形式。
.parent {// 先垂直方向,再水平方向place-items: start end;
}
IE 浏览器和 Edge 浏览器都不支持 place-items 属性。如果不考虑浏览器的兼容性,在 CSS 中实现垂直居中对齐效果的最佳方法就是使用 grid 布局的 place-items 属性:
.parent {// 如果省略第二个值,则浏览器认为与第一个值相等place-items: center;
}
justify-self
跟 justify-items 属性的用法完全一致,但只作用于单个项目。
.box1 {justify-self: center
}
align-self
跟 align-items 属性的用法完全一致,也是只作用于单个项目。
.box1 {align-self: center
}
place-self
是 align-self 属性和 justify-self 属性的合并简写形式,跟 place-items 属性的用法完全一致。
.box1 {place-self: center
}
设置容器内的对齐方式
justify-content
项目在水平方向对齐方式
align-content
项目在垂直方向对齐方式
与 flex 布局中的类似。
注意:要想 justify-content 属性和 align-content 属性起作用,就需要让项目的总尺寸小于 grid 容器的尺寸。
<template><div class="parent"><div class="box box1">1</div><div class="box box2">2</div><div class="box box3">3</div><div class="box box4">4</div><div class="box box5">5</div><div class="box box6">6</div><div class="box box7">7</div></div>
</template><style scoped>
.parent {background-color: skyblue;display: grid;grid-template-columns: repeat(3, 50px);grid-template-rows: repeat(3, 50px);gap: 20px;width: 100%;height: 300px;
}.box {border: 1px solid #000;
}
</style>
.parent {justify-content: space-between;
}
place-content
是 align-content 属性和 justify-content 属性的合并简写形式。如果省略第二个值,浏览器就会假定第二个值等于第一个值。
.parent {// 先垂直方向,再水平方向place-content: center space-between;
}
xxx-item 和 xxx-content 的区别
xxx-item 用于控制容器内每个项目的对齐方式。它影响的是每个单独的项目在其所在单元格内的对齐方式。
xxx-content 用于控制容器内的所有项目的对齐方式。它影响的是所有项作为一个整体如何在容器内分配空间。
参考链接:
CSS3最强布局-Grid布局
css【详解】grid布局—— 网格布局(栅格布局)
相关文章:

CSS 系列之:grid 布局
基本概念 <template><div class"parent"><div class"box">p1-1</div><div class"box">p1-2</div><div class"box">p1-3</div></div><div class"parent"><…...

DeepSeek MLA(Multi-Head Latent Attention)算法浅析
目录 前言1. 从MHA、MQA、GQA到MLA1.1 MHA1.2 瓶颈1.3 MQA1.4 GQA1.5 MLA1.5.1 Part 11.5.2 Part 21.5.3 Part 3 结语参考 前言 学习 DeepSeek 中的 MLA 模块,究极缝合怪,东抄抄西抄抄,主要 copy 自苏神的文章,仅供自己参考&#…...

【计算机网络入门】初学计算机网络(七)
目录 1. 滑动窗口机制 2. 停止等待协议(S-W) 2.1 滑动窗口机制 2.2 确认机制 2.3 重传机制 2.4 为什么要给帧编号 3. 后退N帧协议(GBN) 3.1 滑动窗口机制 3.2 确认机制 3.3 重传机制 4. 选择重传协议(SR&a…...
Conda 环境搭建实战:从基础到进阶
在当今复杂多变的软件开发与数据科学领域,拥有一个稳定、可复现且易于管理的开发环境是项目成功的基石。Conda 作为一款强大的跨平台环境管理与包管理工具,为开发者提供了便捷高效的环境搭建与依赖管理解决方案。本文将深入探讨 Conda 环境搭建的实战技巧…...

大数据-236 离线数仓 - 会员活跃度 WDS 与 ADS 导出到 MySQL 与 广告业务 需求分析
点一下关注吧!!!非常感谢!!持续更新!!! Java篇开始了! 目前开始更新 MyBatis,一起深入浅出! 目前已经更新到了: Hadoop࿰…...
fps项目总结:关于攻击与受击
文章目录 战斗交互攻击方命中区间 双方命中响应 攻击方:指定攻击动画指定动画命中区间:在动画中指定攻击范围以及命中响应动画通知:动画中攻击的开关——调用蓝图攻击函数:实现攻击检测以及命中响应通道检测:——自定义…...

coze生成的工作流,发布后,利用cmd命令行执行。可以定时发日报,周报等。让他总结你飞书里面的表格。都可以
coze生成的工作流,发布后,利用cmd命令行执行。可以定时发日报,周报等。让他总结你飞书里面的表格。都可以。 很简单。 准备工作,先发布你的工作流,和发布应用。 然后,点击扣子API 。 申请一个࿰…...

Windows 10 远程桌面连接使用指南
目录 一、引言 二、准备工作 1、确认系统版本 2、服务器端设置 三、客户端连接 1、打开远程桌面连接程序 2、输入连接信息 3、输入登录凭证 4、开始使用远程桌面 四、移动端连接(以 iOS 为例) 1、下载安装应用 2、添加远程计算机 3、进行连接…...
Difyにboto3を変更したカスタムDockerイメージの構築手順
Difyにboto3を変更したカスタムDockerイメージの構築手順 はじめに1. Dockerfileの作成2. Dockerイメージのビルド3. docker-compose.yamlの更新変更点: 4. コンテナの再起動注意事項まとめ はじめに DifyのDockerイメージに特定バージョンのboto3を変更する手順を…...
C++性能优化常用技巧
一. 选择合适的数据结构 1.1 map与unordered_map的选择 如果仅仅只需要使用到快速查找的特性,那么unordered_map更加合适,他的复杂度是O(1)。如果还需要排序以及范围查找的能力,那么就选择map。 1.2 vector与list的选择 通常情况下&#…...

IntelliJ IDEA集成MarsCode AI
IntelliJ IDEA集成MarsCode AI IDEA中安装插件 安装完毕之后登录自己的账号 点击链接,注册账号 https://www.marscode.cn/events/s/i5DRGqqo/ 可以选择不同的模型...

数据挖掘工程师的技术图谱和学习路径
数据挖掘工程师的技术图谱和学习路径: 1.基础知识 数据挖掘工程师是负责从大量数据中发现潜在模式、趋势和规律的专业人士。以下是数据挖掘工程师需要掌握的基础知识: 数据库知识:熟悉关系数据库和非关系数据库的基本概念和操作,掌握SQL语言。 统计学基础:了解统计学的基…...

Excel基础(详细篇):总结易忽视的知识点,有用的细节操作
目录 基础篇Excel主要功能必会快捷键LotusExcel的文件类型工作表基本操作表项操作选中与缩放边框线 自动添加边框线格式刷设置斜线表头双/多斜线表头不变形的:双/多斜线表头插入多行、多列单元格/行列的移动冻结窗口 方便查看数据打印的常见问题Excel格式数字格式日期格式文本…...

基因枷锁下的太空梦 —— 千钧一发电影观后感
目录 1 人物介绍 2 电影名解读 3 电影开头 3.1 电影开头的两段话 3.2 片头设计 4 电影正文 4.1 “杰罗米”各种诡异的行为 4.2 文森特 – 失败的man 4.3 真正的杰罗米以及假基因身份证 4.4 文森特新征程 4.5 基因人的不容易 4.6 睫毛被查出有问题 4.7 文森特身份初…...

leetcode第40题组合总和Ⅱ
原题出于leetcode第40题https://leetcode.cn/problems/combination-sum-ii/题目如下: 给定一个候选人编号的集合 candidates (candidate中有重复的元素)和一个目标数 target ,找出 candidates 中所有可以使数字和为 target 的组合…...
迷你世界脚本状态接口:Buff
状态接口:Buff 迷你世界 更新时间: 2023-04-26 20:07:54 具体函数名及描述如下: 序号 函数名 函数描述 1 addBuff(...) 给对象附加效果 2 removeBuff(...) 给对象移除指定效果 3 clearAllBuff(...) 给对象清除所有效果 4 clearAllBadBu…...
Java中Stream流的详细使用介绍
Java中Stream流的详细使用介绍 **1. 创建 Stream**从集合创建从数组创建使用 Stream.of 创建创建无限流 **2. 中间操作**过滤:filter映射:map去重:distinct排序:sorted截取:limit 和 skip **3. 终端操作**收集…...

【重构小程序】升级JDK1.8、SpringBoot2.x 到JDK17、Springboot 3.x(一)
前言 最近想着把大火的deepseek 迁移到小程序里,基于刷题小程序的数据库做一个RAG应用,来进一步扩展答案解析,帮助用户解答相关问题。但是由于之前做的项目都要老了,并不支持spring 的AI模块,因此,我打算先…...

功能丰富的自动化任务软件zTasker_2.1.0_绿色版_屏蔽强制更新闪退
🚀 zTasker 一键式效率倍增器使用指南 🙏 致谢 首先感谢开发者提供如此高效的工具! 软件本身功能强大,但部分机制需特别注意! 📖 软件概述 zTasker 是一款通过自动化脚本/任务流实现效率飞跃的生产力工…...
_ 为什么在python中可以当变量名
在 Python 中,_(下划线)是一个有效的变量名,这主要源于 Python 的命名规则和一些特殊的使用场景。以下是为什么 _ 可以作为变量名的原因和常见用途: --- ### 1. **Python 的命名规则** Python 允许使用字母ÿ…...
uni-app学习笔记二十二---使用vite.config.js全局导入常用依赖
在前面的练习中,每个页面需要使用ref,onShow等生命周期钩子函数时都需要像下面这样导入 import {onMounted, ref} from "vue" 如果不想每个页面都导入,需要使用node.js命令npm安装unplugin-auto-import npm install unplugin-au…...

学校招生小程序源码介绍
基于ThinkPHPFastAdminUniApp开发的学校招生小程序源码,专为学校招生场景量身打造,功能实用且操作便捷。 从技术架构来看,ThinkPHP提供稳定可靠的后台服务,FastAdmin加速开发流程,UniApp则保障小程序在多端有良好的兼…...

NLP学习路线图(二十三):长短期记忆网络(LSTM)
在自然语言处理(NLP)领域,我们时刻面临着处理序列数据的核心挑战。无论是理解句子的结构、分析文本的情感,还是实现语言的翻译,都需要模型能够捕捉词语之间依时序产生的复杂依赖关系。传统的神经网络结构在处理这种序列依赖时显得力不从心,而循环神经网络(RNN) 曾被视为…...

iview框架主题色的应用
1.下载 less要使用3.0.0以下的版本 npm install less2.7.3 npm install less-loader4.0.52./src/config/theme.js文件 module.exports {yellow: {theme-color: #FDCE04},blue: {theme-color: #547CE7} }在sass中使用theme配置的颜色主题,无需引入,直接可…...
人工智能 - 在Dify、Coze、n8n、FastGPT和RAGFlow之间做出技术选型
在Dify、Coze、n8n、FastGPT和RAGFlow之间做出技术选型。这些平台各有侧重,适用场景差异显著。下面我将从核心功能定位、典型应用场景、真实体验痛点、选型决策关键点进行拆解,并提供具体场景下的推荐方案。 一、核心功能定位速览 平台核心定位技术栈亮…...
WEB3全栈开发——面试专业技能点P7前端与链上集成
一、Next.js技术栈 ✅ 概念介绍 Next.js 是一个基于 React 的 服务端渲染(SSR)与静态网站生成(SSG) 框架,由 Vercel 开发。它简化了构建生产级 React 应用的过程,并内置了很多特性: ✅ 文件系…...
二维FDTD算法仿真
二维FDTD算法仿真,并带完全匹配层,输入波形为高斯波、平面波 FDTD_二维/FDTD.zip , 6075 FDTD_二维/FDTD_31.m , 1029 FDTD_二维/FDTD_32.m , 2806 FDTD_二维/FDTD_33.m , 3782 FDTD_二维/FDTD_34.m , 4182 FDTD_二维/FDTD_35.m , 4793...
Java并发编程实战 Day 11:并发设计模式
【Java并发编程实战 Day 11】并发设计模式 开篇 这是"Java并发编程实战"系列的第11天,今天我们聚焦于并发设计模式。并发设计模式是解决多线程环境下常见问题的经典解决方案,它们不仅提供了优雅的设计思路,还能显著提升系统的性能…...

RushDB开源程序 是现代应用程序和 AI 的即时数据库。建立在 Neo4j 之上
一、软件介绍 文末提供程序和源码下载 RushDB 改变了您处理图形数据的方式 — 不需要 Schema,不需要复杂的查询,只需推送数据即可。 二、Key Features ✨ 主要特点 Instant Setup: Be productive in seconds, not days 即时设置 :在几秒钟…...

未授权访问事件频发,我们应当如何应对?
在当下,数据已成为企业和组织的核心资产,是推动业务发展、决策制定以及创新的关键驱动力。然而,未授权访问这一隐匿的安全威胁,正如同高悬的达摩克利斯之剑,时刻威胁着数据的安全,一旦触发,便可…...