【发布时间】:2018-07-21 19:28:30
【问题描述】:
我想在 div 中使用模拟边框动画来显示进度。该 div 是一个具有相对位置的 flexbox 元素。我正在添加一个伪元素来为边框底部设置动画。
CSS
.test {
display: flex;
box-sizing: border-box;
width: 384px;
border: 1px solid;
height: 48px;
position: relative;
}
.test:before {
content: '';
position: absolute;
bottom: 0;
left: 0;
// width: 100%;
width: -webkit-fill-available;
height: 2px;
background: red;
animation: running-progress 2s cubic-bezier(0.4, 0, 0.2, 1) infinite;
}
@keyframes running-progress {
0% { margin-left: 0px; margin-right: 100%; }
50% { margin-left: 25%; margin-right: 0%; }
100% { margin-left: 100%; margin-right: 0; } }
这是一个有问题的代码框:
https://codesandbox.io/s/yopwy5klz
问题
在这个给定的例子中,如何将宽度限制为伪元素不会溢出框的定义宽度?
仅供参考,如果我添加 width: -webkit-fill-available; 它可以正常工作,但我认为这不是正确的解决方案。
这是一个“工作”版本https://codesandbox.io/s/wyp8q26qvk
【问题讨论】:
-
注意:
::after带有两个冒号。虽然可以使用一个冒号,但 you shouldn't do it that way anymore.
标签: css flexbox css-animations