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

网页布局汇总

1. 盒模型

容器大小 = 内容大小 + 内边距(padding)  + 边框大小

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>盒模型</title><style>.container {width: 100px;height: 100px;border: 10px solid skyblue;padding: 1px;margin: 2px;/*-sizing: border-box;*/}</style>
</head>
<body><div class="container">css盒模型</div>
</body>
</html>

 在 css 中加入下列代码,盒子便不会被撑大。

 box-sizing: border-box;

box-sizing 有三个值:content-box(默认)、border-box、inherit 。其中inherit表示box-sizing的值应该从父元素继承。content-box和border-box的主要区别就是盒子的width和height的值包不包括border、padding这两个属性的值。

content-box: 也叫标准盒模型,默认是该值。不包含 border 和 padding 大小。如果盒子宽度为 100 px, padding 为 10px , border 宽度为 5 px。那么盒子大小是 100 + 10 * 2 + 5 * 2 = 130 px

border-box:也叫 IE 盒子模型。盒子大小包含 content(内容大小) + padding(内边距) + border 边框大小。如果盒子宽度为 100, padding 为 10 px, border 宽度为 5px。那么盒子大小为 100px

2.  流式布局(fluid布局)

流式布局就像是在容器中装水,容器有多宽,水就有多宽。在网页中,显示器有多大像素,内容就覆盖到哪。流式布局是为了解决固定像素的缺点而诞生的。流式布局是一种等比例的缩放式的布局方式。在css 代码中用百分比来设置宽度,所以也称百分比自适应布局。流式布局实现方式是将css固定像素宽度转换成百分比宽度。

换算公式:目标元素宽度/父盒子宽度=百分数宽度

 流式布局的缺点:流式布局是解决不同设备分辨率的兼容性问题,如果两个设备差异太大,都会导致页面变形。因为字体和高度是采用固定像素的,而宽度是采用百分比的,字体和高度不会兼容。

