CSS函数
目录
一、背景
二、函数的概念
1. var()函数
2、calc()函数
三、总结
一、背景
今天我们就来说一说,常用的两个css自定义属性,也称为css函数。本文中就成为css函数。先来看一下官方对其的定义。
自定义属性(有时候也被称作CSS 变量或者级联变量)是由 CSS 作者定义的,它包含的值可以在整个文档中重复使用。由自定义属性标记设定值(比如:
--main-color: black;
),由 var() 函数来获取值(比如:color: var(--main-color);
)复杂的网站都会有大量的 CSS 代码,通常也会有许多重复的值。举个例子,同样一个颜色值可能在成千上百个地方被使用到,如果这个值发生了变化,需要全局搜索并且一个一个替换(很麻烦哎~)。自定义属性在某个地方存储一个值,然后在其他许多地方引用它。另一个好处是语义化的标识。比如,--main-text-color
会比#00ff00
更易理解,尤其是这个颜色值在其他上下文中也被使用到。自定义属性受级联的约束,并从其父级继承其值。
那么接下来就来说一说,今天的主角,var()和calc()两个常见的css函数,之后也会逐步的去讲解一些,其他的css函数,好了,进入正题,开始var()和calc()的讲解。
二、函数的概念
1. var()函数
这个函数用于插入自定义的属性值
正如官方文档上所介绍的,当我们在制作复杂的网站的时候会有大量的css代码,也会有许多复杂的值,那么同样的值也一定会在不同的地方重复的去运用,那么比如有一天需要将这些值统一的更改为另一个值,如果没有这个函数,我们就需要一个一个的找到这个属性然后注意更改,这就大大的降低了维护的效率,也提高了维护的成本。
所以var()函数的出现, 使得CSS 函数可以插入一个自定义属性(有时也被称为“CSS变量”),用来代替非自定义属性中值的任何部分。它允许我们在样式表中定义可重用的值,并在多个地方引用它们。这种机制不仅提高了代码的可维护性和灵活性,还使得动态更新样式成为了可能
接下来就来说一说var()函数的语法:
var(--custom-property-name,fallback-value);
解释:
--custom-property-name:这个属性值是必须设置的,表示自定义属性的名称,名称之前必须要有两个连字符【-】。
fallback-value:这个值可以认为是备用值也可以叫做回退值,也就是说当主属性值无法正常显示的时候就会自动使用备用的属性值,这个值是可选的。建议添加,可以增强代码的健壮性。
-
声明方式
声明方式有两种,一种是全局声明,另一种是局部声明,故如其名,它们的作用范围是不同的。那么接下来逐一讲解:
-
全局声明
全局声明通常配合:root伪类【:root伪类的作用:这个伪类是用来匹配根元素的,对于 HTML 来说,
:root
表示元素除了[优先级]更高之外,与html
选择器相同,也就可以认为通过root伪类声明,就相当于在html上进行声明,也就是在整个网页全局声明】进行声明,这样就可以实现全局的声明,以下是全局声明的语法:
:root {--main-color: red; /* --main-color就叫做自定义属性的名称 */--second-color: blue; }
-
局部声明
局部声明需要在元素内部进行声明,或者是在某一块元素中声明声明的语法和全局声明的语法是一样的。这里就不做过多解释。
-
-
使用方式
想要使用就必须去声明,声明后就可以在属性中去引用属性值了。
例如:
<div class="box">文本</div>
:root{ --min-color:red; --second-color:blue; } .box{width:200px;height:200px;background:var(--min-color);color:var(--second-color); }
这段代码的结果大家可以去试一下,我这里就把结果告知大家,你会看到一个背景是红色,文字是蓝色的盒子。这就是var()函数的使用。
-
动态更新
与javaScript配合可以实现动态的更新,首先需要通过js获取到更改变量的值,然后进行更改,随后所有使用了自定义属性名称的属性都会进行改变。
实例:
:root{--min-color:red; } .box{width:200px;height:200px;background:var(--min-color); }
<div class="box">文本</div>
document.documentElement.style.setProperty('--min-color','blue')
这块大家可以猜一下,是什么结果?
效果大家自己实践一下,结果会是一个蓝色背景的盒子,原因就是在js部分通过获取了这个属性的值,进行了动态更改,然后就被更改为了蓝色。
除了动态更新,还有很多的高级的用法。比如下面要说的。
-
与calc()配合使用
与calc()配合使用可以实现很多复杂样式的计算,例如:
<div class="box">文本</div>
.box{--width:200px;width:calc(var(--width)*1.5);height:calc(var(--width)*1.5);background:red }
同样的我不会去展示效果,大家可以自己实践一下,结果就是大家会看到一个300*300的一个红色盒子,大家可以检查元素进行查看。
-
兼容性问题
-
关于兼容性的问题大家可以放心使用,从以上可以看出,大部分的浏览器都是支持这个属性的,大家可以放心使用。
-
小结
关于CSS3中的var()函数为样式表提供了强大的变量支持,使得样式的定义和使用更加灵活和可维护。通过合理使用自定义属性,我们可以减少代码重复,提高开发效率,并轻松实现样式的动态更新。
2、calc()函数
关于这个函数,MDN中是这样解释的:
此 calc() 函数用一个表达式作为它的参数,用这个表达式的结果作为值。
也就是说可以通过这个函数允许我们将属性值替换为一个表达式,然后将这个表达式的值去替换我们实际使用的属性值。它允许我们在指定 CSS 属性值时使用加法、减法、乘法、除法等基本运算,从而实现更灵活的布局和样式设计
-
calc() 常用的基本运算:
-
加法(+):calc(100% + 20px)
-
减法(-):calc(100% - 50px)
-
乘法(*):calc(50px * 2)
-
除法(/):calc(100px / 2)
-
取余(%):calc(100px % 3)
-
括号(()):calc((1 + 2) * 3)
-
语法
property: calc(expression)
property表示想要使用这个函数想css属性,而expression就是要设计的表达式,单位可以混用
-
可以作为属性值使用
.el {font-size: calc(3vw + 2px);width:calc(100% - 20px);height:calc(100vh - 20px);padding:calc(1vw + 5px); }
注意:calc() 中的操作符(+、-、*、/)前后必须保留空格,否则会导致计算失败。
-
使用
在属性值中使用
.box {font-size: calc(3vw + 2px);width: calc(100% - 100px);height: calc(10vw - 20px);background: orange; }
用于长度和其他数字
.box {width: calc(2px*3);height: 200px;background: orange; }
在媒体查询中使用
* {margin: 0; } .box {width: 200px;height: 200px;background: orange; } @media (max-width: calc(500px + 1rem)) {.box {background: red;} }
max-width:最大的宽度 500px + 1rem(16px) = 516px 这段代码的意思就是:视口的宽度不能超过516Px,在516px范围内背景色是红色
注意:
1、加法和减法要求两个数字都必须有单位
2、除法要求第二个数字是没有单位的
3、乘法要求其中一个数字是没有单位的
三、总结
虽然这些css自定义属性【函数】看上去比较复杂,但是这可以帮助我们更好的去简化代码结构,节省空间,这也是比较推荐的写法,兼容性问题也帮大家看了,大部分主流的浏览器都是兼容的,放心使用即可!!
感觉不错的伙伴,可以加入我的社区,后期会有更多关于前端的知识会分享到社区,欢迎加入!
社区链接:https://bbs.csdn.net/forums/fe46c651de82465696aeabef266b0476?joinKey=indbz3pgxkw6-kol15r32n3-1-2d4abe395628810b94216b8a35c44ca3&roleId=1170992https://bbs.csdn.net/forums/fe46c651de82465696aeabef266b0476?joinKey=indbz3pgxkw6-kol15r32n3-1-2d4abe395628810b94216b8a35c44ca3&roleId=1170992
相关文章:
CSS函数
目录 一、背景 二、函数的概念 1. var()函数 2、calc()函数 三、总结 一、背景 今天我们就来说一说,常用的两个css自定义属性,也称为css函数。本文中就成为css函数。先来看一下官方对其的定义。 自定义属性(有时候也被称作CSS 变量或者级…...
Linux网络——传输层
目录 1. 再谈端口号 2. UDP ① UDP 协议的报文 ② UDP 协议报头的本质 3. TCP ① TCP 缓冲区的理解 ② TCP 协议的报文 1. 16位源端口号 && 16位目的端口号 && 4位首部长度 2. 16位窗口大小 3. 32位序号 && 32位确认序号 4. 六个标记位 ③…...
2024年认证杯SPSSPRO杯数学建模A题(第一阶段)保暖纤维的保暖能力全过程文档及程序
2024年认证杯SPSSPRO杯数学建模 A题 保暖纤维的保暖能力 原题再现: 冬装最重要的作用是保暖,也就是阻挡温暖的人体与寒冷环境之间的热量传递。人们在不同款式的棉衣中会填充保暖材料,从古已有之的棉花、羽绒到近年来各种各样的人造纤维。不…...
采药 刷题笔记 (动态规划)0/1背包
P1048 [NOIP2005 普及组] 采药 - 洛谷 | 计算机科学教育新生态 动态规划 0/1背包 的本质在于继承 一行一行更新 上一行是考虑前i个物品的最优情况 当前行是考虑第i1个物品的情况 当前行的最优解 来自上一行和前i个物品的最优解进行比较 如果当前装了当前物品ÿ…...
LabVIEW MathScript工具包对运行速度的影响及优化方法
LabVIEW 的 MathScript 工具包 在运行时可能会影响程序的运行速度,主要是由于以下几个原因: 1. 解释型语言执行方式 MathScript 使用的是类似于 MATLAB 的解释型语言,这意味着它不像编译型语言(如 C、C 或 LabVIEW 本身的 VI&…...
大数据新视界 -- Hive 数据湖架构中的角色与应用(上)(25 / 30)
💖💖💖亲爱的朋友们,热烈欢迎你们来到 青云交的博客!能与你们在此邂逅,我满心欢喜,深感无比荣幸。在这个瞬息万变的时代,我们每个人都在苦苦追寻一处能让心灵安然栖息的港湾。而 我的…...
电脑关机的趣味小游戏——system函数、strcmp函数、goto语句的使用
文章目录 前言一. system函数1.1 system函数清理屏幕1.2 system函数暂停运行1.3 system函数电脑关机、重启 二、strcmp函数三、goto语句四、电脑关机小游戏4.1. 程序要求4.2. 游戏代码 总结 前言 今天我们写一点稍微有趣的代码,比如写一个小程序使电脑关机…...
elasticsearch是如何进行搜索的?
请求与转发 协调节点确定参与搜索的目标索引,及其通过分片路由表确定分片对索引所在分片中选择任意节点并发请求多个分片的副本分片 副本选择策略 副本选择主要考虑 分片健康状态:选择状态为 green 或 yellow 的副本节点负载情况:避免查询…...
【Linux课程学习】:站在文件系统之上理解:软硬链接,软硬链接的区别
🎁个人主页:我们的五年 🔍系列专栏:Linux课程学习 🌷追光的人,终会万丈光芒 🎉欢迎大家点赞👍评论📝收藏⭐文章 Linux学习笔记: https://blog.csdn.net/d…...
如何做好一份技术文档
要做好一份技术文档,你需要遵循以下步骤: 1. 明确文档目标: 确定文档的目的和受众。 了解受众的技术水平和背景,以便调整内容的深度和语言风格。 2. 收集信息: 搜集所有与主题相关的技术细节、数据、图表和…...
优雅关闭进程
原文地址:优雅关闭进程 – 无敌牛 欢迎参观我的个人博客:无敌牛 – 技术/著作/典籍/分享等 介绍 本文涉及到进程对信号的响应,关于信号的一些基本知识,可以参考往期文章:linux系统信号简介 – 无敌牛 一个进程正常…...
【WEB开发.js】addEventListener事件监听器的绑定和执行次数的问题(小心踩坑)
假设我们有一个按钮,用户点击该按钮后,会选择一个文件,且我们希望每次点击按钮时只触发一次文件处理。下面我会给你一个简单的例子,展示放在函数内部和放在函数外部的区别。 1. 将事件监听器放在函数内部(问题的根源&…...
将 x 减到 0 的最小操作数 C++滑动窗口
给你一个整数数组 nums 和一个整数 x 。每一次操作时,你应当移除数组 nums 最左边或最右边的元素,然后从 x 中减去该元素的值。请注意,需要 修改 数组以供接下来的操作使用。 如果可以将 x 恰好 减到 0 ,返回 最小操作数 &#x…...
深入解析 C++ 中的 common_reference_with 和 common_with:设计原理与复杂性
在 C 标准库的设计中,类型之间的兼容性和安全性是至关重要的,尤其是在泛型编程中。为了实现高效且安全的类型推导和转换,C 提供了一些复杂的概念和工具来确保不同类型之间能够正确协同工作。common_reference_with 和 common_with 这两个概念…...
从CPU缓存与指令重排序探讨JMM
目录 问题背景 解决思路 hb关系的应用 原子性问题 问题背景 1. 编译器和CPU优化: 编译器和CPU为了提升单线程程序的性能,会对代码进行优化,如指令重排序、延迟计算等。这些优化在单线程环境下不会影响程序的最终结果,但在多线…...
ETSI EN 300328 标准的一些笔记
ETSI - European Telecommunications Standards Institute 欧洲电信标准化协会 ETSI EN 300328 是欧洲协调标准,此标准适用于工作在2.4G频段范围内运行的宽频传输系统和设备的无线电频谱。 例如 WIFI、Zigbee、蓝牙、 (国内的星闪)。不涵盖UWB。 符合了EN 300328标…...
各大浏览器(如Chrome、Firefox、Edge、Safari)的对比
浏览器如Chrome、Firefox、Edge等在功能、性能、隐私保护等方面各有特点。以下是对这些浏览器的详细对比,帮助你选择合适的浏览器。 1. Google Chrome 市场份额:Chrome是目前市场上最流行的浏览器,约占全球浏览器市场的65%以上。 性能&#…...
AD7606使用方法
AD7606是一款8通道最高16位200ksps的AD采样芯片。5V单模拟电源供电,真双极性模拟输入可以选择10 V,5 V两种量程。支持串口与并口两种读取方式。 硬件连接方式: 配置引脚 引脚功能 详细说明 OS2 OS1 OS2 过采样率配置 000 1倍过采样率 …...
双向长短期记忆(Bi-LSTM)神经网络介绍
长短期记忆(Long Short-Term Memory, LSTM)神经网络: 1.是Hochreiter和Schmidhuber设计的循环神经网络(Recurrent Neural Network, RNN)的改进版本。LSTM模型借鉴了人类大脑的选择性输入和选择性遗忘机制,获取序列中的关键信息,遗忘和当前预测…...
openGauss开源数据库实战十八
文章目录 任务十八 openGauss逻辑结构:构:用户和权眼管理任务目标实施步骤一、准备工作二、用户和角色管理1.使用CREATE USER语句创建用户2.使用CREATE ROLE语句创建用户3.删除用户和角色 三、权限管理1.系统权限清理工作 任务十八 openGauss逻辑结构:构:用户和权眼管理 任务目…...
JVM 性能调优 -- JVM 调优常用网站
前言: 上一篇分享了 JDK 自带的常用的 JVM 调优命令和图形化界面工具,本篇我们分享一下常用的第三方辅助 JVM 调优网站。 JVM 系列文章传送门 初识 JVM(Java 虚拟机) 深入理解 JVM(Java 虚拟机) 一文搞…...
现在的电商风口已经很明显了
随着电商行业的不断发展,直播带货的热潮似乎正逐渐降温,而货架电商正成为新的焦点。抖音等平台越来越重视货架电商,强调搜索功能的重要性,预示着未来的电商中心将转向货架和搜索。 在这一转型期,AI技术与电商的结合为…...
基于AT89C52单片机的电子时钟与温湿度检测系统
✅作者简介:2022年博客新星 第八。热爱国学的Java后端开发者,修心和技术同步精进。 🍎个人主页:Java Fans的博客 🍊个人信条:不迁怒,不贰过。小知识,大智慧。 💞当前专栏…...
Wwise SoundBanks内存优化
1.更换音频格式为Vorbis 2.停用多余的音频,如Random Container的随机脚步声数量降为2个 3.背景音乐勾选“Stream”。这样就让音频从硬盘流送到Wwise,而不是保存在内存当中,也就节省了内存 4.设置最大发声数Max Voice Instances 5.设置音频…...
Next.js 独立开发教程(十三):错误处理(Error Handling)
系列文章目录 Next.js 开发教程(一):入门指南-CSDN博客 Next.js 开发教程(二):从零构建仪表盘应用-CSDN博客 Next.js 开发教程(三):CSS 样式的完整指南-CSDN博客 Next.js 独立开发教程&…...
【Halcon】边缘检测算子汇总(一)
frei_amp 功能:使用Frei-Chen算法检测图像的边缘振幅。 参数: 输入图像(Image):待处理的原始图像。输出梯度图像(ImageEdgeAmp):经过Frei-Chen算法处理后的边缘振幅图像。工作原理:frei_amp算子通过计算图像一阶导数的近似值来检测边缘。它使用两个特定的滤波器掩模(…...
前端开发中Token存储:选择Cookie还是localStorage?
在现代前端开发领域,用户身份验证与状态管理不可或缺,而 token 作为身份验证机制的核心要素,对保障用户信息安全至关重要。然而,token 的存储方式对应用安全性和用户体验有着直接影响。本文将从安全性、便捷性和使用场景等维度,深度剖析在 Cookie 和 localStorage 中选择存…...
Scala中的正则表达式01
规则类型具体规则示例说明单字符大多数字符匹配自身正则表达式 abc,文本 abca 匹配 a,b 匹配 b,c 匹配 c方括号 [ ][ ] 定义字符集,匹配其一[abc],文本 a、b 或 c[abc] 匹配 a、b 或者 c排除字符集 [^ ][^ ] 开头加 ^&…...
机器学习——决策树模型
决策树是如何工作的? 假设你在经营一家猫收养中心,并提供了一些功能,你想训练一个分类器来快速告诉你,动物到底是不是猫,这里有10个训练例子,并与这10个例子中的每一个相关联,我们将有关于动物…...
#3003. Jed‘s MEX
刚开始直接硬来,要么TLE要么WA 后面改成另一种思路: 先把ai大于n的全都转换为刚好小于n的数,记录在cnt[i]中,代表ai有多少个 然后从高往低走,把cnt大于1的分到下面去,使数尽可能分布得广一些 然后从低往…...
数据集增强:提升深度学习模型泛化能力的关键技术
在深度学习中,数据是模型性能的基石。大规模、高质量的数据集通常能显著提高模型的泛化能力,帮助模型在真实场景中做出更准确的预测。然而,在很多实际应用中,数据收集困难、昂贵或者受限,尤其是当数据集相对较小或标注…...
JS实现高效导航——A*寻路算法+导航图简化法
一、如何实现两点间路径导航 导航实现的通用步骤,一般是: 1、网格划分 将地图划分为网格,即例如地图是一张图片,其像素为1000*1000,那我们将此图片划分为各个10*10的网格,从而提高寻路算法的计算量。 2、标…...
在wordpress添加自定义文章类型
实现思路 在Once主题中,有文章,页面等编辑的文案类型,文章类型主要做文案输出,而页面类型主要做一些界面菜单的操作。参考文章类型,使用自定义页面模板,实现一个自定义文章类型,例如**笔记(nod…...
[node.js] [HTTP/S] 实现 requests 发起 HTTP/S/1.1/2.0 请求
node.js 使用 V8 引擎来编译运行 javascript 代码,与浏览器中的环境不同的是,node.js 不包含 DOM 和 BOM 模块。 本文使用 node.js 的官方库来实现一个简单的 requests() 函数,可以用来发送 HTTP/1.1 和 HTTP/2.0 的请求。有关 HTTP/1.1 和 …...
基于Java Springboot线上约拍摄影预约微信小程序
一、作品包含 源码数据库全套环境和工具资源部署教程 二、项目技术 前端技术:Html、Css、Js、Vue、Element-ui uniapp 数据库:MySQL 后端技术:Java、Spring Boot、MyBatis 三、运行环境 开发工具:IDEA/eclipse 微信开发者工…...
node.js基础学习-cheerio模块-简单小爬虫(五)
学习cheerio模块,简单做一个爬取图片网站的图片,并且将这些图片下载到本地指定的文件夹下,很多图片网站都有一些反爬取的机制,找的好几个都会报302错误,所以我找了一个小的图片网站,这个没有反爬取机制&…...
吾杯网络安全技能大赛WP(部分)
吾杯网络安全技能大赛WP(部分) MISC Sign 直接16进制解码即可 原神启动 将图片用StegSolve打开 找到了压缩包密码 将解出docx文件改为zip 找到了一张图片和zip 再把图片放到stegSlove里找到了img压缩包的密码 然后在document.xml里找到了text.zip压缩包密码 然后就出来fl…...
【python自动化一】pytest的基础使用
1.pytest简述 pytest 是一个功能强大且灵活的Python测试框架,其主要是用于流程控制,具体用于UI还是接口自动化根据个人需要而定。且其具有丰富插件,使用时较为方便。咱们具体看下方的内容,本文按照使用场景展开,不完…...
使用 CFD 仿真进行阀门性能分析:第 II 部分
了解如何使用 Ansys Discovery 通过优化模式获得准确的阀门性能结果。 第 II 部分:优化模式下的模拟 阀门的模拟可以在 Explore (探索) 模式和 Refine (优化) 模式下执行。Explore 模式允许快速仿真,在长达…...
Node.js实现WebSocket教程
Node.js实现WebSocket教程 1. WebSocket简介 WebSocket是一种在单个TCP连接上提供全双工通信的协议,允许服务器和客户端之间进行实时、双向通信。本教程将详细讲解如何在Node.js中实现WebSocket。 2. 技术选型 我们将使用ws库来实现WebSocket服务器,…...
使用 Statsmodels 进行统计建模与分析
使用 Statsmodels 进行统计建模与分析 Statsmodels 是 Python 中一个功能强大的库,用于执行统计建模和计量经济学分析。它提供了一系列经典的统计模型和评估方法,涵盖线性回归、时间序列分析和广义线性模型等。 本文将带你深入了解 Statsmodels 的功能…...
【Linux】进程间通信
目录 一、管道 (一)概念 (二)匿名管道 1、概念 2、函数介绍 3、示例代码 4、原理 (三)命名管道 1、概念 2、函数介绍 3、示例代码 4、原理 (四)管道的读写规则 &#x…...
Python 网络爬虫高级教程:分布式爬取与大规模数据处理
经过基础爬虫和进阶爬虫的学习,我们已经掌握了爬虫的基本原理、动态内容处理及反爬机制的应对。然而,当我们面对海量数据或需要高效爬取多个站点时,分布式爬虫和数据存储、处理能力就显得尤为重要。本篇博客将带你迈向网络爬虫的高级阶段&…...
猫爪背后的情感密码
当家中那只可爱的猫咪时不时用它的小爪子轻拍我们时,很多人或许只当作是调皮捣蛋,实则背后大有深意。 猫用爪子打,可能是在向我们发出玩耍的邀约。在猫咪的天性里,捕猎本能根深蒂固。它们在幼年时与同伴的嬉戏打闹,便…...
【自用】管材流转项目前端重部署流程 vue2 webpackage4 vuecli4
一、配置 1.下载项目,使用 IDEA 打开,并配置 Nodejs 它提示我,需要 Node.js,因为 nodejs 14 的 installer 已经官网已经找不到了,使用 fnm 又太麻烦, 所以直接采用在 IDEA 中下载的方式就好了。 2.清除缓…...
关于c的子进程 fork()
fork() 是一个非常重要的系统调用,用于在 Unix-like 操作系统中创建一个新的进程。它会将当前进程(父进程)复制成一个新的进程(子进程)。子进程会从父进程的代码处继续执行,但具有不同的进程 ID。 fork() …...
耀圣控制设备有限公司:优质压滤机阀门的引领者
耀圣控制设备有限公司:优质压滤机阀门的引领者 在压滤机阀门领域,耀圣控制设备有限公司以其卓越的品质和领先的技术,成为了行业内备受瞩目的品牌。 耀圣控制设备有限公司专注于压滤机阀门的研发与生产,凭借着先进的工艺和严格的质…...
【C语言】结构体(四)
本篇重点是typedef关键字 一,是什么? typedef用来定义新的数据类型,通常typedef与结构体的定义配合使用。 简单来说就是取别名 ▶ struct 是用来定义新的数据类型——结构体 ▶ typedef是给数据类型取别名。 二,为什么…...
面向源代码的软件可信度量模型 T_{na}
面向源代码的软件可信度量模型 T n a T_{na} Tna 课程:软件质量分析 作业 可编写下面的java程序: package org.example;public class SourceCodeOrientedModel {public static void main(String[] args) {int total 41;int[] m {9, 22, 9, 5, 7, 1…...
Java11使用JVM同一日志框架启用日志记录
你可以使用-Xlog选项配置或启用Java虚拟机同一日志框架的日志记录。 -Xlog:gc*trace:file/Users/xx/gc-%t.log:time,tags,level,pid,tid,hostname,path:filecount3,filesize10K -Xlog:gc*trace:stdout:time,tags,level,pid,tid,hostname:filecount3,filesize10K -Xlog:gc*trac…...