iis服务器助手广告广告
返回顶部
首页 > 资讯 > 精选 >怎么用纯CSS实现镂空效果
  • 878
分享到

怎么用纯CSS实现镂空效果

2023-06-08 07:06:39 878人浏览 薄情痞子
摘要

小编给大家分享一下怎么用纯CSS实现镂空效果,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!background-clip: text背景被裁剪为文字的前景色。第一次是在 CSS-Tricks 看到的这个用法: 在 CSS-

小编给大家分享一下怎么用纯CSS实现镂空效果,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!

background-clip: text

背景被裁剪为文字的前景色。第一次是在 CSS-Tricks 看到的这个用法: 在 CSS-Tricks 网站上,这个玩意用得到处都是。

这样,做简单的图片背景镂空效果便不再困难了。关键代码只有几行。

.wrapper {    background-image: url("/path/to/your/image");  background-clip: text;   color: transparent;    }

就这几行,视觉上会就会有大变化。前后对比:

怎么用纯CSS实现镂空效果

另外,这里有个比上面更实用的Demo

background-clip 既然是“background”家族的,那它天生和图片、渐变打的交道多。不过,我们做镂空总不会都是图片、渐变这种吧。如果我们想做视频、文字,甚至更复杂的 DOM 元素的镂空效果呢?

单刀直入: CSS mask 属性

这应该是最直接能想到的方法了。毕竟名字里就带个“mask”,谁能忽略呢?

CSS mask-* 系列属性是在 CSS Masking Module Level 1 中定义的。这个规范也定义了为很多人熟知的 clipclip-path 属性,换句话说,这个CSS 模块包括遮罩和剪裁两部分。

第一个例子

虽然是一个新的属性,但设置 mask 属性并不难。下面就是我们的第一个例子。

<div class="masked" />
.masked {  height: 100px;  width: 100px;  background: linear-gradient(red, orange, yellow, lightgreen, blue, purple, red);  mask: url("https://GitHub.githubassets.com/pinned-octocat.svg");}

就是下面的效果啦。

怎么用纯CSS实现镂空效果

上面的用法还是很简单的,我们指定了一个 mask 参数,它的值是一张 从GitHub盗的 SVG图片。于是多彩的渐变就被 裁剪 遮罩成了那只著名的猫。

mask-* 大家族

mask 属性实际上是诸多 mask-* 的缩写:

mask-imagemask-repeatmask-positionmask-clipmask-originmask-size-mask-typemask-compositemask-mode

有没有 background-* 的即视感?没错,里面的不少属性都是和 backGorund / border 一致的,而且它们的作用也是一致的,只不过 background-* 用在背景上,而 mask-* 用在遮罩层上而已&mdash;&mdash;用在背景上的奇技淫巧搬到 mask 的世界里还能接着用!比如实现这样的效果:

怎么用纯CSS实现镂空效果

