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

【前端学习】D2-2:CSS基础

文章目录

  • 前言
  • 系列文章目录
  • 1 Emmet语法
    • 1.1 快速生成HTML语法结构
    • 1.2 快速生成CSS样式语法
    • 1.3 快速格式化代码
  • 2 CSS复合选择器
    • 2.1 什么是复合选择器
    • 2.2 后代选择器(*)
    • 2.3 子选择器
    • 2.4 并集选择器(*)
    • 2.5 伪类选择器
    • 2.6 链接伪类选择器
    • 2.7 :focus为类选择器
  • 3 CSS的元素显示模式
    • 3.1 什么是元素的显示模式
    • 3.2 块元素
    • 3.3 行内元素
    • 3.4 行内块元素
    • 3.5 元素的显示模式的转换(*)
    • 3.6 一个小工具Snipaste的使用
    • 3.7 单行文字垂直居中原理
    • 3.8 案例:简洁版小米侧边栏
  • 4 CSS背景
    • 4.1 背景颜色
    • 4.2 背景图片(*)
    • 4.3 背景平铺
    • 4.4 背景位置
    • 4.5 背景图像固定(背景附着)
    • 4.6 背景属性复合写法
    • 4.7 背景色半透明
  • 5 总结


前言

这篇文章为我跟随pink老师重新系统学习前端时做的一些笔记。

系列文章目录

【前端学习】D1:HTML简介与HTML标签
【前端学习】D2-1:CSS入门
【前端学习】D2-2:CSS基础


1 Emmet语法

Emmet语法的前身是Zen Coding,它使用缩写来提高HTML/CSS的编写速度,VS Code内部已集成该语法。

1.1 快速生成HTML语法结构

  1. 生成标签,直接输入标签名按tab键即可。
  2. 如果想要生成多个相同标签,加上*,如div*3。
  3. 如果有父子级关系的标签,可以用>,如ul>li。
  4. 如果有兄弟关系的标签,用+,如div+p。
  5. 如果生成带有类名或者id名字的,直接写.demo或者#two,再使用tab键。默认生成div,也可生成其他标签,如ul>li#two。
  6. 如果生成的div类名是有顺序的,使用自增符号$。如.demo$*5。
  7. 如果想要在生成的标签内部写内容可以用{}表示,如div{text}。

1.2 快速生成CSS样式语法

CSS基本采取简写形式。

  • 比如 w200 按tab可以生成 width: 200px;
  • 比如 lh26 按tab可以生成 line-height: 26px;

1.3 快速格式化代码

VS Code快速格式化代码:右键 --> 格式化代码 或 shift + alt + f
也可以设置页面保存时自动格式化代码:

  1. 文件 --> 首选项 --> 设置
  2. 搜索emmet.include
  3. 在settings.json下的用户中添加以下语句
    “editor.formatOnType”:true,
    “editor.formatOnSave”:true

编译器设置

2 CSS复合选择器

2.1 什么是复合选择器

在CSS中,可以根据选择器的类型把选择器分为基础选择器和复合选择器,复合选择器是建立在基础选择器之上,对基本选择器进行组合而形成的。

  • 复合选择器可以更准确、更高效地选择目标元素(标签)
  • 复合选择器是由两个或多个基础选择器,通过不同的方式组合而成的
  • 常用的复合选择器包括:后代选择器、子选择器、并集选择器、伪类选择器等

2.2 后代选择器(*)

后代选择器又称为包含选择器,可以选择父元素里面的子元素。其写法就是把外层标签写在前面,内层标签写在后面,中间用空格分隔。当标签发生嵌套时,内层标签就称为外层标签的后代。

元素1 元素2 { 样式说明 }

上述语法表示选择元素1里面的所有元素2(后代元素)。

  • 元素1和元素2中间用空格隔开
  • 元素1是父级,元素2是子级,最终选择的时元素2
  • 元素2可以是儿子,也可以是孙子等,只要是元素1的后代元素
  • 元素1与元素2可以是任何基础选择器
ol li a {color: red;
}
.nav li a {color: red;
}

2.3 子选择器

子元素选择器(子选择器)只能选择作为某元素的最近一级子元素。简单理解就是选亲儿子元素。

元素1 > 元素2 { 样式声明 }

上述语法表示选择元素1里面的所有直接后代(子元素)元素2。

  • 元素1和元素2中间用大于号隔开。
  • 元素1是父级,元素2是子级,最终选择的是元素2。
  • 元素2必须是亲儿子(直接后代)。

