0

I have some circles with inner text. When I hover over it to rotate, the text gets blurred and a little messy until the end of the rotation. So it gets fine. It is happening in all browsers.

I tried some answers like this one but it did not work.

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;
}
Community
  • 1
  • 1
madsongr
  • 653
  • 1
  • 11
  • 29

2 Answers2

0

CSS Transforms will often cause blurriness when calculating subpixel values, it's just the nature of the beast.

One solution is to add perspective and backface-visibility values to the container

.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>
Saulius Next
  • 1,340
  • 10
  • 16
  • 1
    That's not the answer to the question I think. " When I hover over it to rotate, the text gets blurred and a little messy until the end of the rotation" – LukyVj Jan 03 '17 at 17:26
  • Same thing. And your snippet gets the same. – madsongr Jan 03 '17 at 17:30
0

I just tried with my MBP retina / Chrome 55, and everything looks fine on my end.

What kind of setup / config do you have ?

LukyVj
  • 1,495
  • 2
  • 11
  • 18