9.CSS | “百变”图片秀 mask

作者: smilewalker | 来源:发表于2016-12-12 17:24 被阅读118次

“mask-image”看着“图片”:“你想变啊!图片,你要是想变的话你就来找我嘛,你不找我怎么知道你想变呢?固然你不太懂跟我怎么相处,然则你照旧得找我,我会带你的嘛,不相处你说你想变我不给你变,你不想变我也不给你变,要讲沟通嘛!你想改头换面就来找我,我肯定给你想要的诶,你是真的想整型吧?”。
——题记,改编源自《大话西游之仙履奇缘》

正文

我们在写前端样式的时候,css中实现不规则的图片可以利用border,或者clip-path(之前文章介绍过),今天来说说另一种方法,也是比较简单的,可以实现各种奇葩形状,秀各种百变图片,照例先上张效果图:

效果图.png

这个css可以怎么实现,之前的“我”说“clip-path”,本文的“我”当然说“mask-image”。mask-image,也就是遮罩图片的意思,它的作用相当于利用PS的alpha通道。一张原图,一张需要显示的区域图,两个结合在一起,就显示为“区域图形状的原图”。且看:

原图 frame.png,非JPG格式

然后使用mask-image属性,读取遮罩图片透明信息,应用到元素图片上,如 -webkit-mask-image: url(../images/frame.png);

mask-image结合图

一行代码,一张图片,我们就可以看到效果图了,这样够了么?当然不够。有时候在iphone7显示会有点问题,可能会导致重复性,保险起见,最好设置mask-size: 宽度 高度 及mask-repeat: no-repeat,这个跟background很相似,同样可以简写。
然后到这里完了么?点点头:完了。反问:真的完了?眼尖的人可能发现,好像跟效果图不太一样,呀,少了边框。这个边框怎么处理,我们换个思路就可以解决了,平时常用的一个方法,外面套个标签,设置下background,外级图片如下:

边框.png

over,附上最终代码:

/*html*/
<div class="pic-frame">
    <div class="pic"></div>
</div>

/*css*/
.pic-frame {
    width: 564px;
    height: 732px;
    margin: auto;
    background-image: url(../images/frame3.png);
    background-repeat: no-repeat;
    background-size: contain;
}
.pic {
    width: 564px;
    height: 732px;
    background: url(../images/pic.jpg) no-repeat center;
    background-size: cover;
    /*background-image: url(../images/pic.jpg);
    background-repeat: no-repeat;
    background-size: cover;
    background-position: center;*/
    -webkit-mask: url(../images/frame2.png) no-repeat;
    -webkit-mask-size: 564px 732px ;
/*  -webkit-mask-size: 564px 732px ;
    -webkit-mask-image: url(../images/frame2.png);
    -webkit-mask-repeat: no-repeat;*/
}

效果实现,不过这个属性还没有写进w3c里,webkit内核可以使用,基本包括了移动端,具体也可看MDN的介绍。个人觉得颇有意思的属性,来实现各种奇葩形状~

相关文章

  • 9.CSS | “百变”图片秀 mask

    “mask-image”看着“图片”:“你想变啊!图片,你要是想变的话你就来找我嘛,你不找我怎么知道你想变呢?固然...

  • 原生JS监听窗口缩放

    目录 把图片 Mask1 替换成 Mask2 更改标签样式 实例:当窗口小于450的时候把图片Mask1替换成Ma...

  • layer的mask遮罩 使用

    mask 实例一:利用mask 实现 图片圆角 定义分类 UIView + Circle 使用: 实例二:放大效果...

  • js 放大镜效果

    思路:鼠标经过,显示/隐藏mask和rightBox图片当鼠标在盒子中移动的时候,mask和鼠标一起移动当mask...

  • 潘玮柏胆子可真大,这操作看得我捏了把汗!

    大家最近看《百变达人秀》了吗?我作为潘玮柏的粉丝,盼星星盼月亮,终于盼到这个节目开播了!从当初看《百变达人秀》的节...

  • 6.CSS | “百变”图片秀 clip-path

    “我就係風魔萬千前端開發,改造web風氣,刺激圖片市場,提高代碼內涵,玉樹臨風,風度翩翩的css專家之一,我個名叫...

  • 如何用美图秀秀进行修图

    首先打开手机美图秀秀,找到【人像美容】按 选择一张自己要修图的图片 先换个滤镜让图片提亮变的美观 开始️️美颜➕磨...

  • scrollImage,拖动循环图片

    /*** 图片滑动 新建Image重命名为ScrollPanel+ScrollRect组件,+Mask组件,Scr...

  • css mask实现图片重叠,图片切角

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

  • css 遮罩效果、文章分栏

    mask 遮罩 上面代码的效果:大图片demo4.jpg作为背景图片(水墨画),tree_clear.png(一棵...

网友评论

    本文标题:9.CSS | “百变”图片秀 mask

    本文链接:https://www.haomeiwen.com/subject/xlcumttx.html