2.4 并集选择器(*)

并集选择器可以选择多组标签,同时为它们定义相同的样式,通常用于集体生命。
并集选择器是个选择器通过英文逗号(,)连接而成,任何形式的选择器都可以作为并集选择器的一部分。

元素1,
元素2 { 样式声明 }

上述语法表示选择元素1和元素2。

2.5 伪类选择器

伪类选择器用于向某些选择器添加特殊的效果,比如给链接添加特殊效果,或选择第n个元素。
伪类选择器书写最大的特点是用冒号(:)表示,比如:hover,:first-child。

2.6 链接伪类选择器

  • a:link /* 选择所有未被访问的链接 */
  • a:visited /* 选择所有已被访问的链接 */
  • a:hover /* 选择鼠标指针位于其上方的链接 */
  • a:active /* 选择活动链接(鼠标按下未弹起的链接) */
  1. 为了确保生效,按照LVHA的顺序声明,即:link,:visited,:hover,:active
  2. 因为a链接在浏览器中具有默认样式,所以实际开发中都需要给链接单独指定样式

2.7 :focus为类选择器

:focus伪类选择器用于获取获得焦点的表单元素。
焦点就是光标,一般情况<input>类表单元素才能获取,因此这个选择器也主要针对表单元素。

input:focus {background-color: yellow;
}

3 CSS的元素显示模式

3.1 什么是元素的显示模式

元素显示模式就是元素(标签)以什么方式进行显示。
HTML元素一般分为块元素和行内元素两种类型。

3.2 块元素

常见的块元素有<h1>~<h6>、<p>、<div>、<ul>、<ol>、<li>等,其中<div>标签是最经典的块元素。
块元素的特点:

  1. 独占一行。
  2. 高度,宽度,外边距以及内边距都可以控制。
  3. 宽度默认是容器(父级宽度)的100%。
  4. 是一个容器及盒子,里面可以放行内或者块级元素。
  • 文字类的元素内不能使用块级元素。
  • <p>标签主要用于存放文字,因此<p>里面不能放块级元素。
  • <h1>~<h6>等都是文字类块元素,同<p>。

3.3 行内元素

常见的行内元素有<a>、<strong>、<b>、<em>、<i>、<del>、<s>、<ins>、<u>、<span>等,其中<span>是最典型的行内元素。有时也将行内元素称为内联元素。
行内元素的特点:

  1. 相邻行内元素在一行上,一行可以显示多个。
  2. 高、宽直接设置是无效的。
  3. 默认宽度就是它本身内容的宽度。
  4. 行内元素只能容纳文本或其他行内元素。
  • 链接里面不能再放链接。
  • 特殊情况链接<a>里面可以放块级元素,但<a>需转换为块级模式。

3.4 行内块元素

行内元素中有几个特殊的标签<img />、<input />、<td>,它们同时具有块元素和行内元素的特点,称之为行内块元素。
行内块元素的特点:

  1. 和相邻行内元素(行内块)在一行上,但是它们之间会有空白缝隙。一行可以显示多个(行内元素特点)。
  2. 默认宽度就是它本身内容的宽度(行内元素特点)。
  3. 高度、行高、外边距以及内边距都可以控制(块内元素特点)。

3.5 元素的显示模式的转换(*)

特殊情况下,需要元素模式的转换。简单理解,一个模式的元素需要另一种模式的特性,比如想要增加链接<a>的触发范围。

  • 转换为块元素:display: block;
    a {width: 150px;height: 50px;background-color: red;display: block;
    }
    
  • 转换为行内元素:display: inline;
    div {width: 150px;height: 50px;background-color: red;display: inline;
    }
    
  • 转换为行内块元素:display: inline-block;
    span {width: 100px;height: 300px;background-color: red;display: inline-block;
    }
    

3.6 一个小工具Snipaste的使用

Snipaste是一个简单但抢答的截图工具,可以将截图贴回屏幕上。
常用快捷方式:

  1. F1可以截图,同时测量大小、设置箭头、书写文字等
  2. F3在桌面置顶显示
  3. 点击图片,alt可以取色(按下shift切换取色模式)
  4. 按下esc取消图片显示

3.7 单行文字垂直居中原理

CSS没有提供文字垂直居中的代码。
解决方案:让文字的行高等于盒子的高度。
原理:

  • 行高=上空隙+文字本身高度+下空隙。
  • 行高<盒子高度,文字偏上。
  • 行高>盒子高度,文字偏下。

3.8 案例:简洁版小米侧边栏

