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 相关文章推荐
CSS3转换功能transform主要属性值分析及实现分享
May 06 HTML / CSS
html5 css3 动态气泡按钮实例演示
Dec 02 HTML / CSS
css3 给页面加个半圆形导航条主要利用旋转和倾斜样式
Feb 10 HTML / CSS
CSS3实现swap交换动画
Jan 19 HTML / CSS
可自定义箭头样式的CSS3气泡提示框
Mar 16 HTML / CSS
详解css position 5种不同的值的用法
Jul 30 HTML / CSS
HTML5全屏(Fullscreen)API详细介绍
Apr 24 HTML / CSS
检测浏览器对HTML5和CSS3支持度的方法
Jun 25 HTML / CSS
H5新属性audio音频和video视频的控制详解(推荐)
Dec 09 HTML / CSS
HTML5利用约束验证API来检查表单的输入数据的代码实例
Dec 20 HTML / CSS
使用CSS3实现按钮悬停闪烁动态特效代码
Aug 30 HTML / CSS
如何利用 CSS Overview 面板重构优化你的网站
基于HTML十秒做出淘宝页面
css 边框添加四个角的实现代码
HTML基础详解(下)
Oct 16 #HTML / CSS
HTML基础详解(上)
Oct 16 #HTML / CSS
CSS基础详解
HTML5+CSS+JavaScript实现捉虫小游戏设计和实现
You might like
提高PHP编程效率 引入缓存机制提升性能
2010/02/15 PHP
PHP5.2中PDO的简单使用方法
2016/03/25 PHP
什么是PHP文件?如何打开PHP文件?
2017/06/27 PHP
for 循环性能比较 提高for循环的效率
2009/03/19 Javascript
用JS写的一个TableView控件代码
2010/01/23 Javascript
仿微博字符限制效果实现代码
2012/04/20 Javascript
jQuery根据纬度经度查看地图处理程序
2013/05/08 Javascript
原生js实现改变随意改变div属性style的名称和值的结果
2013/09/26 Javascript
JavaScript DOM 编程艺术(第2版)读书笔记(JavaScript的最佳实践)
2013/10/01 Javascript
JS简单实现文件上传实例代码(无需插件)
2013/11/15 Javascript
javascript如何定义对象数组
2016/06/07 Javascript
用iframe实现不刷新整个页面上传图片的实例
2016/11/18 Javascript
JS操作xml对象转换为Json对象示例
2017/03/25 Javascript
Vue.js实现模拟微信朋友圈开发demo
2017/04/20 Javascript
ES6新特性一: let和const命令详解
2017/04/20 Javascript
javascript 开发之百度地图使用到的js函数整理
2017/05/19 Javascript
vue使用自定义icon图标的方法
2018/05/14 Javascript
通过jquery的ajax请求本地的json文件方法
2018/08/08 jQuery
浅析js中mvvm模式实现的原理
2018/10/06 Javascript
详解Vue中Axios封装API接口的思路及方法
2020/10/10 Javascript
利用vue3+ts实现管理后台(增删改查)
2020/10/30 Javascript
Python实现拷贝多个文件到同一目录的方法
2016/09/19 Python
对python3中pathlib库的Path类的使用详解
2018/10/14 Python
python读出当前时间精度到秒的代码
2019/07/05 Python
python使用梯度下降算法实现一个多线性回归
2020/03/24 Python
基于Python的接口自动化读写excel文件的方法
2021/01/15 Python
德国PC硬件网站:CASEKING
2016/10/20 全球购物
新秀丽官方旗舰店:Samsonite拉杆箱、双肩包、皮具
2018/03/05 全球购物
机械制造专业个人的自我评价
2013/12/28 职场文书
工作人员思想汇报
2014/01/09 职场文书
婚纱摄影师求职信范文
2014/04/17 职场文书
租房协议书范例
2014/10/14 职场文书
旅游安全责任协议书
2016/03/22 职场文书
OpenCV-Python实现轮廓拟合
2021/06/08 Python
在 HTML 页面中使用 React的场景分析
2022/01/18 Javascript
Python利用Turtle绘制哆啦A梦和小猪佩奇
2022/04/04 Python