gpt4 book ai didi

javascript - 使用 CSS 对 Angular 拆分/合并 div/图像

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

我正在努力实现如下目标:

enter image description here

对 Angular 线分割应该从右上角到左下角,以一个精确的 Angular 使两边完全等比例。

我在网上找到了一个示例,但它是针对宽幅图像的,在尝试修改它以适应我的 1:1 比例目的时,我似乎无法让底部图像正确排列,但顶部图像工作正常。

对 Angular 线分割也偏离了中心,黄色背景在那里显示应该由下图填充的区域。下图应与上图大小相同,只是显示下半部分而不是上半部分。

我创建了一个 fiddle 来演示:https://jsfiddle.net/uxuv17at/2/

HTML

<div class="split-image-container">
<div class="split-image-bottom">
<img src="https://merkd.com/usr/members/icons/thumb.php?src=1435366066.9.png&w=300" alt="Just Another Clan" title="Just Another Clan" />
</div>
<img src="https://merkd.com/usr/teams/icons/thumb.php?src=1441676463.1.jpg&w=300" alt="ExtraordinaryKillers" title="ExtraordinaryKillers" />
</div>

CSS

.split-image-container{
height: 300px;
width: 300px;
overflow: hidden;
position: relative;
border: 1px solid black;
padding: 0;
background-color: green;
}
/*Rotate this div and position it to cut the rectangle in half*/
.split-image-bottom{
transform: rotate(315deg);
position: absolute;
top: 85px;
left: 70px;
overflow: hidden;
height: 350px;
width: 350px;
background: yellow;
}
/*Apply exact opposite amount of rotation to the .image2 class so image appears straight */
/*Also align it with the top of the rectangle*/
.split-image-bottom img{
transform: rotate(45deg);
position: absolute;
top: -50px;
left: 15px;
}

最佳答案

仅 CSS

使用 clip-path 的纯 CSS 解决方案属性(property)。 Browser support虽然很糟糕。

.split-image-container{
height: 300px;
width: 300px;
position: relative;
}

img{
width:100%;
height:100%;
position:absolute;
}

.clip{
-webkit-clip-path: polygon(100% 0%, 0% 100%, 100% 100%);
clip-path: polygon(100% 0%, 0% 100%, 100% 100%);
}
<div class="split-image-container">
<img src="https://merkd.com/usr/members/icons/thumb.php?src=1435366066.9.png&w=300" alt="Just Another Clan" title="Just Another Clan"/>
<img src="https://merkd.com/usr/teams/icons/thumb.php?src=1441676463.1.jpg&w=300" alt="ExtraordinaryKillers" title="ExtraordinaryKillers" class="clip"/>
</div>

SVG

这个使用 svg clippath .浏览器支持应该会好很多。

<svg viewBox='0 0 100 100' preserveAspectRatio='none'>
<clipPath id="clipPolygon">
<polygon points="100 0,0 100,100 100">
</polygon>
</clipPath>
<image viewBox='0 0 100 100' preserveAspectRatio='none' height="100" width="100" xlink:href="https://merkd.com/usr/members/icons/thumb.php?src=1435366066.9.png&w=300" />
<image viewBox='0 0 100 100' preserveAspectRatio='none' height="100" width="100" clip-path="url(#clipPolygon)" xlink:href="https://merkd.com/usr/teams/icons/thumb.php?src=1441676463.1.jpg&w=300" />
</svg>

关于javascript - 使用 CSS 对 Angular 拆分/合并 div/图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35590570/

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