思路:

  1. 把链接a转换为块级元素,这样链接就可以单独占一行,并且有宽度和高度。
  2. 鼠标经过a给链接设置背景颜色。
/* 1. 把a转换为块级元素 */
a {display: block;width: 230px;height: 40px;background-color: #55585a;font-size: 14px;color: #fff;text-decoration: none;text-indent: 2em;line-height: 40px;
}
/* 2 鼠标经过链接变换背景颜色 */
a:hover {background-color: #ff6700;
}

4 CSS背景

通过CSS背景属性,可以给页面元素添加背景样式。
背景属性可以设置背景颜色、背景图片、背景平铺、背景图片位置、背景图像固定等。

4.1 背景颜色

background-color属性定义了元素的背景颜色。

background-color: 颜色值;

一般情况下元素背景颜色默认值是transparent(透明)。

4.2 背景图片(*)

background-image属性描述了元素的背景图像。实际开发常见于Logo、一些装饰性的小图片或是超大的背景图,优点是非常便于控制位置

background-image: none | url(url);
参数值作用
none无背景图(默认的)
url使用绝对或相对地址指定背景图像

当图片尺寸小于盒子尺寸时,会有平铺效果。

4.3 背景平铺

如果需要在HTML页面上对背景图进行平铺,可以使用background-repeat属性。

background-repeat: repeat | no-repeat | repeat-x | repeat-y;
参数值作用
repeat背景图像在纵向和横向上平铺(默认的)
no-repeat背景图像不平铺
repeat-x背景图像在横向上平铺
repeat-y背景图像在纵向上平铺

4.4 背景位置

利用background-position属性可以改变图片在背景中的位置。

background-position: x y;

参数代表的意思是x坐标和y坐标。可以使用方位名词或精确单位。

参数值说明
length百分数 | 由浮点数字和单位标识符组成的长度值
positiontop | center | bottom | left | center | right 方位名词
  1. 参数是方位名词
    • 如果指定的两个值都是方位名词,则两个值前后顺序无关,比如left top和top left效果一致。

    • 如果只指定了一个方位名词,另一个值省略,则第二个值默认居中对齐。

    • 案例一:

    <!DOCTYPE html>
    <html lang="en"><head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta http-equiv="X-UA-Compatible" content="ie=edge"><title>背景位置方位名词应用一</title><style>h3 {width: 118px;height: 40px;/* background-color: pink; */font-size: 14px;font-weight: 400;line-height: 40px;background-image: url(images/icon.png);background-repeat: no-repeat;background-position: left center;text-indent: 1.5em;}</style></head><body><h3>成长守护平台</h3></body>
    </html>
    
    • 案例二:
    <!DOCTYPE html>
    <html lang="en"><head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta http-equiv="X-UA-Compatible" content="ie=edge"><title>超大背景图片</title><style>body {background-image: url(images/bg.jpg);background-repeat: no-repeat;/* background-position: center top; */background-position: center 40px;}</style></head><body></body>
    </html>
    
  2. 参数是精确单位
    • 如果参数值是精确坐标,那么第一个一定是x坐标,第二个一定是y坐标。
    • 如果只指定一个数值,那该数值一定是x坐标,另一个默认垂直居中。
  3. 如果参数是混合单位
    • 如果指定的两个值是精确单位和方位名词混合使用,则第一个值是x坐标,第二个值是y坐标。

4.5 背景图像固定(背景附着)

background-attachment属性设置背景图像是否固定或随着页面的剩余部分滚动。
background-attachment后期可以制作视差滚动的效果。

background-attachment: scroll |fixed;
参数作用
scroll背景图像是随对象内容滚动,默认值
fixed背景图像固定

4.6 背景属性复合写法

可以将所有属性合并简写在同一个属性background中,从而节约代码量,是实际开发中提倡的写法。
当使用简写属性时,没有特定的书写习惯,一般习惯约定顺序为:

background: 背景颜色 背景图片地址 背景平铺 背景图像滚动 背景图片位置;

body {background-image: url(images/bg.jpg);background-repeat: no-repeat;background-position: center top;background-attachment: fixed;background-color: black;color: #fff;font-size: 20px;		
}

可简写为

body {background: black url(images/bg.jpg) no-repeat  fixed  center top;color: #fff;font-size: 20px;
}

4.7 背景色半透明

CSS3提供了背景颜色半透明的效果。