2.1 响应式导航栏案例

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>流式布局</title><style>.container {overflow: hidden;background-color: black;}a {float: left;display: block;padding: 10px;color: #fff;font-size: 16px;text-decoration: none;}/* @media mediaType 连接符 (mediaFeature) {  CSS 样式规则  }mediaType : all(不写默认all,所有设备) \ screen (手机、平板、电脑)\ print(打印机)连接符: and or onlymediaFeature:媒体特性,width、height、min-width、max-width、device-width、orientation 等。*/@media screen and (max-width: 600px) {a {float: none;width: 30%;}}</style>
</head>
<body><div class="container"><a href="">首页</a><a href="">我的信息</a><a href="">我的订单</a><a href="">联系我们</a></div>
</body>
</html>

3. 弹性布局(flexbox布局)

flexbox 弹性布局打破常规的浮动布局,实现垂直等高,水平均分,按比例划分等布局方式以及如何处理可用的空间,该布局可以创建自适应浏览器窗口的流动布局或自适应字体大小的弹性布局。

弹性布局盒子由伸缩容器和伸缩子元素组成,通过设置元素的display属性为flex(块状元素)或者inline-flex(内联元素),便可以将一个盒子指定为伸缩盒子每一个伸缩容器内都有两根轴:主轴和交叉轴,两轴之间相互垂直,值得一提的是水平的不一定就是主轴。每根轴都有起点和终点,伸缩盒子内能定义多个伸缩子元素,伸缩子元素沿着主轴排列。设为flex布局以后,子元素的float、clear和vertical-align属性将失效。 伸缩子元素也可通过设置display:flex指定成伸缩盒子,也就是伸缩盒子可以嵌套。

 

3.1 父容器属性

1. flex-direction 属性

flex-direction 属性指定伸缩盒子中主轴的方向。

参数

row:默认主轴的水平方向,从左向右排列

row-reverse:与 row 排列相仿,从右向左排列

column:从上到下排列

column-reverse:从下到上排列

2. flex-wrap 属性

flex-wrap 属性指定子元素超过夫容器是否换行

参数

nowrap:子元素不换行(默认值)

wrap:子元素换行,换行部分在子元素下面

wrap-reverse:子元素换行,换行部分在子元素上面

3. flex-flow 属性

flex-flow 是个简写属性,同时设置 flex-direction 和 flex-wrap 属性。更加方便地控制弹性盒模型(Flexbox)中的项目排列方向和换行方式。

参数:

flex-flow: flex-direction属性值  flex-wrap属性值

 案例:有一个容器,我们希望其中的项目水平排列,并且当空间不足时允许项目换行。

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>flex弹性布局</title><style>.container {display: flex;flex-flow: row wrap;  /* 水平排列,换行 */}.item {width: 20%;}</style>
</head>
<body><div class="container"><div class="item">项目 1</div><div class="item">项目 2</div><div class="item">项目 3</div><div class="item">项目 4</div><div class="item">项目 5</div><div class="item">项目 6</div></div>
</body>
</html>

4. justify-content 属性

justify-content属性决定了子元素在主轴上的对齐方式
参数

flex-start:子元素在主轴方向的开始位置向结束位置排列(默认值)

flex-end:子元素在主轴方向的结束位置向开始位置排列

center:子元素在主轴的中间排列

space-between:子元素平均分布在主轴上,第一个元素左边和最后一个元素右边无间隔

space-around:子元素平均分布在主轴上,每个元素左右两边都有间隔。

 

5. align-items 属性

align-items 属性定义了子元素在交叉轴上的排列方式

参数:

flex-start:子元素在交叉轴方向的开始位置向结束位置排列(默认值)

flex-end:子元素在交叉轴方向的结束位置向开始位置排列

center:子元素在交叉轴的中间排列

baseline: 子元素第一行文字的基线对齐

stretch: 子元素未设置高度,子元素高度将填充整个容器高度(默认)

 

6. align-content 属性

align-content 属性定义了多根轴线的对齐方式,若只有一根轴线将不起作用。

参数

flex-start: 交叉轴的起点位置对齐

flex-end: 交叉轴的终点对齐

center:交叉轴中央对齐

space-between: 与交叉轴平均分布,第一个元素上边和最后一个元素下边无间隔

space-around: 与交叉轴平均分布,第一个元素上边和最后一个元素下边有间隔

stretch:子元素未设置高度,子元素高度将填充整个容器高度(默认)

3.2 子容器属性

1. order 属性

order 定义子容器排列顺序,默认 0,数值越小优先级越高,排在越前

2. flex-grow属性

flex-grow 属性设置扩展比率。默认值 0,表示不占用父容器剩余空间。该值不带单位

案例1:当父容器的宽度大于子容器所有宽度之和时,父容器有剩余空间,当设置子元素的 flex-grow 为 0 时,表示不占用父容器的剩余空间。当设置某个子元素的 flex-grow:1时,其余子元素不设置,表示父容器剩余空间都给设置了 flex-grow:1 的元素。

案例2:当父容器的宽度大于子容器所有宽度之和时,父容器有剩余空间,当设置子元素1的 flex-grow 为 2 时,设置某个子元素2的 flex-grow:1 时,其余子元素不设置,表示父容器剩余空间给子元素1和子元素2按比例分配。此时,子元素1的容器大小 = 本身子元素大小 + 剩余父容器大小 * (2/3),子元素2的容器大小 = 本身子元素大小 + 剩余父容器大小 * (1/3)

3. flex-shrink 属性 

flex-shrink 属性设置收缩比率。默认值 1,不带单位。当父元素容器宽度小于子容器所有之和时,所有子元素按照定义的收缩比例收缩。

4. flex-basis 属性 

定义主轴多余空间,默认是 auto, 及子容器本身大小。可以设置像素值,如 250px,表示该子元素占据固定空间。当同时设置了width和flex-basis属性时,width属性无效

5. align-self 属性 

允许单个子元素与其它子元素不一样对齐方式。可覆盖 align-items 属性。默认值为 auto ,表示继承父元素的 aling-items 属性。如果没有父元素,等同于 stretch。

参数

auto

flex-start

flex-end

center

baseline:子元素第一行文字的基线对齐

stretch:子元素未设置高度,子元素高度将填充整个容器高度

6. flex 属性 

flex属性是flex-growflex-shrink 和 flex-basis的简写,默认值为0 1 auto。后两个属性可选。建议优先使用这个属性,而不是单独写三个分离的属性,因为浏览器会推算相关值。

3.3 基于弹性布局的响应式导航栏

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title><style>.container {display: flex;justify-content: space-around;background-color: black;}.item {color: #fff;font-size: 16px;padding: 14px 20px;text-decoration: none;}@media (max-width: 600px) {.container {flex-direction: column;  /**从上到下排列*/}.item {text-align: center;margin-bottom: 10px;}}</style>
</head>
<body><div class="container"><a href="" class="item">首页</a><a href="" class="item">我的信息</a><a href="" class="item">我的订单</a><a href="" class="item">联系我们</a></div>
</body> 
</html>

 

当屏幕像素小于 600px 时,导航栏纵向排列 

4. 网格布局(Grid 布局)

网格布局(Grid)是将网页划分成一个个网格单元,可任意组合不同的网格,轻松实现各种布局效果,也是目前CSS中最强大布局方案。通过设置 display: grid 或 inline-grid(设成行内元素)将容器设置为网格容器,容器内的子元素为网格元素,也称item (项目)。

值得一提是,设为网格布局以后,容器子元素(项目)的float、display: inline-block、display: table-cell、vertical-align等设置都将失效。

行和列

容器里面的水平区域称为 "行"(row),垂直区域称为 "列"(column)。

网格线

网格线(grid line)就是划分网格的线。水平网格线区分行,垂直网格线区分列。

单元格

行和列交叉区域被称为单元格(cell) , m行n列的网格线会有 mn 个单元格。

4.1 网格容器属性

1. grid-template-rows 和 grid-template-columns

这两个属性用于定义网格的行和列。我们可以使用像素、百分比或 fr 单位来指定它们的尺寸。

 .container {display: grid;width: 300px;grid-template-columns: 50px 100px 50px;grid-template-rows: 50px 100px 50px;background-color: #ccc;
}

 

2. grid-column-gap 和 grid-row-gap

这两个属性用于设置行和列之间的间隙。

3. justify-items 和 align-items

这两个属性用于调整网格项在容器中的水平和垂直对齐方式。

4. grid-template-areas

这个属性允许我们为网格区域命名,从而更容易地控制网格项的位置。

5. repeat() 函数

网格非常多,需要为每个网格设置宽高,非常麻烦。

repeat(arg1, arg2) 。arg1 表示行或列的数量。arg2 表示网格的大小。

.container {display: grid;grid-template-columns: repeat(2, 40px 60px 80px);grid-template-rows: repeat(2,50%);background-color: #ccc;
}

6. fr 单位

为了方便表示比例关系,网格布局提供了fr关键字(fraction 的缩写,意为"片段")。

.container {width: 300pxdisplay: grid;grid-template-columns: 1fr 2fr 1fr;background-color: #ccc;
}

第二列的宽度为固定的100px,第三列的宽度是第一列的2倍。

.container {display: grid;width: 300px;grid-template-columns: 1fr 100px 2fr;background-color: #ccc;}

 

7. minmax() 

该函数产生一个长度范围,表示长度就在这个范围之中。它接受两个参数,分别为最小值和最大值。

grid-template-columns: 1fr 1fr minmax(100px, 1fr);

上面代码表示第三列宽度不小于100px, 不大于 1fr

8. auto 

自适应

.container {width: 300pxdisplay: grid;grid-template-columns: 50px auto 50px;
}

9. auto-fill、auto-fit
aut-fill 和 auto-fit 自适应 与 自填充,一般用来实现自适应布局的。

.container {display: grid;grid-template-columns: repeat(auto-fill, 100px);
}

5. 圣杯布局

圣杯布局是三列布局,我们需要一个容器 wrapper 包裹所有的内容,并包含 middle (中间内容区域), left (左侧栏), 和 right (右侧栏) 三个主要区域。 注意 HTML 结构中必须将 middle 放在最前面,以便优先加载。中间宽度自适应,两边定宽,主要是采用 浮动 + 定位实现圣杯布局

 将主要内容、左边、右边都设置位左浮动,并且设置主要内容部分宽度100%,左右两边定宽。

    /*  通用样式 */body {margin: 0;padding: 0;}.wrapper {overflow: hidden; /* 清除浮动,并解决margin塌陷 */}.content {float: left;width: 100%; /* 占据父容器全部宽度 */}.left {float: left;width: 200px;}.right {float: left;width: 200px;}/*  为了方便查看效果 */.content {background-color: #eee;padding: 20px;height: 200px;box-sizing: border-box; /* 包含 padding 和 border */}.left, .right {background-color: #ddd;height: 200px;padding: 20px;box-sizing: border-box;}

 上面css样式设置后效果如下,可以看到中间内容部分独占一行。

 

 接下来需要把最外层的父容器(wrapper) 部分设置设置左右边距,放置左右侧盒子腾出空间。

 

 将左右两边的盒子定位到预留的位置中

左边部分:负 margin-left 的百分比值是相对于父元素的宽度计算的,这里将左侧栏拉到最左侧。

右边部分:负 margin-left 的固定值,将右侧栏拉到中间内容区域的右侧。

 

6. 双飞翼布局

双飞翼布局是另一种经典的网页布局方式,与圣杯布局类似,同样实现了左右两侧固定宽度,中间内容区域自适应的三栏布局。 双飞翼布局和圣杯布局的核心思想是一样的:让中间内容区域优先加载,并且保证三栏居中对齐。 它们的不同之处在于实现的方式,双飞翼布局使用 margin 负值和 padding 来实现。

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>双飞翼布局</title><style>* {margin: 0;padding: 0;}.wrapper {width: 100%; /* 容器设置为100%*/}.middle {float: left;width: 100%;background-color: darkkhaki;}/* 这就是与 圣杯布局最大的差别,这里需要在中间容器额外内嵌一个块级元素,设置外边距为左右两边占位*/.content {margin: 0 200px; /* 左右margin,为侧边栏预留空间 */}.left {float: left;width: 200px;margin-left: -100%;}.right {float: left;width: 200px;margin-left: -200px;}/* 为了方便查看效果 */.content {background-color: #eee;padding: 20px;height: 200px;box-sizing: border-box; /* 包含 padding 和 border */}.left, .right {background-color: #ddd;height: 200px;padding: 20px;box-sizing: border-box;} </style>
</head>
<body><div class="wrapper"><div class="middle"><div class="content">中间</div></div><div class="left">左边</div><div class="right">右边</div></div>
</body>
</html>

9. 双飞翼布局和圣杯布局的差异

相同点

1. 都是三栏布局,中间内容优先显示,有利于搜索引擎优化

2. HTML 结构简单,易于理解和维护

3. 主要使用浮动和 margin,兼容性良好。

不同点

圣杯布局:不需要额外的 HTML 嵌套,但需要使用相对定位。利用浮动+定位实现

双飞翼布局: 需要额外的 HTML 嵌套,但不需要使用相对定位。利用浮动+外边距实现

相关文章:

网页布局汇总

1. 盒模型 容器大小 内容大小 内边距(padding) 边框大小 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0">&l…...

基于 Maven 构建的 Thingsboard 3.8.1 项目结构

一、生命周期&#xff08;Lifecycle&#xff09; Maven 的生命周期定义了项目构建和部署的各个阶段&#xff0c;图中列出了标准的生命周期阶段&#xff1a; clean&#xff1a;清理项目&#xff0c;删除之前构建生成的临时文件和输出文件。validate&#xff1a;验证项目配置是否…...

MySQL 中为产品添加灵活的自定义属性(如 color/size)

方案 1&#xff1a;EAV 模型&#xff08;最灵活但较复杂&#xff09; 适合需要无限扩展自定义属性的场景 -- 产品表 CREATE TABLE products (id INT PRIMARY KEY AUTO_INCREMENT,name VARCHAR(100),price DECIMAL(10,2) );-- 属性名表 CREATE TABLE attributes (id INT PRIMA…...

C++语言程序设计——02 变量与数据类型

目录 一、变量与数据类型&#xff08;一&#xff09;变量的数据类型&#xff08;二&#xff09;变量命名规则&#xff08;三&#xff09;定义变量&#xff08;四&#xff09;变量赋值&#xff08;五&#xff09;查看数据类型 二、ASCII码三、进制表示与转换&#xff08;一&…...

第三篇:Python数据结构深度解析与工程实践

第一章&#xff1a;列表与字典 1.1 列表的工程级应用 1.1.1 动态数组实现机制 Python列表底层采用动态数组结构&#xff0c;初始分配8个元素空间&#xff0c;当空间不足时按0,4,8,16,25,35...的公式扩容&#xff0c;每次扩容增加约12.5%的容量 通过sys模块可验证扩容过程&a…...

dcsdsds

我将为您在页面顶部添加欢迎内容&#xff0c;同时保持整体风格的一致性。以下是修改后的代码&#xff0c;主要修改了模板部分和对应的样式&#xff1a; vue 复制 <template><div class"main-wrapper"><!-- 新增欢迎部分 --><div class"…...

Vitis: 使用自定义IP时 Makefile错误 导致编译报错

参考文章: 【小梅哥FPGA】 Vitis开发中自定义IP的Makefile路径问题解决方案 Vitis IDE自定义IP Makefile错误&#xff08;arm-xilinx-eabi-gcc.exe: error: *.c: Invalid argument&#xff09;解决方法 Vitis 使用自定义IP时: Makefile 文件里的语句是需要修改的&#xff0c;…...

应急响应练习靶机-web1

1&#xff09;背景 小李在值守的过程中&#xff0c;发现有CPU占用飙升&#xff0c;出于胆子小&#xff0c;就立刻将服务器关机&#xff0c;这是他的服务器系统&#xff0c;请你找出以下内容&#xff0c;并作为通关条件&#xff1a; 1.攻击者的shell密码 2.攻击者的IP地址 3.攻击…...

cdp-(Chrome DevTools Protocol) browserscan检测原理逆向分析

https://www.browserscan.net/zh/bot-detection 首先,打开devtools后访问网址,检测结果网页显示红色Robot,标签插入位置,确定断点位置可以hook该方法,也可以使用插件等方式找到这个位置,本篇不讨论. Robot标签是通过insertBefore插入的. 再往上追栈可以发现一个32长度数组,里面…...

MCU刷写——Hex文件格式详解及Python代码

工作之余来写写关于MCU的Bootloader刷写的相关知识,以免忘记。今天就来聊聊Hex这种文件的格式,我是分享人M哥,目前从事车载控制器的软件开发及测试工作。 学习过程中如有任何疑问,可底下评论! 如果觉得文章内容在工作学习中有帮助到你,麻烦点赞收藏评论+关注走一波!感谢…...

SpringBoot(一)

快速入门 1.概念 SpringBoot 简单、快速地创建一个独立的、生产级别的 Spring 应用&#xff08;说明SpringBoot底层是Spring&#xff09; 大多数 SpringBoot 应用只需要编写少量配置即可快速整合 Spring 平台以及第三方技术 特性&#xff1a; 快速创建独立 Spring 应用 SSM&…...

学习Mysql对库和表的操作以及对数据的操作

对库操作 SHOW DATABASES;可以查看数据库服务器中有哪些数据库(注意databases最后的s不要忘记) SELECT DATABASE();可以查看到目前是在哪个数据库下。 CREATE DATABASE 库名;可以创建一个数据库 DROP DATABASE 库名;可以删除一个数据库 USE 库名;切换到当前数据库 对表操…...

微软office填表无法打勾✔,解决办法!

最近在使用office 填表的时候&#xff0c;碰到需要在选择框中打勾的情况&#xff0c;但是找了半天发现找不到打勾的按钮。为此&#xff0c;记录该问题解决办法&#xff1a; 以这个界面为例&#xff0c;如果点击打勾发现无法✔。 这里因为office和wps的编写不一样&#xff0c;所…...

Python实现链接KS3,并批量下载KS3文件数据到本地

前言 本文是该专栏的第56篇,后面会持续分享python的各种干货知识,值得关注。 在本专栏的上篇文章《Python实现链接KS3,并将文件数据批量上传到KS3》中,笔者有详细介绍基于Python,实现链接KS3并将文件数据批量上传。而本文,笔者将基于在上一篇文章的基础之上,实现链接KS…...

构建智能期货交易策略分析应用:MCP与AI的无缝集成

引言 随着金融科技的快速发展&#xff0c;数据驱动的交易决策已成为期货交易领域的重要趋势。本文将深入探讨一个结合了Model Content Protocol (MCP)和AI技术的期货交易策略分析应用——Futures MCP。该应用不仅提供了丰富的技术分析工具&#xff0c;还通过MCP协议与大型语言…...

区块链点燃游戏行业新未来——技术变革与实践指南

区块链点燃游戏行业新未来——技术变革与实践指南 在数字时代&#xff0c;游戏行业无疑是创新的热土。从简单像素风的街机游戏到沉浸式的虚拟现实&#xff0c;我们见证了技术如何一步步塑造游戏的样貌。然而&#xff0c;在传统游戏模式中&#xff0c;玩家权益往往无法得到保障…...

Jmeter中如何实现关联?

在JMeter中实现关联(Correlation)是性能测试中处理动态数据(如Session ID、Token、动态参数等)的核心技能。以下是详细操作指南,涵盖原理、工具和实战示例: 一、关联的本质与场景 作用:从服务器响应中提取动态数据,供后续请求复用(如登录Token、订单ID、验证码等)。 …...

在MATLAB中使用MPI进行并行编程

在MATLAB中使用MPI进行并行编程 MATLAB支持通过MPI (Message Passing Interface) 进行并行编程&#xff0c;这通常通过Parallel Computing Toolbox和MATLAB Parallel Server实现。以下是使用MPI进行并行编程的基本方法&#xff1a; 基本设置 确保安装了必要的工具箱&#xff…...

15.【.NET 8 实战--孢子记账--从单体到微服务--转向微服务】--单体转微服务--如何拆分单体

单体应用&#xff08;Monolithic Application&#xff09;是指将所有功能模块集中在一个代码库中构建的应用程序。它通常是一个完整的、不可分割的整体&#xff0c;所有模块共享相同的运行环境和数据库。这种架构开发初期较为简单&#xff0c;部署也较为方便&#xff0c;但随着…...

C++: char类型既不是signed char也不是unsigned char

对于 int, short, long, long long 类型&#xff0c; 增加 signed&#xff0c; 类型不变。 对于 char 类型&#xff0c; 增加 signed&#xff0c; 类型变了。 char 既不是 signed char&#xff0c; 也不是 unsigned char。 虽然 char 的取值范围&#xff0c; 一定是&#xff1…...

测试第二课-------测试分类

作者前言 &#x1f382; ✨✨✨✨✨✨&#x1f367;&#x1f367;&#x1f367;&#x1f367;&#x1f367;&#x1f367;&#x1f367;&#x1f382; ​&#x1f382; 作者介绍&#xff1a; &#x1f382;&#x1f382; &#x1f382; &#x1f389;&#x1f389;&#x1f389…...

16.【.NET 8 实战--孢子记账--从单体到微服务--转向微服务】--单体转微服务--微服务的部署与运维

部署与运维是微服务架构成功实施的关键环节。一个良好的部署与运维体系能够保障微服务的高可用性、可扩展性和可靠性。在这一阶段&#xff0c;重点包括微服务的容器化与编排、API 网关的实现以及日志与监控体系的建设。 一、容器化与编排 1.1 使用 Docker 容器化微服务 容器…...

什么是供应链金融

供应链金融&#xff08;Supply Chain Finance&#xff09; 是一种基于供应链上下游真实交易场景的金融服务模式&#xff0c;通过整合物流、信息流、资金流和数据流&#xff0c;为核心企业及其上下游中小企业提供灵活、高效的融资解决方案。其核心目标是优化供应链资金周转效率&…...

个人博客系统后端 - 注册登录功能实现指南

一、功能概述 个人博客系统的注册登录功能包括&#xff1a; 用户注册&#xff1a;新用户可以通过提供用户名、密码、邮箱等信息创建账号用户登录&#xff1a;已注册用户可以通过用户名和密码进行身份验证&#xff0c;获取JWT令牌身份验证&#xff1a;使用JWT令牌访问需要认证…...

微信小程序运行机制详解

微信小程序运行机制详解 微信小程序是介于 Web 和原生 App 之间的一种应用形态&#xff0c;具有无需安装、用完即走、体验流畅的特点。本文将从架构层面、运行环境、通信机制等方面深入剖析微信小程序的运行机制。 一、小程序运行架构概览 微信小程序采用双线程模型&#xff…...

GGML源码逐行调试(中)

目录 前言1. 简述2. 加载模型超参数3. 加载词汇表4. 初始化计算上下文5. 初始化计算后端6. 创建模型张量7. 分配缓冲区8. 加载模型权重结语下载链接参考 前言 学习 UP 主 比飞鸟贵重的多_HKL 的 GGML源码逐行调试 视频&#xff0c;记录下个人学习笔记&#xff0c;仅供自己参考&…...

高阶函数/柯里化/纯函数

本篇文章主要是介绍一下标题里面的概念&#xff0c;在面试的时候经常文档&#xff0c;结合阅读到的资料&#xff0c;结合本人的个人见解出品了该文章&#xff0c;如有写的不好的地方或理解有误的&#xff0c;还望阁下多多指教。 1、高阶函数 什么是高阶函数&#xff1f; 接受…...

docker部署scylladb

创建存储数据的目录和配置目录 mkdir -p /root/docker/scylla/data/data /root/docker/scylla/data/commitlog /root/docker/scylla/data/hints /root/docker/scylla/data/view_hints /root/docker/scylla/conf快速启动拷贝配置文件 docker run -d \--name scylla \scylladb/…...

Python创意:AI图像生成

1. 基本概念 AI 图像生成通常基于以下几种方法&#xff1a; 一.生成对抗网络 (GAN) 生成对抗网络&#xff08;GAN&#xff0c;Generative Adversarial Network&#xff09;是一种深度学习框架&#xff0c;主要用于生成新的、类似于训练数据的样本。自2014年由Ian Goodfellow及…...

十九、UDP编程和IO多路复用

1、UDP编程 服务端&#xff1a; #include<stdio.h> #include <arpa/inet.h> #include<stdlib.h> #include<string.h> #include <sys/types.h> /* See NOTES */ #include <sys/socket.h> #include <pthread.h> #include &l…...

【MySQL】复合查询

文章目录 &#x1f449;基本查询回顾&#x1f448;select 子查询 &#x1f449;多表查询&#x1f448;&#x1f449;自连接&#x1f448;&#x1f449;子查询&#x1f448;单行子查询多行子查询多列子查询在from子句中使用子查询合并查询 &#x1f449;总结&#x1f448; &…...

并发编程--条件量与死锁及其解决方案

并发编程–条件量与死锁及其解决方案 文章目录 并发编程--条件量与死锁及其解决方案1.条件量1.1条件量基本概念1.2条件量的使用 2. 死锁 1.条件量 1.1条件量基本概念 在许多场合中&#xff0c;程序的执行通常需要满足一定的条件&#xff0c;条件不成熟的时候&#xff0c;任务…...

【NLP解析】多头注意力+掩码机制+位置编码:Transformer三大核心技术详解

目录 多头注意力&#xff1a;让模型化身“多面手” 技术细节&#xff1a;多头注意力如何计算&#xff1f; 实际应用&#xff1a;多头注意力在Transformer中的威力 为什么说多头是“非线性组合”&#xff1f; 实验对比&#xff1a;多头 vs 单头 进阶思考&#xff1a;如何设计更高…...

#关于数据库中的时间存储

✅ 一、是否根据“机器当前时区”得到本地时间再转 UTC&#xff1f; 结论&#xff1a;是的&#xff0c;但仅对 TIMESTAMP 字段生效。 数据库&#xff08;如 MySQL&#xff09;在插入 TIMESTAMP 类型数据时&#xff1a; 使用当前会话的时区&#xff08;默认跟随系统时区&#…...

C# --- yield关键字 和 Lazy Execution

C# --- yield关键字 和 Lazy Execution 延迟执行&#xff08;Lazy Execution&#xff09;yield关键字lazy execution与yield的关系LINQ 和 lazy exectuion 延迟执行&#xff08;Lazy Execution&#xff09; 延迟执行指操作不会立即计算结果&#xff0c;而是在实际需要数据时才执…...

Qt报错dependent ‘..\..\..\..\..\..\xxxx\QMainWindow‘ 或者 QtCore\QObject not exist

Qt5.15编译项目报错如下: dependent ‘..\..\..\..\..\..\Qt\5.15.2\msvc2019_64\include\QtW...

彻底掌握 XMLHttpRequest(XHR):前端通信的基石

一、XHR 的起源与演进 1.1 技术背景 XHR&#xff08;XMLHttpRequest&#xff09;是现代 Web 应用的异步通信基石&#xff0c;最早由微软在 IE5 中通过 ActiveXObject 引入&#xff0c;后来被 Mozilla 推广并成为 W3C 的标准接口。XHR 的出现推动了 AJAX&#xff08;Asynchrono…...

Bartender 5 for Mac 多功能菜单栏管理

Bartender 5 for Mac 多功能菜单栏管理 一、介绍 Bartender 5&#xff0c;是一款菜单栏管理软件&#xff0c;可以帮助用户隐藏、组织和自定义Mac菜单栏中的图标和通知。使用Bartender 5&#xff0c;用户可以将不常用的图标隐藏起来&#xff0c;使菜单栏保持整洁&#xff0c;并…...

重读《人件》Peopleware -(5)Ⅰ管理人力资源Ⅳ-质量—若时间允许

20世纪的心理学理论认为&#xff0c;人类的性格主要由少数几个基本本能所主导&#xff1a;生存、自尊、繁衍、领地等。这些本能直接嵌入大脑的“固件”中。我们可以在没有强烈情感的情况下理智地考虑这些本能&#xff08;就像你现在正在做的那样&#xff09;&#xff0c;但当我…...

人事招聘专员简历模板

模板信息 简历范文名称&#xff1a;人事招聘专员简历模板&#xff0c;所属行业&#xff1a;人力资源&#xff0c;模板编号&#xff1a;K8TG60 专业的个人简历模板&#xff0c;逻辑清晰&#xff0c;排版简洁美观&#xff0c;让你的个人简历显得更专业&#xff0c;找到好工作。…...

Java中equals与 “==” 的区别

首先我们要掌握基本数据类型和引用类型的概念 基本数据类型&#xff1a; byte&#xff0c;short&#xff0c;int,long,float,double,boolean,char 基本的八大数据类型都各自封装着包装类&#xff0c;提供了更多的方法&#xff0c;并且都是引言类型 引用类型&#xff1a; 引…...

20250412_代码笔记_CVRProblemDef

文章目录 前言一、get_random_problems 函数分析二、augment_xy_data_by_8_fold 函数分析代码 前言 该笔记分析代码的功能是生成随机VRP问题的数据&#xff0c;包含仓库坐标、节点坐标和节点需求。 对该代码进行改进 20250412-代码改进-拟蒙特卡洛 一、get_random_problems 函…...

《算法笔记》3.4小节——入门模拟->日期处理

日期差值 #include <iostream> using namespace std; int month[13][2]{{0,0},{31,31},{28,29},{31,31},{30,30},{31,31},{30,30},{31,31},{31,31},{30,30},{31,31},{30,30},{31,31} }; bool is_leap(int year){return (year%40&&year%100!0||year%4000); }int m…...

JetBrain/IDEA :Request for Open Source Development License

Request for Open Source Development License...

Java学习手册:Java集合框架详解

Java集合框架&#xff08;Java Collections Framework&#xff09;是Java语言中用于存储和操作数据集合的一组接口和类的集合。它提供了丰富的数据结构和算法&#xff0c;帮助开发者高效地管理和操作数据。掌握集合框架的使用是Java开发者的必备技能。 本文将深入探讨Java集合…...

20250412 机器学习ML -(3)数据降维(scikitlearn)

1. 背景 数学小白一枚&#xff0c;看推理过程需要很多时间。好在有大神们源码和DS帮忙&#xff0c;教程里的推理过程才能勉强拼凑一二。 * 留意&#xff1a; 推导过程中X都是向量组表达: shape(feature, sample_n); 和numpy中的默认矩阵正好相反。 2. PCA / KPCA PCAKPCA(Li…...

深入解析系统频率响应:通过MATLAB模拟积分器对信号的稳态响应

稳态响应分析与MATLAB可视化 在控制系统中&#xff0c;线性时不变系统的稳态响应是描述输入与输出之间关系的关键。对于一个频率为 ω i \omega_i ωi​ 的正弦输入 u ( t ) M i sin ⁡ ( ω i t φ i ) u(t) M_i \sin(\omega_i t \varphi_i) u(t)Mi​sin(ωi​tφi​)&…...

[16届蓝桥杯 2025 c++省 B] 画展布置

​​​​​​​​​​​​​​ 解题思路 理解 ( L ) 的本质 当 ( B ) 按平方值从小到大排序后&#xff0c;相邻项的差非负&#xff0c;此时 ( L ) 等于区间内最大平方值与最小平方值的差&#xff08;数学公式推导&#xff09; 滑动窗口找最小差值 遍历所有长度为 ( M ) 的连续…...

从代码学习深度学习 - Bahdanau注意力 PyTorch版

文章目录 1. 前言为什么选择Bahdanau注意力本文目标与预备知识2. Bahdanau注意力机制概述注意力机制简述加性注意力与乘性注意力对比Bahdanau注意力的数学原理与流程图数学原理流程图可视化与直观理解3. 数据准备与预处理数据集简介数据加载与预处理1. 读取数据集2. 预处理文本…...

具身智能零碎知识点(三):深入解析 “1D UNet”:结构、原理与实战

深入解析 “1D UNet”&#xff1a;结构、原理与实战 【深度学习入门】1D UNet详解&#xff1a;结构、原理与实战指南一、1D UNet是什么&#xff1f;二、核心结构与功能1. 整体架构2. 编码器&#xff08;Encoder&#xff09;3. 解码器&#xff08;Decoder&#xff09;4. 跳跃连…...