css - 阻止 "::after"直到 `transition` 完成

标签 css css-transitions transition

我正在创建一个按钮,当鼠标悬停时该按钮会增加它的宽度,然后会出现一个 > 符号。我不明白如何做到这一点。我已经实现了所有的东西,但唯一不起作用的是,> 在悬停时立即显示,文本被换行。

.start-quiz > button {
text-align: left;
padding-left: 25px;
width: 100px;
}

.start-quiz > button:hover {
width: 125px;
transition: width 0.5s linear;
}

.start-quiz > button:hover:after {
content: " >";
transition: content 0.5s ease;
}

最佳答案

content 不可转换。您可以设置不透明度,然后像这样为其定义过渡

.start-quiz > button {
  text-align: left;
  padding-left: 25px;
  width: 100px;
}

.start-quiz > button:hover {
  width: 125px;
  transition: width 0.5s linear;
}

.start-quiz > button:after {
  content: " >";
  opacity: 0;
  visibility: hidden;
  transition: opacity 0.5s ease;
}

.start-quiz > button:hover:after {
  visibility: visible;
  opacity: 1;
}

关于css - 阻止 "::after"直到 `transition` 完成,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58258931/

相关文章:

javascript - Bootstrap - 创建 100 列网格,与圆形结合

html - 从中间向外扩展透明背景的过渡

javascript - 如何向此 javascript 函数添加转换

html - 添加不透明度在延迟动画后消失

CSS 全高侧边栏,内容响应

css - 为空输入文本字段应用不同的样式(使用 CSS)?

jquery - IE8 使用 JQuery 设置最小宽度的不同尝试给我带来了问题

javascript - 使用 JavaScript 增加元素大小

animation - 如何使用 CSS 3 过渡创建循环淡入/淡出图像效果?

android - 丑陋的 fragment 过渡到带有覆盖的表面 View