CSS悬停旋转:模糊和奇怪的文字

时间:2017-01-03 17:05:43

标签: html css css3

我有一些内部文字圈子。当我将鼠标悬停在它上面旋转时,文字变得模糊,有点乱,直到旋转结束。所以它变好了。 它发生在所有浏览器中。

我尝试了一些像this one这样的答案,但它没有用。

HTML

<div class="circle">
  <div class="inner-circle">
      <div class="dotted-circle">
          <div class="circle__wrapper">
              <div class="circle__content">
                  Magic Touch Detox
              </div>
          </div>
      </div>
  </div>
</div>

CSS

.treatframe .circle {
  position: relative;
  display: block;
  margin-top: -6em;
  background-color: transparent;
  color: #222;
  text-align: center;
  z-index: 1;
}

.circle:after {
  display: block;
  margin-left: auto !important;
  margin-right: auto !important;
  width: 170px;
  height: 170px;
  border-radius: 50%;
  background-color: #c6c;
  content: "";
}

.dotted-circle {
  display: block;
  margin-left: auto !important;
  margin-right: auto !important;
  margin-top: 5px;
  width: 160px;
  height: 160px;
  border: 5px dotted #fff;
  border-radius: 50%;
  background-color: #c6c;   
}

.treatframe .circle .inner-circle {
  position: absolute;
  top: 0;
  bottom: 0;
  left: 0;
  width: 100%;
  height: 100%;
  opacity: 1;
  -webkit-transition-duration: 1s;
  -moz-transition-duration: 1s;
  -o-transition-duration: 1s;
  transition-duration: 1s;
}

.treatframe .circle .inner-circle:hover {
  -webkit-transform: rotate(7deg);/* Chrome, Safari, Opera */
  -moz-transform: rotate(7deg);
  -o-transform: rotate(7deg);
  -ms-transform: rotate(7deg);/* IE 9 */
  transform: rotate(7deg);
  -webkit-transition-duration: 1s;
  -moz-transition-duration: 1s;
  -o-transition-duration: 1s;
  transition-duration: 1s;
} 

.circle__wrapper {
 display: table;
 width: 100%;
 height: 100%;
}

.circle__content {
  display: table-cell;
  padding: 1em;
  vertical-align: middle;
  font-size: 20px;
  font-weight: bold;
  color: #fff;
}

2 个答案:

答案 0 :(得分:0)

CSS变换在计算子像素值时经常会导致模糊,这只是野兽的本质。

一种解决方案是向容器添加透视和背面可见性值

.circle {
  position: relative;
  display: block;
  margin-top: -6em;
  background-color: transparent;
  color: #222;
  text-align: center;
  z-index: 1;
}

.circle:after {
  display: block;
  margin-left: auto !important;
  margin-right: auto !important;
  width: 170px;
  height: 170px;
  border-radius: 50%;
  background-color: #c6c;
  content: "";
}

.dotted-circle {
  display: block;
  margin-left: auto !important;
  margin-right: auto !important;
  margin-top: 5px;
  width: 160px;
  height: 160px;
  border: 5px dotted #fff;
  border-radius: 50%;
  background-color: #c6c;   
}

.circle .inner-circle {
  position: absolute;
  top: 0;
  bottom: 0;
  left: 0;
  width: 100%;
  height: 100%;
  opacity: 1;
  -webkit-transition-duration: 1s;
  -moz-transition-duration: 1s;
  -o-transition-duration: 1s;
  transition-duration: 1s;
}

.circle .inner-circle:hover {
  -webkit-transform: rotate(7deg);/* Chrome, Safari, Opera */
  -moz-transform: rotate(7deg);
  -o-transform: rotate(7deg);
  -ms-transform: rotate(7deg);/* IE 9 */
  transform: rotate(7deg);
  -webkit-transition-duration: 1s;
  -moz-transition-duration: 1s;
  -o-transition-duration: 1s;
  transition-duration: 1s;
} 

.circle__wrapper {
 display: table;
 width: 100%;
 height: 100%;
}

.circle__content {
  backface-visibility: hidden;
  display: table-cell;
  padding: 1em;
  vertical-align: middle;
  font-size: 20px;
  font-weight: bold;
  color: #fff;
}
<html>
<head>
</head>
<body>
<div class="circle">
  <div class="inner-circle">
      <div class="dotted-circle">
          <div class="circle__wrapper">
              <div class="circle__content">
                  Magic Touch Detox
              </div>
          </div>
      </div>
  </div>
</div> 
</body>
</html>

答案 1 :(得分:0)

我刚试过我的MBP视网膜/ Chrome 55,一切看起来都不错。

你有什么样的设置/配置?