CSS系列(27)- 图形与滤镜详解

前端技术探索系列:CSS 图形与滤镜详解 🎨

致读者:探索CSS的艺术表现力 👋

前端开发者们,

今天我们将深入探讨 CSS 图形和滤镜效果,学习如何创建引人注目的视觉效果。

基础图形 🚀

几何形状

/* 圆形 */
.circle {width: 100px;height: 100px;border-radius: 50%;background: #007bff;
}/* 三角形 */
.triangle {width: 0;height: 0;border-left: 50px solid transparent;border-right: 50px solid transparent;border-bottom: 86.6px solid #28a745;
}/* 六边形 */
.hexagon {width: 100px;height: 57.735px;background: #dc3545;position: relative;
}.hexagon::before,
.hexagon::after {content: '';position: absolute;width: 0;border-left: 50px solid transparent;border-right: 50px solid transparent;
}.hexagon::before {bottom: 100%;border-bottom: 28.867px solid #dc3545;
}.hexagon::after {top: 100%;border-top: 28.867px solid #dc3545;
}

复杂图形

/* 心形 */
.heart {width: 100px;height: 90px;position: relative;
}.heart::before,
.heart::after {content: '';position: absolute;top: 0;width: 50px;height: 80px;border-radius: 50px 50px 0 0;background: #ff4444;
}.heart::before {left: 50px;transform: rotate(-45deg);transform-origin: 0 100%;
}.heart::after {left: 0;transform: rotate(45deg);transform-origin: 100% 100%;
}/* 星形 */
.star {width: 0;height: 0;border-right: 100px solid transparent;border-bottom: 70px solid #ffd700;border-left: 100px solid transparent;transform: rotate(35deg);position: relative;
}.star::before {content: '';position: absolute;border-bottom: 80px solid #ffd700;border-left: 30px solid transparent;border-right: 30px solid transparent;transform: rotate(-35deg);top: -45px;left: -65px;
}.star::after {content: '';position: absolute;top: 3px;left: -105px;border-right: 100px solid transparent;border-bottom: 70px solid #ffd700;border-left: 100px solid transparent;transform: rotate(-70deg);
}

滤镜效果 🎯

基础滤镜

/* 模糊效果 */
.blur {filter: blur(5px);
}/* 亮度调整 */
.brightness {filter: brightness(150%);
}/* 对比度 */
.contrast {filter: contrast(180%);
}/* 组合滤镜 */
.combined-filters {filter: contrast(150%) brightness(110%) saturate(180%) hue-rotate(30deg);
}

高级滤镜

/* 毛玻璃效果 */
.frosted-glass {background: rgba(255, 255, 255, 0.2);backdrop-filter: blur(10px);-webkit-backdrop-filter: blur(10px);
}/* 动态滤镜 */
.hover-filter {transition: filter 0.3s;
}.hover-filter:hover {filter: brightness(110%) contrast(110%) saturate(120%);
}/* 图片处理 */
.image-effects {filter: sepia(50%)brightness(110%)contrast(120%)saturate(150%);
}

混合模式 💫

基础混合

/* 正片叠底 */
.multiply {background: #ff0000;mix-blend-mode: multiply;
}/* 叠加 */
.overlay {background: #00ff00;mix-blend-mode: overlay;
}/* 滤色 */
.screen {background: #0000ff;mix-blend-mode: screen;
}

高级混合