background: rgba(0, 0, 0, 0.3);
  • 最后一个参数是alpha透明度,取值范围在0~1之间。
  • 习惯把0.3的0省略掉,写为background: rgba(0, 0, 0, .3)
  • 背景半透明是指盒子背景半透明,盒子里面的内容不受影响。

5 总结

  • 复合选择器
    以前只使用过简单选择器和并集选择器,现在才认真了解复合选择器。
  • 元素模式转换
    以前做导航栏都是<div>里面嵌套<a>标签,代码很臃肿。现在把行内元素<a>标签转换为行内块元素,设置样式很方便,就是这几个模式刚开始学很容易分不清。
  • background-image
    以前我插入图片(特别是超大背景图)只会用<img>标签,调整位置和尺寸就很难受,现在学了background-image感觉方便多了。

要坚持不下去了,CSS的内容怎么这么多。还是那句话,希望有下一篇。

相关文章:

【前端学习】D2-2:CSS基础

文章目录前言系列文章目录1 Emmet语法1.1 快速生成HTML语法结构1.2 快速生成CSS样式语法1.3 快速格式化代码2 CSS复合选择器2.1 什么是复合选择器2.2 后代选择器&#xff08;*&#xff09;2.3 子选择器2.4 并集选择器&#xff08;*&#xff09;2.5 伪类选择器2.6 链接伪类选择器…...

Flink / Scala 实战 - 19.ProcessFunction 删除 key 的上一个定时器 TimeTimer

一.引言 ProcessFunction 原始执行状态为每个 key 注册一个较长时间 TimeTimer 并在这期间将所有对应 key 的数据都收集起来,到期完成触发。现在接到新的需求,要求判断数据类型,当特殊标识的数据到达后,需要将 TimeTimer 到期的时间提前。因此需要删掉当前 key 之前注册的老…...

MSTP基础

MSTP基础引入背景技术概览PVSTP&#xff08;过渡&#xff09;MSTP单生成树的缺陷1&#xff1a;部分VLAN不通单生成树的缺陷2&#xff1a;无法实现流量的负载分担多生成树解决单生成树实例引入背景 RSTP在STP基础上进行了改进&#xff0c;实现了网络拓扑快速收敛。但由于局域网…...

当ChatGPT遇见stable-diffusion,你不敢相信的创意艺术之旅!

前言 欢迎来到一场创意的旅程&#xff0c;这里将聚焦于 ChatGPT 和 stable-diffusion 这两个令人激动的技术。在这篇文章中&#xff0c;我们将会探索这两种技术如何结合使用&#xff0c;为艺术创作带来全新的可能性。我们将探讨如何利用 ChatGPT 生成富有想象力的创意&#xf…...

一文搞定!postman接口自动化测试【附项目实战详解】

目录&#xff1a;导读 | 接口结果判断 功能区 脚本相关 代码模板 | 集合(批量)测试 变化的参数数据 定期任务 接口执行顺序 数据传递 | 解决依赖问题 假设场景 Postman 中的操作 运行 写在最后 附带项目实战教程地址&#xff1a;postman接口自动化测试使用教程项…...

ctfshow【菜狗杯】wp

文章目录webweb签到web2 c0me_t0_s1gn我的眼里只有$抽老婆一言既出驷马难追TapTapTapWebshell化零为整无一幸免无一幸免_FIXED传说之下&#xff08;雾&#xff09;算力超群算力升级easyPytHon_P遍地飘零茶歇区小舔田&#xff1f;LSB探姬Is_Not_Obfuscateweb web签到 <?ph…...

旋转数组的几种做法

千淘万浪虽辛苦&#xff0c;吹尽黄沙始到金。 ——刘禹锡 第一种方法&#xff1a;遍历整个数组 题目描述&#xff1a; 一个数组A中存有N (N>0) 个整数&#xff0c;允许使用另外数组&#xff0c;将每个整数循环向右移动M(M>0)个位置。如果需要…...

创建虚拟机、添加镜像以及配置虚拟机

一、创建虚拟机 1、点击 “创建新的虚拟机” 2.选择“自定义配置” 到后面可以选择硬件的类型 3.默认值就行 4.选择 “稍后安装操作系统” 5.操作系统选择 “Linux”&#xff0c;版本结合镜像自行选择 6. 虚拟机的名称自行定义&#xff0c; 就是上述显示出来的名称。 虚拟机…...

Godot Engine 4.0横空出世,Vulkan大怪兽加持,画质提升简直亮瞎眼

