css圈内旋转文本

时间:2014-03-08 12:59:27

标签: javascript html css html5 css3

你能告诉我如何让你的文字在圆圈中居中吗? 该圈目前的工作方式与IE8和Firefox不同。 有没有人有任何想法/建议可以解决这个问题? 我提供了fiddle

以下是我的代码(以上是我的小提琴)

CSS

 .spinner span em {
  border-radius: 999px;
  position: absolute;
  width: 100%;
  height: 100%;
  -webkit-animation-iteration-count: infinite;
  -webkit-animation-timing-function: linear;
}

.spinner span:first-child em {
  left: 100%;
  border-top-left-radius: 0;
  border-bottom-left-radius: 0;
  -webkit-animation-name: rotate-lt; 
  -webkit-transform-origin: 0 50%;
}

.spinner span:last-child em {
  left: -100%;
  border-top-right-radius: 0;
  border-bottom-right-radius: 0;
  -webkit-animation-name: rotate-rt; 
  -webkit-transform-origin: 100% 50%;
 }

HTML

<div class="spinner">
<span><em></em></span>
<span><em></em></span>

hallo
</div>

任何帮助都会很棒!

2 个答案:

答案 0 :(得分:1)

要使文字居中,请使用text-align:center进行水平对齐,并将line-height:300px300px等于元素的高度)设置为垂直对齐。

答案 1 :(得分:1)

检查这个fiddle,我放置了一个包装器div

<强> HTML

<div class="wrapper">
    <div class="spinner">
      <span><em></em></span>
      <span><em></em></span>  
    </div>
    <div class="text">hallo<div>
</div>

<强> CSS

body {
  margin: 50px;
}

.wrapper {
  position: relative;
  width: 300px;
  height: 300px;
  margin: 0 auto;
}

.text {
  position: absolute;
  top:0px;
  width: 300px;
  height: 300px;
  margin: 0 auto;
  z-index:10;
  text-align:center;
  line-height:300px;    
}

.spinner {
  position: absolute;
  width: 300px;
  height: 300px;
  background: #aaa;
}
.spinner:after {
  position: absolute;
  content: "";
  width: 80%;
  height: 80%;
  border-radius: 100%;
  background: #fff;
  top: 10%;
  left: 10%;
}

.spinner span em {
  background: #0e728e;
  -webkit-animation-duration: 3s; 
}

/* No need to edit below this line */

@-webkit-keyframes rotate-rt {
  0% {    -webkit-transform: rotate(0deg); }
  25% {   -webkit-transform: rotate(180deg); }
  50% {   -webkit-transform: rotate(180deg); }
  75% {   -webkit-transform: rotate(360deg); }
  100% {  -webkit-transform: rotate(360deg); }
}
@-webkit-keyframes rotate-lt {
  0% {    -webkit-transform: rotate(0deg); }
  25% {   -webkit-transform: rotate(0deg); }
  50% {   -webkit-transform: rotate(180deg); }
  75% {   -webkit-transform: rotate(180deg); }
  100% {  -webkit-transform: rotate(360deg); }
}

.spinner {
  border-radius: 100%;
  position: relative;
}

.spinner span {
  width: 50%;
  height: 100%;
  overflow: hidden;
  position: absolute;
}

.spinner span:first-child {
  left: 0;
}

.spinner span:last-child {
  left: 50%;
}

.spinner span em {
  border-radius: 999px;
  position: absolute;
  width: 100%;
  height: 100%;
  -webkit-animation-iteration-count: infinite;
  -webkit-animation-timing-function: linear;
}

.spinner span:first-child em {
  left: 100%;
  border-top-left-radius: 0;
  border-bottom-left-radius: 0;
  -webkit-animation-name: rotate-lt; 
  -webkit-transform-origin: 0 50%;
}

.spinner span:last-child em {
  left: -100%;
  border-top-right-radius: 0;
  border-bottom-right-radius: 0;
  -webkit-animation-name: rotate-rt; 
  -webkit-transform-origin: 100% 50%;
 }