如何保持加载程序的文本静态?

时间:2017-04-05 10:34:50

标签: html css

我有一个圆形装载器和一个文本。如何将此文本保留在静态的圆圈内?因为它随着圆圈而移动。我的简单代码是:

<div class="loader">
  <div class="stop">
    STOP
  </div>
</div>

和css:

.loader {
   border-radius: 50%;
   border-top: 8px solid red;
   border-bottom: 8px solid red;
   border-right:8px solid red;
   border-left:8px solid white;
   width: 120px;
   height: 120px;
   animation: spin 4s linear infinite;
   margin:220px;
}

.stop{
  position: absolute;
  top: 45%;
  left: 40px;
  width: 100%;
  font-size:20px;
}

@keyframes spin {
  0% { transform: rotate(0deg); }
  100% { transform: rotate(360deg); }
}

任何想法的人!! ??

5 个答案:

答案 0 :(得分:1)

刚刚添加了一个块元素来保存两个div并且只用圆圈设置加载器div的动画,所以文本div保持静态

&#13;
&#13;
.loader-block {
  position: relative;
  margin:50px;
  width: 120px;
  height: 120px;
}
.loader {
   width: 100%;
   height: 100%;
   border-radius: 50%;
   border-top: 8px solid red;
   border-bottom: 8px solid red;
   border-right:8px solid red;
   border-left:8px solid white;   
   animation: spin 4s linear infinite;   
   box-sizing: border-box;
}

.stop{
  position: absolute;
  display: inline-block;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  font-size:20px;
}

@keyframes spin {
  0% { transform: rotate(0deg); }
  100% { transform: rotate(360deg); }
}
&#13;
<div class="loader-block">
  <div class="loader"></div>
  <div class="stop">STOP</div>
</div>
&#13;
&#13;
&#13;

答案 1 :(得分:0)

正如@ this.Believer所说,整个div正在旋转而不是装载器。您需要为旋转圆创建一个单独的元素,然后定位.stop元素:

HTML

<div class="loaderFrame">
  <div class="stop">STOP</div>
  <div class="loader"></div>
</div>

CSS

.loaderFrame {
   position: relative;
   width: 120px;
   height: 120px;
   margin:220px;
}

.loader {
   position: absolute;
   top: 0;
   left: 0;
   width: 100%;
   height: 100%;
   border-radius: 50%;
   border-top: 8px solid red;
   border-bottom: 8px solid red;
   border-right:8px solid red;
   border-left:8px solid white;
   animation: spin 4s linear infinite;
}

.stop{
  position: absolute;
  top: 50%;
  left: 50%;
  font-size:20px;
  transform: translate(-50%, -50%);
  margin: 0;
}

@keyframes spin {
  0% { transform: rotate(0deg); }
  100% { transform: rotate(360deg); }
}

请参阅jsFiddle

答案 2 :(得分:0)

你可以试试这个

BiometricView

和css

    <div class="loader">
    </div>
   <!--removed below div from loader -->  
   <div class="stop">
        STOP
    </div>

答案 3 :(得分:0)

问题是div class =“stop”在div class =“loader”中,所以得到它的旋转(作为一个子div得到它的定位来自它的父级。)

解决方案是改为停止和加载兄弟姐妹。

你可以尝试这样的东西(你需要摆弄宽度/高度等,但你明白了)

.loader {
   border-radius: 50%;
   border-top: 8px solid red;
   border-bottom: 8px solid red;
   border-right:8px solid red;
   border-left:8px solid white;
   width: 120px;
   height: 120px;
   animation: spin 4s linear infinite;
   margin:220px auto;
}

.stop{
  position: absolute;
  top: 0;
  left: 0;
  right:0;
  bottom:0;
  font-size:20px;
  text-align:center;
  margin:280px auto;
}

@keyframes spin {
  0% { transform: rotate(0deg); }
  100% { transform: rotate(360deg); }
}

<div class="wrapper">

    <div class="loader">
    </div>

    <div class="stop">
      STOP
    </div>
</div>

这里小提琴: https://jsfiddle.net/wnpb8hwp/1/#&togetherjs=CAar1kqum2

答案 4 :(得分:0)

&#13;
&#13;
 .loader {
            animation: 4s linear 0s normal none infinite running spin;
            border-color: red red red white;
            border-radius: 50%;
            border-style: solid;
            border-width: 8px;
            height: 120px;
            margin: auto;
            width: 120px;
        }

        .stop {
            font-size: 20px;
            left: 45%;
            position: absolute;
            top: 55px;
            width: 100px;
        }

        @keyframes spin {
            0% {
                transform: rotate(0deg);
            }

            100% {
                transform: rotate(360deg);
            }
        }

        .loaderblock
         {
             position:relative
         }
&#13;
<div class="loaderblock">
    <div class="loader">
    </div>
    <div class="stop">
        STOP
    </div>
</div>
&#13;
&#13;
&#13;