【CSDN 编者按】经历了漫长的等待&#xff0c;万众瞩目的 Godot Engine 4.0 正式版在其 3.0 版本发布 5 年以后&#xff0c;终于带着海量令人兴奋的新功能横空出世&#xff01; 整理 | 开发游戏的老王 责编 | 王子彧 出品 | CSDN&#xff08;ID&#xff1a;CSDNnews&#xff09…...

CorelDRAWX4的VBA插件开发(四十五)建立类(2)汇总相似功能简化重复代码:一键建立设计外框加出血线和等分折页线

在上一节中已经建立好了类,那么这一节我们来调用它,先建立一个面板 然后修改框体名称 然后从左侧新建一些按钮并且以拼音为结尾进行命名 Private Sub CheckBox2_zheYe_Click() 鼠标按下几折页单选时触发If Me.CheckBox2_zheYe ThenMe.TextBox3_zheYeShu.Enabled True 让右…...

我的十年编程路 2017年篇

2016和2017&#xff0c;这两年是我飞速发展的两年。一方面是技术、工作能力&#xff0c;另一方面是对人生的思考。 随着技术能力的不断提升&#xff0c;博客也随之更新。在2017年伊始&#xff0c;我收到了CSDN学院的讲师邀请函。没错&#xff0c;那个时候我就有机会做视频课了…...

hadoop有多个输入路径怎么处理

在Hadoop中&#xff0c;可以使用FileInputFormat的addInputPath方法来添加多个输入路径。以下是实现步骤&#xff1a;创建一个Job对象&#xff0c;并设置相关的参数和配置信息。调用FileInputFormat的addInputPath方法添加输入路径。例如&#xff1a;FileInputFormat.addInputP…...

day6 ServletContext

ServletContext 一个Servlet对象对应一个ServletConfig。100个Servlet对象则对应100个ServletConfig对象。 只要在同一个webapp当中&#xff0c;只要在同一个应用当中&#xff0c;所有的Servlet对象都是共享同一个ServletContext对象的。 ServletContext对象在服务器启动阶段…...

Dockerfile部署SpringBoot项目

Dockerfile部署SpringBoot项目 文章目录 利用Dockerfile部署SpringBoot项目 1、创建一个SpringBooot项目并且打成jar包2、在Linux中创建一个文件夹&#xff0c;来做docker测试3、将jar包上传到Linux中4、编写Dockerfile文件5、制作镜像6、启动容器7、查看容器启动日志8、访问接…...

Java面向对象特征之三:多态

一&#xff1a;面向对象三大特征之三&#xff1a;多态 1.多态是什么&#xff1f; 同类型的对象&#xff0c;执行同一个行为&#xff0c;会表现出不同的行为特征。 比如&#xff1a;猫和狗都是动物类型&#xff0c;执行同一个行为&#xff0c;但是会表现出不同的行为特征&…...

基于ATX自动化测试解决方案

在整车开发中&#xff0c;诊断功能实现后需要进行测试验证。测试验证主要分为两个方面&#xff1a;诊断协议层测试和诊断功能测试。诊断协议层测试&#xff1a;需要对服务层服务定义、传输层相关时间参数进行测试验证&#xff1b;诊断功能测试&#xff1a;需要对各诊断功能项&a…...

Qt学习5-Qt Creator文件操作(哔站视频学习记录)

实现文件编辑器代码 目录 一、代码要点 二、重点函数 1、conncet 2、getOpenFileName 3、getSaveFileName 4、读取文件到textEdit 5、textEdit保存到文件 三、全部代码 mainwindow.h mainwindow.cpp 一、代码要点 MainWindow的菜单栏实现&#xff1b;connect函数连接…...

LeetCode15三数之和 容易理解版本

题目&#xff1a; 给你一个整数数组 nums &#xff0c;判断是否存在三元组 [nums[i], nums[j], nums[k]] 满足 i ! j、i ! k 且 j ! k &#xff0c;同时还满足 nums[i] nums[j] nums[k] 0 。请返回所有和为 0 且不重复的三元组。 注意&#xff1a;答案中不可以包含重复的三…...

Spring Boot 3.0系列【11】核心特性篇之国际化

有道无术,术尚可求,有术无道,止于术。 本系列Spring Boot版本3.0.3 源码地址:https://gitee.com/pearl-organization/study-spring-boot3 文章目录 前言基础知识国际化简介浏览器语言LocaleMessageSourceMessageSourcePropertiesLocaleResolver案例演示案例一:后台消息国…...

每日学术速递3.7