.masked {  height: ;  width: ;  background: ;  mask-image: url(Https://github.githubassets.com/pinned-octocat.svg);  mask-size: 5em;  mask-position: center;  }

进一步控制遮罩效果

可能读者已经发现了, mask-* 家族里有几张生面孔。这也好理解: mask 这么强大的特性,完完全全地抄 background-* 岂不可惜了。

mask-mode

mask-mode 用来指定具体的遮罩方式。

mask-type CSS 属性设置 mask-image 被用于“亮度型”的遮罩还是“不透明度”型的遮罩。 mask-mode: alaph 表示使用不透明度(即alaph通道)作为 mask value, mask-mode: luminance 表示使用亮度值作为 mask value。

那,遮罩值 / mask value 又是什么?mask value 表示被遮罩的元素被遮罩的程度。mask value 越大,被遮罩区域会更偏向于显露,mask value 最大的时候,那个区域就完全不透明了。举个例子:

<div class="mode">ABCDEFG</div>
.mode {  height: 200px;  width: 300px;    mask-image: linear-gradient(to left, black, yellow);  mask-mode: luminance; }

怎么用纯CSS实现镂空效果

左边是遮罩图片,中间是 luminance 右边使用 alaph 。这里的图片是不透明的,所以将一个恒不透明的图片在 alaph 模式下作为遮罩,其结果是没有遮罩效果。但是图片是有亮度变化的,所以 luminance 下的被遮罩元素就呈现出透明度的变化了。

一般 luminance 模式慢一点点,因为每一个像素点的亮度值需要根据 RGB 三个通道的值计算出来。

mask-composite

指定当有多个遮罩图片叠加起来的时候,如何处理遮罩效果。一些属性值的效果依赖于 mask-image 的层级次序。

用MDN 提供的这个 CodePen 来感受一下

关于 mask 的知识就讲到这里,更具体更准确的说明还是 要到 MDN 看一看

混合模式

这应该是最为神奇的一种方法了。使用PS的时候,经常会看见“混合模式”这个词。还记得多年前我初次使用 Photoshop 的时候还很好奇“混合模式”是什么东西,顿时让我对 Photoshop 充满了敬畏之情。不过,当年的敬畏归敬畏,现在这里说的“混合模式”还是蛮好理解的。

所谓的“混合模式”,是指当一种当层重叠时计算像素最终颜色值的方法。每种混合模式接收前景颜色值和背景颜色值(分别为顶部颜色和底部颜色)作为输入,执行一些计算并输出最后要显示在屏幕上的颜色值。最终的可见的颜色是对层中的每个重叠像素执行混合模式计算所得的结果。 说白了,混合模式确定了把一层叠加到另一层上去会得到什么结果。

在 CSS 中,可以使用 mix-blend-mode 来指定混合模式。

你可能会问了,平时也没有用什么“混合模式”这种东西,所以 blend-mode 的默认值是 none 吗?可不是。其实,这种最常见的 上层把下层“遮住”了的情况也属于一种混合模式,叫 nORMal ,它本质上是一种只保留前景颜色值而完全抛弃背景颜色值的混合模式。

这里我们只讨论实现镂空效果用到的混合模式 &mdash;&mdash; screen 。这种混合模式有一个特性,前景层是黑色导致最终可见的颜色直接是背景层的颜色,前景层是白色导致最终可见的颜色直接是白色。

相信你已经搞不明白这和镂空有什么关系了,下面举个例子看一下。

现在,我们有一个 <video> ,以及一个“白底黑字”的Logo浮层。

怎么用纯CSS实现镂空效果

我们在浮层框上加上下面的 CSS:

.logo {        mix-blend-mode: screen;}

就变成了下面的样子:

怎么用纯CSS实现镂空效果 

去这个 Demo,看具体代码和效果

齿轮图标确实是变为镂空的了。不过,为什么呢?

先来明确一件事:把浮层置于视频之上,浮层是“前景”,视频是“背景”。先来看浮层的白色部分,因为把白色置于任何颜色之上都得到白色,所以白色部分被保留;而因为黑色置于任何颜色之上都得到下层的颜色,所以黑色部分呈现镂空效果。

但是这样的实现比较 Hack,因为这里只使用了黑白两色,如果使用其它的颜色作为浮层的 background-color ,得到的就不会像是镂空的效果了,这时还是得请上面的 mask 家族出场。不过,单单对于白底的情况, mix-blend-mode 不失为一个可行的解法。

看完了这篇文章,相信你对“怎么用纯CSS实现镂空效果”有了一定的了解,如果想了解更多相关知识,欢迎关注编程网精选频道,感谢各位的阅读!

--结束END--

本文标题: 怎么用纯CSS实现镂空效果

本文链接: https://www.lsjlt.com/news/252530.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 怎么用纯CSS实现镂空效果
    小编给大家分享一下怎么用纯CSS实现镂空效果,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!background-clip: text背景被裁剪为文字的前景色。第一次是在 CSS-Tricks 看到的这个用法: 在 CSS-...
    99+
    2023-06-08
  • CSS怎样实现镂空效果
    这篇文章主要介绍了CSS怎样实现镂空效果,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。效果原理主要利用css渐变实现一些不需要切图的背景镂空优惠券样式.mixinsTicke...
    99+
    2023-06-08
  • 怎么使用CSS实现中间镂空的图片遮罩效果
    这篇文章主要讲解了“怎么使用CSS实现中间镂空的图片遮罩效果”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“怎么使用CSS实现中间镂空的图片遮罩效果”吧!中间...
    99+
    2024-04-02
  • HTML怎么实现镂空遮盖层效果
    本文小编为大家详细介绍“HTML怎么实现镂空遮盖层效果”,内容详细,步骤清晰,细节处理妥当,希望这篇“HTML怎么实现镂空遮盖层效果”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。...
    99+
    2024-04-02
  • 如何通过纯CSS实现网页的平滑滚动背景镂空效果
    随着互联网技术的不断发展,网页的设计也日趋多样化和复杂化。一个好看的网页,往往需要注重细节和创新。其中,平滑滚动背景镂空效果是近年来越来越受欢迎的设计元素之一。这种效果可以使网页看起来更加生动、有趣,并且能够引起用户的注意和兴趣。在本文中,...
    99+
    2023-10-21
    CSS 平滑滚动 镂空效果
  • 怎么用纯CSS实现菱形loader效果
    这篇文章主要为大家展示了“怎么用纯CSS实现菱形loader效果”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“怎么用纯CSS实现菱形loader效果”这篇文章吧...
    99+
    2024-04-02
  • 纯CSS怎么实现柱形图效果
    这篇文章主要介绍纯CSS怎么实现柱形图效果,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!   <ulclass="chart">   <li...
    99+
    2024-04-02
  • 纯CSS怎么实现radio和checkbox效果
    这篇文章将为大家详细讲解有关纯CSS怎么实现radio和checkbox效果,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。radio-and-checkbox纯CSS实现radio和checkbox效果r...
    99+
    2023-06-08
  • css3如何实现遮罩层镂空效果
    这篇文章将为大家详细讲解有关css3如何实现遮罩层镂空效果,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。先看看效果【 方法一:截图模拟实现 】原理:先截一张相同位置的图片,创建一个遮罩层,然后把图片定位在...
    99+
    2023-06-08
  • 怎么使用纯CSS实现手风琴效果
    这篇文章将为大家详细讲解有关怎么使用纯CSS实现手风琴效果,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。实现原理:主要是利用CSS的hover属性,鼠标未移上去时,所有的li共享整个容器的宽度。当鼠标移上...
    99+
    2023-06-08
  • 怎么用纯CSS实现热气球的效果
    小编给大家分享一下怎么用纯CSS实现热气球的效果,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!     代...
    99+
    2024-04-02
  • CSS如何实现背景镂空
    这篇文章主要介绍“CSS如何实现背景镂空”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“CSS如何实现背景镂空”文章能帮助大家解决问题。背景镂空.header {    posit...
    99+
    2023-07-05
  • 如何使用CSS制作镂空效果的图片
    在网页设计中,如何制作出独特、有吸引力的效果是一个不断探索的问题。其中,镂空效果是一种常见而又常用的技巧之一。通过使用CSS,我们可以实现为图片添加镂空的效果,从而提升页面的美观程度和吸引力。下面,我们将详细介绍如何使用CSS制作镂空效果的...
    99+
    2023-10-21
    CSS 图片 镂空效果
  • ps怎么制作镂空效果海报
    本篇内容主要讲解“ps怎么制作镂空效果海报”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“ps怎么制作镂空效果海报”吧!创建新图层,使用椭圆工具按住Shift键绘制一个正圆填充色。使用矩形工具绘制...
    99+
    2023-06-20
  • 纯CSS怎么实现波浪移动效果
    这篇文章给大家分享的是有关纯CSS怎么实现波浪移动效果的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。分析波浪效果上面是作者完成的波浪效果的其中一种(不会做 gif,就用多张图片拼贴在一起代替吧),它有两个波峰,这...
    99+
    2023-06-08
  • 怎么用纯CSS实现一把剪刀的效果
    这篇文章主要为大家展示了“怎么用纯CSS实现一把剪刀的效果”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“怎么用纯CSS实现一把剪刀的效果”这篇文章吧。   代...
    99+
    2024-04-02
  • 怎么用纯CSS实现蚊香燃烧的效果
    小编给大家分享一下怎么用纯CSS实现蚊香燃烧的效果,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!     代码解读     定义dom,容器中包...
    99+
    2024-04-02
  • 纯CSS怎么实现按钮的悬停效果
    这篇文章主要为大家展示了纯CSS怎么实现按钮的悬停效果,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带大家一起来研究并学习一下“纯CSS怎么实现按钮的悬停效果”这篇文章吧。   代码解读 ...
    99+
    2024-04-02
  • 怎么使用纯CSS实现书籍3D翻页效果
    这篇文章主要介绍了怎么使用纯CSS实现书籍3D翻页效果,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。使用纯CSS实现书籍3D翻页效果,代码如下:<!doctype&nb...
    99+
    2023-06-08
  • 然后使用纯CSS实现的Loading效果
    这篇文章主要为大家展示了“然后使用纯CSS实现的Loading效果”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“然后使用纯CSS实现的Loading效果”这篇文...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作