我正在尝试在纯css中重新创建以下gif -
这里的Css - http://codepen.io/anon/pen/FmCaL - (仅在mo的webkit / chrome)
我试图通过使用之前和之后重新创建圆圈的缺失块。在psuedo选择器之后,但我无法获得正确的角度。
甚至可以吗?有更好的方法吗?
感谢您提供任何帮助。我应该指明我需要箭头是透明的。我不能使用纯色作为圆圈的缺失部分。
答案 0 :(得分:7)
如何简单地这样做?
div {
border: 10px solid #000;
height: 50px;
width: 50px;
border-radius: 50%;
position: relative;
}
div:after {
height: 0;
width: 0;
display: block;
position: absolute;
right: -12px;
content: " ";
border-bottom: 12px solid #fff;
border-right: 12px solid transparent;
transform: rotate(10deg);
}
说明:我们在这里做的是使用:after
伪将元素绝对定位到圆并使用transform
属性来旋转三角形。
Demo 2(动画制作)
div {
border: 10px solid #000;
height: 50px;
width: 50px;
border-radius: 50%;
position: relative;
animation: spin 1s infinite linear;
}
div:after {
height: 0;
width: 0;
display: block;
position: absolute;
right: -12px;
content: " ";
border-bottom: 12px solid #fff;
border-right: 12px solid transparent;
transform: rotate(10deg);
}
@keyframes spin {
from { transform: rotate(0deg); }
to { transform: rotate(360deg); }
}
我的建议:当你更新你的qustion时,你说你想要一个透明的装订线,我建议你使用.png
图像并旋转它,而不是编写100行CSS并担心跨浏览器的兼容性。或者,因为我在评论中共享了一个链接,您可以使用CSS屏蔽。
答案 1 :(得分:0)
如果您不关心三角形是否透明,我可以建议这样的事情:
DEMO(适用于chrome和firefox)
.loading {
display: inline-block;
margin: 5em;
border: 10px solid grey;
border-radius: 50%;
width: 20px;
height: 20px;
-webkit-animation: spin 1s linear infinite;
-moz-animation: spin 1s linear infinite;
animation: spin 1s linear infinite;
}
.loading:before {
content: '';
display: block;
border: 13px solid transparent;
border-right-color: white;
width: 20px;
height: 0;
border-radius: 50%;
margin: -3px 0 0 -13px;
-webkit-transform: rotate(-90deg);
-moz-transform: rotate(-90deg);
transform: rotate(-90deg);
}
@-webkit-keyframes spin { 100% { -webkit-transform: rotate(359deg); }}
@-moz-keyframes spin { 100% { -moz-transform: rotate(359deg); }}
@keyframes spin { 100% { transform: rotate(359deg); }}