CV - 计算机视觉 | ML - 机器学习 | RL - 强化学习 | NLP 自然语言处理 Subjects: cs.CV 1.Dropout Reduces Underfitting 标题&#xff1a;Dropout 减少欠拟合 作者&#xff1a;Zhuang Liu, Zhiqiu Xu, Joseph Jin, Zhiqiang Shen, Trevor Darrel 文章链接&#xff1a;h…...

云启出海,智联未来|阿里云网络「企业出海」系列客户沙龙上海站圆满落地

借阿里云中企出海大会的东风&#xff0c;以**「云启出海&#xff0c;智联未来&#xff5c;打造安全可靠的出海云网络引擎」为主题的阿里云企业出海客户沙龙云网络&安全专场于5.28日下午在上海顺利举办&#xff0c;现场吸引了来自携程、小红书、米哈游、哔哩哔哩、波克城市、…...

LeetCode - 394. 字符串解码

题目 394. 字符串解码 - 力扣&#xff08;LeetCode&#xff09; 思路 使用两个栈&#xff1a;一个存储重复次数&#xff0c;一个存储字符串 遍历输入字符串&#xff1a; 数字处理&#xff1a;遇到数字时&#xff0c;累积计算重复次数左括号处理&#xff1a;保存当前状态&a…...

数据链路层的主要功能是什么

数据链路层&#xff08;OSI模型第2层&#xff09;的核心功能是在相邻网络节点&#xff08;如交换机、主机&#xff09;间提供可靠的数据帧传输服务&#xff0c;主要职责包括&#xff1a; &#x1f511; 核心功能详解&#xff1a; 帧封装与解封装 封装&#xff1a; 将网络层下发…...

浅谈不同二分算法的查找情况

二分算法原理比较简单&#xff0c;但是实际的算法模板却有很多&#xff0c;这一切都源于二分查找问题中的复杂情况和二分算法的边界处理&#xff0c;以下是博主对一些二分算法查找的情况分析。 需要说明的是&#xff0c;以下二分算法都是基于有序序列为升序有序的情况&#xf…...

使用Matplotlib创建炫酷的3D散点图:数据可视化的新维度

文章目录 基础实现代码代码解析进阶技巧1. 自定义点的大小和颜色2. 添加图例和样式美化3. 真实数据应用示例实用技巧与注意事项完整示例(带样式)应用场景在数据科学和可视化领域,三维图形能为我们提供更丰富的数据洞察。本文将手把手教你如何使用Python的Matplotlib库创建引…...

LangChain知识库管理后端接口:数据库操作详解—— 构建本地知识库系统的基础《二》

这段 Python 代码是一个完整的 知识库数据库操作模块&#xff0c;用于对本地知识库系统中的知识库进行增删改查&#xff08;CRUD&#xff09;操作。它基于 SQLAlchemy ORM 框架 和一个自定义的装饰器 with_session 实现数据库会话管理。 &#x1f4d8; 一、整体功能概述 该模块…...

【 java 虚拟机知识 第一篇 】

目录 1.内存模型 1.1.JVM内存模型的介绍 1.2.堆和栈的区别 1.3.栈的存储细节 1.4.堆的部分 1.5.程序计数器的作用 1.6.方法区的内容 1.7.字符串池 1.8.引用类型 1.9.内存泄漏与内存溢出 1.10.会出现内存溢出的结构 1.内存模型 1.1.JVM内存模型的介绍 内存模型主要分…...

关于uniapp展示PDF的解决方案

在 UniApp 的 H5 环境中使用 pdf-vue3 组件可以实现完整的 PDF 预览功能。以下是详细实现步骤和注意事项&#xff1a; 一、安装依赖 安装 pdf-vue3 和 PDF.js 核心库&#xff1a; npm install pdf-vue3 pdfjs-dist二、基本使用示例 <template><view class"con…...

深入理解Optional:处理空指针异常

1. 使用Optional处理可能为空的集合 在Java开发中&#xff0c;集合判空是一个常见但容易出错的场景。传统方式虽然可行&#xff0c;但存在一些潜在问题&#xff1a; // 传统判空方式 if (!CollectionUtils.isEmpty(userInfoList)) {for (UserInfo userInfo : userInfoList) {…...

ui框架-文件列表展示

ui框架-文件列表展示 介绍 UI框架的文件列表展示组件&#xff0c;可以展示文件夹&#xff0c;支持列表展示和图标展示模式。组件提供了丰富的功能和可配置选项&#xff0c;适用于文件管理、文件上传等场景。 功能特性 支持列表模式和网格模式的切换展示支持文件和文件夹的层…...