gpt4 book ai didi

具有可变边框宽度的CSS圆形掩码

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

我想知道是否有一种方法可以实现像使用图像 mask 显示的图像那样的效果? Sample Image

不需要左上角的蓝色效果。我想得到圆形 mask 。

我们将不胜感激。

最佳答案

使用两个具有相同背景的元素并调整 background-size/background-position 来创建这种效果的错觉:

.box {
width:200px;
height:200px;
border-radius:50%;
background-image:url(https://picsum.photos/id/1057/800/800);
background-size:auto 220px;
background-position:top left;
position:relative;
}
.box:before {
content:"";
position:absolute;
bottom:-20px;
left:0;
width:100px;
height:100px;
background-image:inherit;
background-size:inherit;
background-position:bottom left;
border-radius:inherit;
}
<div class="box">

</div>

下面是一种使用 CSS 变量轻松控制它的更通用的方法:

.box {
--b:-20px; /* Bottom of the pseudo element*/
--l:10px; /* Left of the pseudo element*/
--s:2; /*size of the pseudo element (as a scale factor)*/
width:200px;
height:200px;
border-radius:50%;
background-image:url(https://picsum.photos/id/1057/800/800);
background-size:auto calc(100% - var(--b));
background-position:top left;
position:relative;
display:inline-block;
}
.box:before {
content:"";
position:absolute;
bottom:var(--b);
left:var(--l);
width:calc(100%/var(--s));
height:calc(100%/var(--s));
background-image:inherit;
background-size:auto calc(100%*var(--s) - var(--b));
background-position:bottom 0 left calc(-1 * var(--l));
border-radius:inherit;
}
<div class="box"></div>

<div class="box" style="--s:3;l:50px;"></div>

<div class="box" style="--s:1.5;l:50px;--b:-10px"></div>

而且您可以轻松添加边框:

.box {
--b:-20px; /* Bottom of the pseudo element*/
--l:10px; /* Left of the pseudo element*/
--s:2; /*size of the pseudo element (as a scale factor)*/
width:200px;
height:200px;
border-radius:50%;
background-image:url(https://picsum.photos/id/1057/800/800);
background-size:auto calc(100% - var(--b));
background-position:top left;
position:relative;
display:inline-block;
border:2px solid blue;
box-sizing:border-box;
}
.box:before {
content:"";
position:absolute;
bottom:var(--b);
left:var(--l);
width:calc(100%/var(--s));
height:calc(100%/var(--s));
background-image:inherit;
background-size:auto calc(100%*var(--s) - var(--b));
background-position:bottom 0 left calc(-1 * var(--l));
border-radius:inherit;
border:inherit;
box-sizing:inherit;
}
<div class="box">

</div>

<div class="box" style="--s:3;l:50px;">

</div>

<div class="box" style="--s:1.5;l:50px;--b:-10px">

</div>

关于具有可变边框宽度的CSS圆形掩码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56300171/

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