gpt4 book ai didi

css - 在矩形上平滑 CSS 变换比例,保持均匀的边框

转载 作者:太空宇宙 更新时间:2023-11-04 05:43:05 24 4
gpt4 key购买 nike

我有一个绝对定位的 div,我希望它在悬停时缓慢增加大小(5 秒过渡),成为其顶部相对定位的 div 的“边框”:

<div class="rectangle">
<div class="background"></div>
<div class="content">blah</div>
</div>

样式(为了便于阅读删除了供应商前缀):

.rectangle {
position: relative;
}

.background {
position: absolute;
width: 100%;
height: 100%;
top: 0;
left: 0;
right: 0;
bottom: 0;
}

.content {
height: 800px;
width: 200px;
}

过渡整体 .background 大小会导致断断续续的动画但边界均匀:

.rectangle:hover .background {
width: calc(100% + 40px);
height: calc(100% + 40px);
top: -20px;
left: -20px;
right: -20px;
bottom: -20px;
transition: 5s linear all;
}

过渡边框是断断续续的动画,但(显然)是均匀的边框

.rectangle:hover .content {
border: 20px solid red;
transition: 5s linear all;
}

转换 transform-scale 是平滑,但会导致顶部和底部“边框”变大,因为它是一个矩形:

.rectangle:hover .background {
transition: 5s transform;
transform: scale(1.1);
}

有什么方法可以让变换比例保持均匀尺寸,或者有什么其他方法可以产生这种效果?

最佳答案

可以尝试使用box shadow作为边框来实现平滑过渡。

.rectangle {
position: relative;
width: 300px;
height: 300px;
top: 100px;
left: 30%;
}

.background {
position: absolute;
width: 100%;
height: 100%;
top: 0;
left: 0;
right: 0;
bottom: 0;
}

.background::before {
content: '';
position: absolute;
top: 0;
left: 0;
right: 0;
bottom: 0;
box-shadow: 0 0 0 0px #000;
transition: 5s linear box-shadow;
}

.content {
height: 300px;
width: 200px;
}

.rectangle:hover .background::before {
box-shadow: 0 0 0 20px #000;
transition: 5s linear box-shadow;
}
<div class="rectangle">
<div class="background"></div>
<div class="content">blah</div>
</div>

关于css - 在矩形上平滑 CSS 变换比例,保持均匀的边框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58966637/

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