gpt4 book ai didi

css - 在网页上裁剪为三 Angular 形的图像

转载 作者:行者123 更新时间:2023-11-28 13:15:28 25 4
gpt4 key购买 nike

这是一个真正的 css 挑战,我认为这是不可能的:

我制作了一些白色的 css 三 Angular 形。当您将鼠标悬停在三 Angular 形上时,白色三 Angular 形应该会在同样裁剪成三 Angular 形的照片中发生变化。我为它制作了一个 jsfiddle:

fiddleLink

感谢任何帮助

最佳答案

您可以使用 svg 来实现此效果:http://jsfiddle.net/xTd6Y/4/

<div id="image-wrapper">
<svg id="svg-1" class="clip-svg">
<rect class='svg-background' width="300" height="300" fill="#ffffff" />
<image id="img-1" class='svg-image' width="300" height="300" xlink:href="http://lorempixel.com/300/300" />
</svg>
<svg id="svg-2" class="clip-svg">
<rect class='svg-background' width="300" height="300" fill="#ffffff" />
<image id="img-2" class='svg-image' width="300" height="300" xlink:href="http://lorempixel.com/300/301" />
</svg>
<svg id="svg-3" class="clip-svg">
<rect class='svg-background' width="300" height="300" fill="#ffffff" />
<image id="img-3" class='svg-image' width="300" height="300" xlink:href="http://lorempixel.com/300/302" />
</svg>
</div>
<svg id="svg-defs">
<defs>
<clipPath id="clip-triangle">
<polygon points="0, 200 100, 0 200, 200"/>
</clipPath>
</defs>
</svg>

CSS

body {
background-color: #e0e0e0;
}
#image-wrapper {
position: relative;
}
.svg-background, .svg-image {
clip-path: url(#clip-triangle);
}
.svg-image {
visibility: hidden;
}
.clip-svg .svg-image:hover {
visibility: inherit;
}

/* size and positioning */
svg.clip-svg {
position: absolute;
height: 250px;
width: 250px;
}
#svg-1 {
top: 110px;
left: 50px;
}
#svg-2 {
top: 40px;
left: 140px;
}
#svg-3 {
top: 160px;
left: 250px;
}

剪切路径在svg#svg-defs中定义,可以任意设置。

图像属性对 js 和 css 可见/可访问。您可以将剪切路径应用于任何带有 css 的 html 元素

myElement {
clip-path: url(#clip-triangle);
}

但据我所知,这仅在 firefox 上可靠。

注意:解决方案仅在 FF 和 chrome 上测试

注意:将 :hover 从 svg 移动到嵌入图像的小编辑,以纠正悬停在剪辑区域外触发的问题

关于css - 在网页上裁剪为三 Angular 形的图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17638356/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com