CSS 一行代码实现头像与国旗的融合


Posted in HTML / CSS onOctober 24, 2021

到国庆了,大家都急着给祖国母亲庆生。

每年每到此时,微信朋友圈就会流行起给头像装饰上国旗,而今年又流行这款:

CSS 一行代码实现头像与国旗的融合

emm,很不错。

那么,将一张国旗图片与我们的头像,快速得到想要的头像,使用 CSS 如何简单实现呢?

有人认为是改变其中一张图的透明度,实际上不是的。仔细观察合成后的头像,最左边的基本上只能看到红旗看不到原本的头像内容,而最右边基本只能看到头像而不再显示红旗的红色背景。

在 CSS 中使用 mask 遮罩,一行代码实现头像与国旗的融合

在 CSS 中,我们仅仅需要将两张图片叠加在一起,对上层的图片使用 mask 属性,一行代码即可实现该效果。

div {
    position: relative;
    margin: auto;
    width: 200px;
    height: 200px;
    // 正常头像
    background: url(image1) no-repeat;
    background-size: cover;
}
.div::after {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    bottom: 0;
    right: 0;
    // 国旗图片
    background: url(image2) no-repeat;
    background-size: cover;
    mask: linear-gradient(110deg, #000 10%, transparent 70%, transparent);
}

在上面的代码中,我们利用了 div 和它的一个伪元素 div::after,实现了将头像和国旗叠加在一起。

只需要在 div::after 中,设置一层 mask 遮罩 mask: linear-gradient(110deg, #000 10%, transparent 70%, transparent),我们就可以实现头像与国旗的巧妙叠:

CSS 一行代码实现头像与国旗的融合

简单介绍下 Mask

在 CSS 中,mask 属性允许使用者通过遮罩或者裁切特定区域的图片的方式来隐藏一个元素的部分或者全部可见区域。

最基本,使用 mask 的方式是借助图片,类似这样:

{
    /* Image values */
    mask: url(mask.png);                       /* 使用位图来做遮罩 */
    mask: url(masks.svg#star);                 /* 使用 SVG 图形中的形状来做遮罩 */
}

当然,借助图片的方式其实比较繁琐,因为我们首先还得准备相应的图片素材,除了图片,mask 还可以接受一个类似 background 的参数,也就是渐变。

类似如下使用方法:

{
    mask: linear-gradient(#000, transparent)                      /* 使用渐变来做遮罩 */
}

下面这样一张图片,叠加上一个从透明到黑色的渐变,

{
    background: url(image.png) ;
    mask: linear-gradient(90deg, transparent, #fff);
}

CSS 一行代码实现头像与国旗的融合

应用了 mask 之后,就会变成这样:

CSS 一行代码实现头像与国旗的融合

这个 DEMO,可以先简单了解到 mask 的基本用法。

这里得到了使用 mask 最重要结论:图片与 mask 生成的渐变的 transparent 的重叠部分,将会变得透明。

值得注意的是,上面的渐变使用的是 linear-gradient(90deg, transparent, #fff),这里的 #fff 纯色部分其实换成任意颜色都可以,不影响效果。

CodePen Demo -- 使用 MASK 的基本使用

利用 Mask 的其他一些小技巧

当然,掌握了 Mask 之后,可以玩出非常多花来。

譬如上述的国旗头像,我们可以配合 CSS @property,实现一些有意思的 hover 效果:

CSS 一行代码实现头像与国旗的融合

或者利用 mask 实现一些趣味转场效果:

CSS 一行代码实现头像与国旗的融合

甚至乎,弹幕网站的人物遮挡弹幕,都是利用 CSS mask 实现的:

CSS 一行代码实现头像与国旗的融合

如果你想深入了解 CSS MASK,不妨细细读一下这两篇文章:

奇妙的 CSS MASK

使用 mask 实现视频弹幕人物遮罩过滤

到此这篇关于CSS 一行代码实现头像与国旗的融合的文章就介绍到这了,更多相关CSS头像与国旗融合内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章,希望大家以后多多支持三水点靠木!

 
HTML / CSS 相关文章推荐
分享30个新鲜的CSS3打造的精美绚丽效果(附演示下载)
Dec 28 HTML / CSS
使用CSS3在触屏上为按钮实现激活效果
Sep 27 HTML / CSS
css3使网页、图片变成灰色兼容大多数浏览器
Jul 02 HTML / CSS
HTML5+CSS3实例 :canvas 模拟实现电子彩票刮刮乐代码
Dec 30 HTML / CSS
css3实现冲击波效果的示例代码
Jan 11 HTML / CSS
CSS3田字格列表的样式编写方法
Nov 22 HTML / CSS
css3的focus-within选择器的使用
May 11 HTML / CSS
html5+css3实现一款注册表单实例
Apr 17 HTML / CSS
HTML5 Canvas画线技巧——实现绘制一个像素宽的细线
Aug 02 HTML / CSS
HTML5和CSS3实例教程总结(推荐)
Jul 18 HTML / CSS
html5调用app分享功能示例(WebViewJavascriptBridge)
Mar 21 HTML / CSS
在CSS中映射鼠标位置并实现通过鼠标移动控制页面元素效果(实例代码)
Apr 22 HTML / CSS
如何利用 CSS Overview 面板重构优化你的网站
基于HTML十秒做出淘宝页面
css 边框添加四个角的实现代码
HTML基础详解(下)
Oct 16 #HTML / CSS
HTML基础详解(上)
Oct 16 #HTML / CSS
CSS基础详解
HTML5+CSS+JavaScript实现捉虫小游戏设计和实现
You might like
php开发工具之vs2005图解
2008/01/12 PHP
PHP读取ACCESS数据到MYSQL的代码
2011/05/11 PHP
Laravel 5 框架入门(二)构建 Pages 的管理功能
2015/04/09 PHP
两种php实现图片上传的方法
2016/01/22 PHP
Laravel如何实现适合Api的异常处理响应格式
2020/06/14 PHP
基于php解决json_encode中文UNICODE转码问题
2020/11/10 PHP
JQuery与Ajax常用代码实现对比
2009/10/03 Javascript
基于jQuery的自动完成插件
2011/02/03 Javascript
真正的JQuery.ajax传递中文参数的解决方法
2011/05/28 Javascript
仅Firefox中链接A无法实现模拟点击以触发其默认行为
2011/07/31 Javascript
jQuery 2.0.3 源码分析之core(一)整体架构
2014/05/27 Javascript
javascript中的__defineGetter__和__defineSetter__介绍
2014/08/15 Javascript
jQuery前端开发35个小技巧
2016/05/24 Javascript
js获取所有checkbox的值的简单实例
2016/05/30 Javascript
js实现按钮控制带有停顿效果的图片滚动
2016/08/30 Javascript
js仿小米手机上下滑动效果
2017/02/05 Javascript
AngularJS 控制器 controller的详解
2017/10/17 Javascript
深入理解Angular4订阅(Subscribe)与取消
2017/11/22 Javascript
详解js正则表达式验证时间格式xxxx-xx-xx形式
2018/02/09 Javascript
vue移动端屏幕适配详解
2019/04/30 Javascript
浅谈python中的实例方法、类方法和静态方法
2017/02/17 Python
Python简单实现控制电脑的方法
2018/01/22 Python
Python安装lz4-0.10.1遇到的坑
2018/05/20 Python
python使用matplotlib模块绘制多条折线图、散点图
2020/04/26 Python
pycharm使用matplotlib.pyplot不显示图形的解决方法
2018/10/28 Python
python计算n的阶乘的方法代码
2019/10/25 Python
python中数据库like模糊查询方式
2020/03/02 Python
CSS3 2D模拟实现摩天轮旋转效果
2016/11/16 HTML / CSS
TripAdvisor斯洛伐克:阅读评论、比较价格和酒店预订
2018/04/25 全球购物
应届生文秘专业个人自荐信格式
2013/09/21 职场文书
大二法学专业职业生涯规划范文
2014/02/12 职场文书
残疾人小组计划书
2014/04/27 职场文书
化学教育专业求职信
2014/07/08 职场文书
搞笑老公保证书
2015/02/26 职场文书
《初涉尘世》读后感3篇
2020/01/10 职场文书
Python捕获、播放和保存摄像头视频并提高视频清晰度和对比度
2022/04/14 Python