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

CSS Transforms与Filters详解:创建视觉效果的利器

CSS Transforms与Filters详解创建视觉效果的利器一、CSS Transforms基础CSS Transforms允许你对元素进行旋转、缩放、倾斜和平移等变换操作。这些变换不会影响文档流只会改变元素的视觉表现。1.1 transform属性transform属性接受一个或多个变换函数按顺序应用。.transformed { transform: rotate(45deg) scale(1.5) translateX(20px); }1.2 transform-origin - 变换原点默认情况下变换是以元素的中心点为原点的。你可以通过transform-origin改变原点位置。.box { transform-origin: top left; /* 左上角 */ transform: rotate(10deg); } .box2 { transform-origin: 50% 50%; /* 中心点默认 */ transform-origin: center center; } .box3 { transform-origin: 20px 30px; /* 距离左上角20px, 30px */ }二、2D变换函数2.1 translate() - 平移translate()函数用于移动元素的位置。/* 水平平移 */ .translate-x { transform: translateX(50px); } /* 垂直平移 */ .translate-y { transform: translateY(30px); } /* 同时平移 */ .translate-both { transform: translate(50px, 30px); } /* 百分比平移相对于自身尺寸 */ .translate-percent { transform: translate(10%, 5%); }2.2 rotate() - 旋转rotate()函数用于旋转元素单位为角度deg。.rotate { transform: rotate(45deg); } .rotate-negative { transform: rotate(-30deg); }2.3 scale() - 缩放scale()函数用于缩放元素。/* 等比缩放 */ .scale-uniform { transform: scale(1.5); /* 放大1.5倍 */ } /* 不等比缩放 */ .scale-non-uniform { transform: scale(1.2, 0.8); /* 宽度放大1.2倍高度缩小到0.8倍 */ } /* 单独缩放 */ .scale-x { transform: scaleX(1.5); } .scale-y { transform: scaleY(0.8); }2.4 skew() - 倾斜skew()函数用于倾斜元素。/* 水平倾斜 */ .skew-x { transform: skewX(20deg); } /* 垂直倾斜 */ .skew-y { transform: skewY(10deg); } /* 同时倾斜 */ .skew-both { transform: skew(20deg, 10deg); }2.5 matrix() - 矩阵变换matrix()是最底层的变换函数使用6个参数的变换矩阵。.matrix-transform { transform: matrix(a, b, c, d, e, f); }这等价于a scaleXb skewYc skewXd scaleYe translateXf translateY三、3D变换函数3.1 perspective - 透视要创建3D效果首先需要设置透视。.container { perspective: 1000px; perspective-origin: center center; }3.2 3D平移.translate-z { transform: translateZ(100px); } .translate-3d { transform: translate3d(50px, 30px, 100px); }3.3 3D旋转.rotate-x { transform: rotateX(45deg); } .rotate-y { transform: rotateY(45deg); } .rotate-z { transform: rotateZ(45deg); } .rotate-3d { transform: rotate3d(1, 1, 0, 45deg); }3.4 3D缩放.scale-z { transform: scaleZ(1.5); } .scale-3d { transform: scale3d(1.2, 1.2, 1.5); }3.5 transform-style - 3D空间.container { transform-style: preserve-3d; /* 子元素保持3D空间 */ } .flat { transform-style: flat; /* 子元素扁平化默认 */ }3.6 backface-visibility - 背面可见性.card { backface-visibility: hidden; /* 翻转时隐藏背面 */ } .visible-back { backface-visibility: visible; /* 翻转时显示背面默认 */ }四、CSS Filters基础CSS Filters提供了一系列视觉效果如模糊、亮度、对比度等。4.1 filter属性.filtered { filter: blur(5px) brightness(1.2) contrast(1.1); }4.2 blur() - 模糊.blur-light { filter: blur(3px); } .blur-heavy { filter: blur(10px); }4.3 brightness() - 亮度.brightness-up { filter: brightness(1.5); /* 提高亮度 */ } .brightness-down { filter: brightness(0.5); /* 降低亮度 */ }4.4 contrast() - 对比度.contrast-high { filter: contrast(1.5); } .contrast-low { filter: contrast(0.5); }4.5 saturate() - 饱和度.saturate-high { filter: saturate(2); } .saturate-low { filter: saturate(0.5); } .grayscale { filter: saturate(0); /* 灰度效果 */ }4.5 grayscale() - 灰度.grayscale-full { filter: grayscale(100%); } .grayscale-partial { filter: grayscale(50%); }4.6 sepia() - 棕褐色调.sepia-effect { filter: sepia(80%); }4.7 hue-rotate() - 色相旋转.hue-rotate { filter: hue-rotate(90deg); }4.8 invert() - 反色.invert-effect { filter: invert(100%); }4.9 opacity() - 透明度.opacity-filter { filter: opacity(50%); }4.10 drop-shadow() - 阴影.drop-shadow { filter: drop-shadow(2px 2px 4px rgba(0, 0, 0, 0.3)); }4.11 url() - SVG滤镜.svg-filter { filter: url(#myFilter); }五、实战应用场景5.1 卡片翻转动画.card-container { perspective: 1000px; } .card { width: 200px; height: 300px; position: relative; transform-style: preserve-3d; transition: transform 0.6s; } .card.flipped { transform: rotateY(180deg); } .card-front, .card-back { position: absolute; width: 100%; height: 100%; backface-visibility: hidden; border-radius: 8px; } .card-front { background: linear-gradient(135deg, #667eea 0%, #764ba2 100%); } .card-back { background: linear-gradient(135deg, #f093fb 0%, #f5576c 100%); transform: rotateY(180deg); }5.2 图片悬停效果.image-container { overflow: hidden; border-radius: 8px; } .image-container img { transition: transform 0.5s ease; } .image-container:hover img { transform: scale(1.1); filter: brightness(1.1) saturate(1.2); }5.3 文字阴影效果.text-shadow { font-size: 48px; font-weight: bold; color: white; text-shadow: 2px 2px 4px rgba(0, 0, 0, 0.5), 0 0 20px rgba(76, 175, 80, 0.5); }5.4 按钮悬停效果.button { background: linear-gradient(135deg, #667eea 0%, #764ba2 100%); color: white; padding: 12px 24px; border: none; border-radius: 4px; transition: all 0.3s ease; } .button:hover { transform: translateY(-2px) scale(1.02); box-shadow: 0 8px 20px rgba(102, 126, 234, 0.4); } .button:active { transform: translateY(0) scale(1); }5.5 毛玻璃效果.glass-effect { background: rgba(255, 255, 255, 0.2); backdrop-filter: blur(10px); -webkit-backdrop-filter: blur(10px); border: 1px solid rgba(255, 255, 255, 0.3); border-radius: 12px; }5.6 霓虹发光效果.neon-text { font-size: 36px; color: #fff; text-shadow: 0 0 5px #fff, 0 0 10px #fff, 0 0 20px #ff00de, 0 0 40px #ff00de; } .neon-box { box-shadow: 0 0 5px #00ffff, 0 0 10px #00ffff, 0 0 20px #00ffff, inset 0 0 5px #00ffff; }5.7 3D立方体.cube-container { perspective: 800px; } .cube { width: 100px; height: 100px; position: relative; transform-style: preserve-3d; animation: rotate 5s infinite linear; } .cube-face { position: absolute; width: 100px; height: 100px; display: flex; align-items: center; justify-content: center; font-size: 24px; font-weight: bold; border: 2px solid #333; } .front { transform: translateZ(50px); background: rgba(255, 0, 0, 0.8); } .back { transform: rotateY(180deg) translateZ(50px); background: rgba(0, 255, 0, 0.8); } .left { transform: rotateY(-90deg) translateZ(50px); background: rgba(0, 0, 255, 0.8); } .right { transform: rotateY(90deg) translateZ(50px); background: rgba(255, 255, 0, 0.8); } .top { transform: rotateX(90deg) translateZ(50px); background: rgba(255, 0, 255, 0.8); } .bottom { transform: rotateX(-90deg) translateZ(50px); background: rgba(0, 255, 255, 0.8); } keyframes rotate { from { transform: rotateX(0deg) rotateY(0deg); } to { transform: rotateX(360deg) rotateY(360deg); } }六、性能优化建议6.1 使用GPU加速.element { transform: translateZ(0); /* 触发GPU加速 */ will-change: transform; /* 告知浏览器即将变化 */ }6.2 避免过度使用复杂滤镜复杂的filter效果会消耗大量性能尤其是在动画中。/* 避免 */ .heavy-filter { filter: blur(20px) brightness(1.5) contrast(1.2); } /* 建议 */ .light-filter { filter: blur(3px); }6.3 使用contain属性.element { contain: layout paint size; /* 限制重绘范围 */ }七、浏览器兼容性特性ChromeFirefoxSafariEdge2D Transform✅✅✅✅3D Transform✅✅✅✅Filter✅✅✅✅backdrop-filter✅✅✅✅八、最佳实践总结组合使用Transform和Filter可以组合使用创造更丰富的效果。硬件加速使用transform: translateZ(0)或will-change触发GPU加速。性能监控监控动画性能避免卡顿。渐进增强确保在不支持这些特性的浏览器中有降级方案。语义化不要用Transform改变元素的语义结构。总结CSS Transforms和Filters是创建丰富视觉效果的强大工具。Transform允许你对元素进行旋转、缩放、平移等操作而Filters则提供了模糊、亮度、对比度等视觉效果。通过本文的学习你应该能够理解2D和3D变换的基本概念掌握常用的变换函数和滤镜效果创建精美的悬停效果和动画优化性能避免性能问题继续探索更多高级用法结合CSS动画和过渡效果你将能够构建出更加精美和交互丰富的Web界面。

相关文章:

CSS Transforms与Filters详解:创建视觉效果的利器

CSS Transforms与Filters详解:创建视觉效果的利器 一、CSS Transforms基础 CSS Transforms允许你对元素进行旋转、缩放、倾斜和平移等变换操作。这些变换不会影响文档流,只会改变元素的视觉表现。 1.1 transform属性 transform 属性接受一个或多个变换函…...

【肾结石检测】基于matlab图像处理技术检测超声图像中的肾结石【含Matlab源码 15553期】含报告

💥💥💥💥💥💥💞💞💞💞💞💞💞💞欢迎来到海神之光博客之家💞💞💞&#x1f49…...

恒玄bes2600WM+DSP蓝牙耳机项目

bes2600WMDSP蓝牙耳机项目...

【读书笔记】《更富有、更睿智、更快乐》

《更富有、更睿智、更快乐》精读笔记作者威廉格林历时25年,贴身采访全球40余位顶级投资大师,包括芒格、巴菲特等人,总结出一套投资与人生的双赢哲学。核心命题顶级投资者本质上是一类实践哲学家——他们不谈空理论,只追求世俗智慧…...

AI视频生成工具“免费额度”背后的算法剥削:我们逆向拆解11家平台的Token计费黑箱(含实测换算表)

更多请点击: https://codechina.net 第一章:AI视频生成工具收费价格对比 当前主流AI视频生成工具在定价策略上呈现显著差异,涵盖免费试用、按分钟计费、订阅制及企业定制等多种模式。用户在选型时需综合考量生成质量、输出分辨率、商用授权范…...

ppt模板_0041_十一国庆主题3

PPT模板分享...

3分钟掌握novel-downloader:打造你的永久小说图书馆终极指南

3分钟掌握novel-downloader:打造你的永久小说图书馆终极指南 【免费下载链接】novel-downloader 一个可扩展的通用型小说下载器。 项目地址: https://gitcode.com/gh_mirrors/no/novel-downloader 你是否曾经因为小说网站突然关闭、章节被删除或VIP内容无法离…...

艾尔登法环存档迁移终极指南:3步安全转移你的游戏角色

艾尔登法环存档迁移终极指南:3步安全转移你的游戏角色 【免费下载链接】EldenRingSaveCopier 项目地址: https://gitcode.com/gh_mirrors/el/EldenRingSaveCopier EldenRingSaveCopier 是一款专为《艾尔登法环》玩家设计的存档角色迁移工具,能够…...

深入实践LIWC文本分析:从心理语言学工具到企业级应用的全栈指南

深入实践LIWC文本分析:从心理语言学工具到企业级应用的全栈指南 【免费下载链接】liwc-python Linguistic Inquiry and Word Count (LIWC) analyzer 项目地址: https://gitcode.com/gh_mirrors/li/liwc-python 在当今数据驱动的商业环境中,文本分…...

5分钟免费上手:AI换脸终极指南,用roop-unleashed创作专业级视频

5分钟免费上手:AI换脸终极指南,用roop-unleashed创作专业级视频 【免费下载链接】roop-unleashed Evolved Fork of roop with Web Server and lots of additions 项目地址: https://gitcode.com/gh_mirrors/ro/roop-unleashed 想要零基础制作电影…...

基于LIME可解释性AI的宇宙学模型分类:从fσ8数据到物理洞察

1. 项目概述与核心价值在宇宙学这个探索宇宙终极奥秘的领域,我们常常面临一个核心挑战:如何从海量、复杂且充满噪声的观测数据中,提取出能够区分不同物理理论的“指纹”。大尺度结构(LSS)的观测,特别是星系…...

机器学习负结果的价值:打破发表偏见,提升研究效率与可复现性

1. 项目概述:为何要正视机器学习中的“负结果”?在机器学习圈子里混了十几年,从学生时代跑第一个MNIST分类器,到后来在工业界折腾各种落地项目,我见过太多“成功”的论文,也亲手埋葬过更多“失败”的实验。…...

高校科研项目如何借助Taotoken管理多模型API调用

🚀 告别海外账号与网络限制!稳定直连全球优质大模型,限时半价接入中。 👉 点击领取海量免费额度 高校科研项目如何借助Taotoken管理多模型API调用 在高校的实验室或科研团队中,进行人工智能相关的探索时,常…...

量子机器学习实战:性能瓶颈与安全挑战深度剖析

1. 量子机器学习实战:从理论到现实的性能与安全鸿沟最近几年,量子计算的热度居高不下,几乎每隔一阵子就能看到“量子霸权”或“量子优势”的新进展。作为一名长期关注前沿技术落地的从业者,我自然也对量子机器学习(QML…...

机器学习驱动热光伏电池设计:从材料筛选到器件优化

1. 项目概述:当机器学习遇见热光伏电池设计在能源技术领域,热光伏(TPV)技术一直是一个充满魅力但又颇具挑战的方向。简单来说,它就像一个“热能收割机”,能将高温热源(比如工业废热、聚光太阳能…...

DeepSeek混合云架构下跨AZ流量调度困局:基于eBPF+Service Mesh的实时负载感知调度器设计(已上线支撑日均2.7亿QPS)

更多请点击: https://codechina.net 第一章:DeepSeek混合云架构下跨AZ流量调度困局的系统性认知 在DeepSeek混合云生产环境中,核心推理服务部署于多可用区(AZ)集群,底层横跨公有云(如AWS us-ea…...

一直怕大模型幻觉,发现针对性harness约束能大大消除

我让AI写长文,然后人工审核,发现大量胡编乱造。 如果人工一个个消除,实在太累了,这就不是LLM自动化办公的路子了 尝试了 harness (engineering)的实操路子, 试用发现: 大模型正在把长文中我人工审核发现的幻…...

Props技术:基于隐私保护预言机的机器学习安全数据管道

1. Props技术:为机器学习解锁深网数据的安全钥匙如果你正在为机器学习项目寻找高质量的训练数据而发愁,或者为如何在应用中安全地处理用户敏感信息而头疼,那么你很可能已经触及了当前AI发展的一个核心痛点:数据瓶颈与信任危机。表…...

Gogs符号链接导致远程命令执行漏洞深度解析

1. 这个漏洞不是“能执行命令”那么简单,而是Gogs在文件系统边界上彻底失守CVE-2024-56731这个编号刚出现在NVD数据库时,我第一反应是点开看PoC——结果发现它连exploit.py都不需要写,一条curl加一个精心构造的.git/config就能让目标服务器执…...

QrazyBox终极指南:专业二维码修复工具拯救你的损坏二维码

QrazyBox终极指南:专业二维码修复工具拯救你的损坏二维码 【免费下载链接】qrazybox QR Code Analysis and Recovery Toolkit 项目地址: https://gitcode.com/gh_mirrors/qr/qrazybox 你是否曾因打印模糊、水渍污染或屏幕划痕导致的重要二维码无法扫描而焦急…...

昇腾CANN ops-nn GELU 激活函数:精确版 vs tanh 近似版,选错就是 3× 慢

GELU(Gaussian Error Linear Unit)是 BERT 的灵魂激活函数,后来被 GPT-2/3 沿用。两种实现:精确版(调用 erf,慢但数学精确)和 tanh 近似版(快但误差 ~0.1%)。BERT 的训练…...

昇腾CANN ops-nn 交叉熵损失的融合优化:从三次 Kernel Launch 到一次

语言模型每一层的损失计算:logits → softmax → log → 取 target 位置的负值。标准做法三次 kernel launch:softmax kernel → log kernel → NLL kernel。三次 HBM 往返,中间存两个 NV 矩阵(V 是词表大小,LLaMA 是 …...

昇腾CANN ops-nn RMSNorm:为什么 LLaMA 和 Mistral 都用它替代 LayerNorm

LayerNorm 做两件事:减均值(center)、除标准差(scale)。RMSNorm 只做一件:除 RMS。丢掉均值减法——省了 30% 计算,训练效果几乎一样。LLaMA、Mistral、Gemma 全系标配。 RMSNorm 的公式&#x…...

昇腾CANN ops-transformer FlashAttention 反向传播:不存 Attention 矩阵怎么求梯度

FlashAttention 前向传播的精髓:不存 NN 的 attention 矩阵,只存 O(N) 的输出和 softmax 归一化因子。反向传播时,需要 attention 矩阵来计算梯度——但矩阵没存。解法:重新算一遍。用额外的计算换显存——这是典型的 compute-for…...

在node js后端服务中集成taotoken实现多模型智能客服响应

🚀 告别海外账号与网络限制!稳定直连全球优质大模型,限时半价接入中。 👉 点击领取海量免费额度 在 Node.js 后端服务中集成 Taotoken 实现多模型智能客服响应 构建一个在线客服系统时,一个核心挑战是如何平衡响应质量…...

通过Taotoken的Token Plan套餐实现项目成本的可预测与精细控制

🚀 告别海外账号与网络限制!稳定直连全球优质大模型,限时半价接入中。 👉 点击领取海量免费额度 通过Taotoken的Token Plan套餐实现项目成本的可预测与精细控制 对于有长期、稳定大模型调用需求的团队而言,项目预算的…...

现在停用默认filter_config将导致合规风险!DeepSeek最新CVE-2024-7812漏洞预警及3小时紧急加固方案

更多请点击: https://codechina.net 第一章:DeepSeek敏感信息过滤 DeepSeek系列大模型在企业级部署中,需严格遵循数据安全与隐私合规要求。敏感信息过滤(Sensitive Information Filtering, SIF)是其推理链路中关键的前…...

DeepSeek免费额度怎么用才不浪费?资深MLOps工程师的6小时压测报告与最优请求批处理公式

更多请点击: https://kaifayun.com 第一章:DeepSeek免费额度怎么用才不浪费?资深MLOps工程师的6小时压测报告与最优请求批处理公式 在连续6小时、覆盖12种负载模式的真实压测中,我们发现DeepSeek API免费额度(当前为1…...

DeepSeek监控告警设置实战指南(告警失效率下降92%的7个关键开关)

更多请点击: https://kaifayun.com 第一章:DeepSeek监控告警设置的核心价值与落地挑战 在大模型推理服务规模化部署的背景下,DeepSeek系列模型(如DeepSeek-V2、DeepSeek-Coder)对资源稳定性、延迟敏感性及异常响应时效…...

Google 广告场景下 Uniswap 钓鱼攻击机理与 Web3 防御体系研究

摘要 2026 年 5 月 22 日,GoPlus 安全团队发布预警,针对 Web3 领域头部去中心化交易平台 Uniswap 的搜索引擎钓鱼攻击呈规模化爆发态势。攻击者通过购买 Google Ads 关键词广告,将高仿钓鱼网站置顶于搜索结果前列,结合视觉相似域名…...