Css Transition未按预期工作

时间:2017-07-26 21:24:58

标签: html css css3

我可以在我的css代码中使用一些帮助。

我正在尝试使用<h1>属性更改transition颜色和形状。

当我将鼠标悬停在标题上时,我希望形状和颜色变慢 但目前只有颜色受到影响,形状也会独立变化。

我的代码如下:

html:

<h1 class="box">Abcdefg</h1>

css:

.box {
      background: #2db34a;
      margin: 1px auto;
      transition: background 1s linear;
      border-radius: 0.3%;
      color: white;
      cursor: pointer;
      height: 95px;
      line-height: 95px;
      text-align: center;
      width: 400px;
    }

.box:hover {
      background: #ff7b29;
   border-radius: 50%;
}

感谢。

5 个答案:

答案 0 :(得分:2)

您只需将border-radius添加到transition

即可

&#13;
&#13;
.box {
  background: #2db34a;
  margin: 1px auto;
  transition: background 1s linear, border-radius 1s linear;
  border-radius: 0.3%;
  color: white;
  cursor: pointer;
  height: 95px;
  line-height: 95px;
  text-align: center;
  width: 400px;
}

.box:hover {
  background: #ff7b29;
  border-radius: 50%;
}
&#13;
<h1 class="box">Abcdefg</h1>
&#13;
&#13;
&#13;

答案 1 :(得分:2)

all设置中使用transition同时影响border-radiusbackground-color

&#13;
&#13;
.box {
  background: #2db34a;
  margin: 1px auto;
  transition: all 1s linear;
  border-radius: 0.3%;
  color: white;
  cursor: pointer;
  height: 95px;
  line-height: 95px;
  text-align: center;
  width: 400px;
}

.box:hover {
  background: #ff7b29;
  border-radius: 50%;
}
&#13;
<h1 class="box">Abcdefg</h1>
&#13;
&#13;
&#13;

答案 2 :(得分:2)

您有下一行代码:

transition: background 1s linear;

转换仅适用于现在的背景。如果您将背景更改为所有过渡将同时适用于背景和边界半径,如下所示:

transition: all 1s linear;

答案 3 :(得分:0)

转换仅适用于具有数字的属性。话虽如此,问题是它应该也适用于边界半径。但问题是浏览器无法找到属性的初始状态。只需添加border-radius:0%就可以了。

答案 4 :(得分:0)

    HTML code:
<p> the code is :</p>
<h1 class="sheet">Abcdefg</h1>

   CSS Code:
css code :
.sheet {
      background: blue;
      margin: 1px auto;
      transition: background 5s linear , border-radius 5s ease-in-out ;
      color: white;
      cursor: pointer;
      height: 95px;
      line-height: 95px;
      text-align: center;
      width: 400px;
    }

.sheet:hover {
      background: red;
      color:grey;
   border-radius: 40%;

}