纯css实现图片倾斜堆叠效果

场景

今天群友提问实现一个堆叠效果,ui如p1,刚好无聊,自己写了下。效果如p2。当然细节都没有调,仅提供一个堆叠效果的思路。

ui的:

 

 demo实现的:

 

 实现

大致思路是先将图片裁成梯形,后使用transform进行旋转。起初试过矩形,效果并不理想。

1、将图片以梯形形状展示

主要使用了遮罩图的概念。效果如下:

 

代码如下:

<div class="test" />

<style>
.test{
   width: 100px;
   height: 100px;
   background-image: url('../../assets/IMG_4194.JPG');
   background-size: contain;
   background-repeat: no-repeat;
   -webkit-mask-image: url('../../assets/mask.png');
}
</style>

 主要用到的是mask-image这个属性,具体的遮罩图我也贴一下,什么颜色都可以,这里为了方便显示我着色了一下。这个梯形是我用ps自己画的,很简单,导出png就行了。尺寸和css里的保持一致100px*100px的。

 2、旋转

其实也是补充一下1中的css样式,完整的如下:

  .test {
    width: 100px;
    height: 100px;
    background-image: url('../../assets/IMG_4194.JPG');
    background-size: contain;
    background-repeat: no-repeat;
    -webkit-mask-image: url('../../assets/mask.png');
    position: relative;
    z-index: 10;
    transform: rotateX(70deg);
  }

 用relative主要是为了让它叠在顶部,为了方便设置z-index。下面的图可以类似步骤,设置不同的z-index。就可以实现堆叠的效果了。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值