我正在尝试在CSS预加载器下面放置一些文本,该文本为“加载选项-这可能需要几秒钟...”
#loader {
border: 16px solid rgba(255, 255, 255, 0.5);
/* Light grey */
border-top: 16px solid rgb(27, 40, 61);
/* Blue */
border-radius: 50%;
width: 120px;
height: 120px;
animation: spin 2s linear infinite;
position: absolute;
top: 50%;
margin-top: -60px;
left: 50%;
margin-left: -60px;
}
#loader:after {
content: "Loading Options - This May Take A Few Seconds...";
position: absolute;
bottom: 100%;
}
@keyframes spin {
0% { transform: rotate(0deg); }
100% { transform: rotate(360deg); }
}
<div id="search-overlay">
<div id="loader"></div>
</div>
但是,这会导致文本随着加载程序旋转,而不是在其下方旋转。任何帮助将不胜感激!
答案 0 :(得分:1)
只需创建一个新元素:)
用更多的CSS组合在一起,使其看起来更时髦。
#loader {
border: 16px solid rgba(255, 255, 255, 0.5);
/* Light grey */
border-top: 16px solid rgb(27, 40, 61);
/* Blue */
border-radius: 50%;
width: 120px;
height: 120px;
animation: spin 2s linear infinite;
margin-bottom: 10px;
}
#loader:after {
position: absolute;
bottom: 100%;
}
@keyframes spin {
0% { transform: rotate(0deg); }
100% { transform: rotate(360deg); }
}
#search-overlay {
position: relative;
display: flex;
flex-flow: column wrap;
align-items: center;
justify-content: center;
}
#loader-text {
font-family: sans-serif;
text-align: center;
}
<div id="search-overlay">
<div id="loader"></div>
<div id="loader-text">Loading Options:<br> This may take a few seconds...</div>
</div>
答案 1 :(得分:0)
您需要为此创建一个新元素。没有其他办法了。因为要旋转的是完整的元素集,而文本是旋转器的内容。
答案 2 :(得分:0)
您可以通过flex
显示来实现这种目的。
:after
伪类仍然属于#loader
,因此在设置#loader
的动画时您不能阻止它旋转。
您需要创建一个新元素来处理此类消息。
此外,使用位置absolute
和负边距值并不是真正的最佳实践。我不知道上下文,但是您必须使用这种组合,但是我认为仅使用top
和left
值就足够了。
#loader {
border: 16px solid rgba(255, 255, 255, 0.5);
/* Light grey */
border-top: 16px solid rgb(27, 40, 61);
/* Blue */
border-radius: 50%;
width: 120px;
height: 120px;
animation: spin 2s linear infinite;
}
@keyframes spin {
0% {
transform: rotate(0deg);
}
100% {
transform: rotate(360deg);
}
}
#search-overlay {
position: relative;
display: flex;
flex-flow: column wrap;
align-items: center;
justify-content: center;
}
<div id="search-overlay">
<div id="loader"></div>
<span class="loading-message">Loading Options - This May Take A Few Seconds...</span>
</div>