/* 渐变混合 */
.gradient-blend {background: linear-gradient(45deg, #ff0000, #00ff00);mix-blend-mode: overlay;
}/* 图片混合 */
.image-blend {background-image: url('image.jpg');mix-blend-mode: luminosity;
}/* 动态混合 */
.hover-blend {transition: mix-blend-mode 0.3s;
}.hover-blend:hover {mix-blend-mode: difference;
}

渐变技巧 ⚡

线性渐变

/* 基础渐变 */
.gradient {background: linear-gradient(45deg, #ff0000, #00ff00);
}/* 多色渐变 */
.multi-gradient {background: linear-gradient(to right,#ff0000,#ff7f00,#ffff00,#00ff00,#0000ff,#4b0082,#8f00ff);
}/* 重复渐变 */
.repeating-gradient {background: repeating-linear-gradient(45deg,#ff0000,#ff0000 10px,#ffffff 10px,#ffffff 20px);
}

径向渐变

/* 圆形渐变 */
.radial {background: radial-gradient(circle, #ff0000, #00ff00);
}/* 椭圆渐变 */
.elliptical {background: radial-gradient(ellipse at center,rgba(255,255,255,1) 0%,rgba(255,255,255,0) 70%);
}/* 多重渐变 */
.complex-gradient {background: radial-gradient(circle at 50% 0,rgba(255,0,0,.5),rgba(255,0,0,0) 70.71%),radial-gradient(circle at 6.7% 75%,rgba(0,0,255,.5),rgba(0,0,255,0) 70.71%),radial-gradient(circle at 93.3% 75%,rgba(0,255,0,.5),rgba(0,255,0,0) 70.71%);
}

最佳实践建议 💡

  1. 性能考虑

    • 合理使用滤镜
    • 优化渐变效果
    • 控制混合模式
    • 避免过度使用
  2. 创意表现

    • 组合多种效果
    • 动态交互
    • 响应式适配
    • 优雅降级
  3. 浏览器兼容

    • 特性检测
    • 回退方案
    • 前缀处理
    • 性能测试
  4. 实践建议

    • 模块化设计
    • 可维护性
    • 代码复用
    • 文档完善

写在最后 🌟

CSS图形和滤镜效果为我们提供了强大的视觉表现力,通过合理运用这些技术,我们可以创建出独特而吸引人的界面效果。

进一步学习资源 📚

  • CSS图形教程
  • 滤镜效果指南
  • 混合模式详解
  • 创意案例集

如果你觉得这篇文章有帮助,欢迎点赞收藏,也期待在评论区看到你的想法和建议!👇

终身学习,共同成长。

咱们下一期见

💻

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/495207.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

WPS工具栏灰色怎么办

WPS离线不登录,开启工具栏等相关功能 当你在使用WPS的过程中,若因网络问题或其他特殊原因,导致无法登录使用WPS时,可根据以下步骤开启离线兼容模式,开启此模式后,可在未登录的状态下,激活并使用…

反射探针.

一、在unity场景中如何添加反射探针? 可以先添加一个空对象,在空对象的上方添加反射探针组件(Reflection Probe) 反射探针的类型有:Baked、Custom、Realtime 其中“Baked”反射探针类型,可以将场景中的静态…

SecureCRT汉化版

目录 9.5.1版 8.1.4版 下载链接 SecureCRT 和 SecureFX 是由 VanDyke Software 开发的专业工具,分别专注于安全的终端仿真与文件传输。SecureCRT 提供高效的终端仿真和多协议支持,是网络管理和系统配置的首选工具;SecureFX 则致力于安全的…

回归预测 | MATLAB实现CNN-LSSVM卷积神经网络结合最小二乘支持向量机多输入单输出回归预测

回归预测 | MATLAB实现CNN-LSSVM卷积神经网络结合最小二乘支持向量机多输入单输出回归预测 目录 回归预测 | MATLAB实现CNN-LSSVM卷积神经网络结合最小二乘支持向量机多输入单输出回归预测预测效果基本介绍程序设计参考资料 预测效果 基本介绍 回归预测 | MATLAB实现CNN-LSSVM…

使用Vue的props进行组件传递校验时出现 Extraneous non-props attributes的解决方案

作者:CSDN-PleaSure乐事 欢迎大家阅读我的博客 希望大家喜欢 使用环境:WebStorm 目录 出现错误的情况 报错: 代码: 报错截图 原因分析 解决方案 方法一 方法二 出现错误的情况 以下是我遇到该错误时遇到的报错和代码&…

【知识】cuda检测GPU是否支持P2P通信及一些注意事项

转载请注明出处:小锋学长生活大爆炸[xfxuezhagn.cn] 如果本文帮助到了你,欢迎[点赞、收藏、关注]哦~ 代码流程 先检查所有GPU之间是否支持P2P通信;然后尝试启用GPU之间的P2P通信;再次检查所有GPU之间是否支持P2P通信。 test.cu&…

专栏二十三:Python读取和分析空间数据的经验杂谈

部分情况同样适合单细胞的分析结果 读取数据阶段 1.错误的library_id 包括sc和sq的两种读取方式,大同小异。 理论上有h5数据和spatial文件夹就可以读取成功,并且自动赋予和文件名一样的library_id,例如 slide sq.read.visium("/ho…

《软件设计的哲学》阅读摘要之设计原则

《软件设计的哲学》(A Philosophy of Software Design)是一本在软件架构与设计领域颇具影响力的书籍,作者 John Ousterhout 在书中分享了诸多深刻且实用的软件设计理念。书中列举的这些设计原则,汇聚了作者丰富的实战经验与深邃的…

Centos7.9安装openldap+phpldapadmin+grafana配置LDAP登录最详细步骤 亲测100%能行

一、部署LDAP 1、安装LDAP yum install -y openldap-servers openldap-clients openldap openldap-devel compat-openldap openldap-servers-sql systemctl start slapd systemctl enable slapd2、创建第一个管理账号密码(设置为ldapadmin) slappass…

【MySQL基础篇】多表查询(隐式/显式内连接、左/右外连接、自连接查询、联合查询、标量/列/行/表子查询)

Hiヽ(゜▽゜ )-欢迎来到蓝染Aizen的CSDN博客~ 🔥 博客主页: 【✨蓝染 の Blog😘】 💖感谢大家点赞👍 收藏⭐ 评论✍ 文章目录 MySQL基础篇-多表查询一、多表关系1. 一对多2. 多对多3. 一对一 二、多表查询…

【踩坑记录】C编程变量未初始化导致的程序异常

1、在编程的时候养成良好的习惯,定义变量以后记得给变量初始化,不然可能会产生一些意想不到的Bug。 2、比如下面的例子,如果定义的变量没有被初始化就有可能是一个随机值。如果代码少还好,很容易排查出来。但如果是一个比较大的项…

如何查看pad的console输出,以便我们更好的进行调试,查看并了解实际可能的问题。

1、以下是baidu AI回复: 2、说明: 1)如果小伙伴们经常做android开发的话,这个不陌生,因为调试都是要开启这个开发者模式。并启用USB调试模式。 2)需要连上USB线,有的时候会忘记,然…

c++ [spdlog 配置与使用]

一、 下载spdlog https://codeload.github.com/gabime/spdlog/zip/refs/heads/v1.x spdlog链接 二、配置工程编译,和eigen库类似spdlog无需单独编译 拷贝到工程目录下 配置目录 稍微封装一下符合qDebug() 使用习惯 /* ** File name: LogSystem.h ** Auth…

leetcode-80.删除有序数组的重复项II-day12

总结:不必过于死磕一道题目,二十分钟没做出来就可参考题解

ES已死,文本检索永生

长期以来,混合查询(Hybrid Search)一直是提升 RAG(Retrieval-Augmented Generation)搜索质量的重要手段。尽管基于密集向量(Dense Embedding)的搜索技术随着模型规模和预训练数据集的不断扩展&a…

【Web】2024“国城杯”网络安全挑战大赛决赛题解(全)

最近在忙联通的安全准入测试,很少有时间看CTF了,今晚抽点时间回顾下上周线下的题(期末还没开始复习😢) 感觉做渗透测试一半的时间在和甲方掰扯&水垃圾洞,没啥惊喜感,还是CTF有意思 目录 Mountain ez_zhuawa 图…

VS2022 中的 /MT /MTd /MD /MDd 选项

我们有时编译时,需要配置这个 运行库,指定C/C++运行时库的链接方式。 如下图 那么这些选项的含义是什么? /MT:静态链接多线程库 /MT选项代表“Multi-threaded Static”,即多线程静态库。选择此选项时,编译器会从运行时库中选择多线程静态连接库来解释程序中的代码,…

前端常用算法集合

使用前介绍 不借助临时变量,交换整数 加减乘除法 注意:如果是浮点数,对于加减乘除法需要注意浮点数的精度丢失问题。 对象法 数组法 数组去重 方法1(filter,推荐使用) 方法2(新数组法&#xff…

保护模式基本概念

CPU 架构 RISC(Reduced Instruction Set Computer) 中文即"精简指令集计算机”。RISC构架的指令格式和长度通常是固定的(如ARM是32位的指令)、且指令和寻址方式少而简单、大多数指令在一个周期内就可以执行完毕 CISC&…

62.基于SpringBoot + Vue实现的前后端分离-驾校预约学习系统(项目+论文)

项目介绍 伴随着信息技术与互联网技术的不断发展,人们进到了一个新的信息化时代,传统管理技术性没法高效率、容易地管理信息内容。为了实现时代的发展必须,提升管理高效率,各种各样管理管理体系应时而生,各个领域陆续进…