11、菱形图片

1、基于变形的方案

对容器进行变形,再对图片进行反向变形。

<div id="a">
    ![](img.jpg)
</div>

#a{
    margin: 300px  auto;
    border: 1px dashed #333;
    width: 160px;
    overflow: hidden;
    transform:rotate(45deg);
}
#a>img{
    max-width: 100%;
    transform:rotate(-45deg);
}

上下左右会有空白,是因为图片的宽度为100%,会等于容器的宽度,变为菱形后图片的宽度应为容器对角线的长度。勾股定理求得约等于142%(向上取整,向下取整还是会出现空白,向上取整才会超出)。使用scale()进行放大。

#a>img{
    max-width: 100%;
    transform:rotate(-45deg) scale(1.42);
}

2、使用clip-path方案(此属性浏览器支持程度不高)

clip-path允许我们制定一个剪裁路径,将元素剪裁成我们需要的样子,理论上可以剪裁成任何形状。

img{
    clip-path: polygon(50% 0,100% 50%,50% 100%,0 50%);
}

clip-path属性还支持渐变动画

img{
    clip-path: polygon(50% 0,100% 50%,50% 100%,0 50%);
    transition: .5s clip-path;
}
img:hover{
    clip-path: polygon(0 0,100% 0,100% 100%,0 100%);
}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 选择qi:是表达式 标签选择器 类选择器 属性选择器 继承属性: color,font,text-align,li...
    wzhiq896阅读 5,851评论 0 2
  • 选择qi:是表达式 标签选择器 类选择器 属性选择器 继承属性: color,font,text-align,li...
    love2013阅读 6,857评论 0 11
  • 问答题47 /72 常见浏览器兼容性问题与解决方案? 参考答案 (1)浏览器兼容问题一:不同浏览器的标签默认的外补...
    _Yfling阅读 14,687评论 1 92
  • 转载自Keegan小钢并标明原文链接:http://keeganlee.me/post/android/20150...
    坚持编程_lyz阅读 4,879评论 0 1
  • 今天学习论语第二十二则 原文 孟武伯问孝。子曰:“父母唯其疾之忧。” 译文 孟武伯请教什么是孝。孔子说:“让父母只...
    让文字温暖心灵阅读 2,600评论 0 0