css常见效果——棱形图片

难题

在视觉设计中,把图片裁切为棱形是一种常见的手段,这里我们需要实现一下效果

在这里插入图片描述
有些同学可能简单的认为,将container旋转45deg就ok了,但是你们想过没有,容器旋转了45deg,图片也会跟着旋转45deg;又有同学说,那我把图片再旋转-45deg,不就行了吗,但是真的可以实现吗?
错误的代码:

  .pic {
            width: 200px;
            transform: rotate(45deg);
            overflow: hidden;
            margin: 100px auto;
        }

        .pic > img {
            max-width: 200px;
            height: 200px;
            transform: rotate(-45deg);        
        }

错误的效果:

在这里插入图片描述
所以,不是那么简单的。
我们来思考一个问题,那就是我们设置了overflow: hidden将图片旋转-45deg之外的部分裁剪掉了,那么图片的长度就不是那么长了,我们就需要将图片的长度恢复到多大才能填充到图片那么大呢?
相信不少同学都开始算数学,告诉你们其实需要将图片放大1.414倍(根号二),其实这是一个简单的数学问题,具体的细节就需要各位画个草图解答。
接下来我们只需要将图片变为原来的1.414倍就可以了

  .pic > img {
            max-width: 200px;
            height: 200px;
            /* 将图片大小变为原来的1.414倍撑满整个container */
            transform: rotate(-45deg) scale(1.414);
        }

效果图如下:
在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值