CSS内联SVG滤镜:一种强大的图像处理技巧
Stefan Judis 的一篇“今天我学到了”(TIL)文章解释了如何在 CSS 中内联 SVG 滤镜。CSS 的 filter
属性支持一些内置函数,例如 grayscale(100%)
等。但它也可以指向由 SVG 定义的滤镜。你可以使用 filter: url(#my-custom-filter)
,其中滤镜定义在内联的 <svg></svg>
元素中,作为 <filter></filter>
元素的一部分。这种方法需要引用 HTML,略显笨拙。滤镜是一种视觉效果,将其整合到 CSS 中更符合逻辑。示例如下:
img { filter: url('data:image/svg xml,\ <svg xmlns="http://www.w3.org/2000/svg">\ <filter color-interpolation-filters="linearRGB" filterunits="objectBoundingBox" height="140%" primitiveunits="userSpaceOnUse" width="140%" x="-20%" y="-20%">\ <feturbulence basefrequency="0.01 0.01" numoctaves="1" result="turbulence" seed="1" stitchtiles="noStitch" type="turbulence"></feturbulence>\ <fedisplacementmap in="SourceGraphic" in2="turbulence" result="displacementMap" scale="20" xchannelselector="G" ychannelselector="A"></fedisplacementmap>\ </filter>\ </svg>#waves') ; }
这是 Stefan 的湍流滤镜示例,这是 CSS 单独无法实现的。
请注意大量的反斜杠 (\
)。这让人不禁希望 CSS 也能支持模板字面量。同时,也让人担心代码格式化工具或压缩工具是否会处理这些反斜杠,但实际上,这可能不会造成问题。
值得庆幸的是,SVG 代码保持了良好的可读性和可编辑性。因此,你可以直接在 CSS 中编辑 SVG 滤镜并进行实验。
这同样适用于 Yoksel 的工具。其用于双色和三色图像的编辑器非常酷炫。你也可以将这些滤镜直接应用到 CSS 中。
然而,内联到 CSS 中的 SVG 不仅仅限于滤镜。你也可以将 SVG 绘图直接嵌入 CSS。
这种方法在现代浏览器(除了 Safari)中都能正常工作。但在不久的过去,我们需要对 SVG 中的特殊字符进行更多编码才能使其生效(尽管不需要使用 base64 编码)。Yoskel 的 URL 编码器就是为此而设计的,但我不知道现在是否还有必要。
以上是CSS内的SVG的详细内容。更多信息请关注PHP中文网其他相关文章!

文章讨论了CSS FlexBox,这是一种布局方法,用于有效地对齐和分布响应设计中的空间。它说明了FlexBox用法,将其与CSS网格进行了比较,并详细浏览了浏览器支持。

本文讨论了使用CSS创建响应网站的技术,包括视口元标签,灵活的网格,流体媒体,媒体查询和相对单元。它还涵盖了使用CSS网格和Flexbox一起使用,并推荐CSS框架

本文讨论了CSS盒装属性,该属性控制了元素维度的计算方式。它解释了诸如Content-Box,Border-Box和Padding-Box之类的值,以及它们对布局设计和形式对齐的影响。


热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

Video Face Swap
使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热门文章

热工具

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)

Dreamweaver CS6
视觉化网页开发工具

记事本++7.3.1
好用且免费的代码编辑器

Atom编辑器mac版下载
最流行的的开源编辑器

VSCode Windows 64位 下载
微软推出的免费、功能强大的一款IDE编辑器