html - CSS/HTML 按钮动画不正确
问题描述
这个 CSS/HTML 按钮与另一个可以正常工作的 HTML 按钮具有完全相同的代码。它应该向下平移 4 个像素。另一个 HTML 按钮正是这样做的,尽管具有完全相同的代码,但按钮的阴影决定向上移动。
.back {
font-size: 28px;
color: #ecf0f1;
text-decoration: none;
border-radius: 5px;
border: solid 1px #f39c12;
background: #e67e22;
text-align: center;
-webkit-transition: all 0.1s;
-moz-transition: all 0.1s;
transition: all 0.1s;
-webkit-box-shadow: 0px 6px 0px #d35400;
-moz-box-shadow: 0px 6px 0px #d35400;
box-shadow: 0px 6px 0px #d35400;
font-family: "Futura";
margin: -20px -50px;
position: relative;
top: 50%;
left: 50%;
}
.back:hover {
background: #ffad66;
color: #ffffff;
-webkit-box-shadow: 0px 6px 0px #e07f43;
-moz-box-shadow: 0px 6px 0px #e07f43;
box-shadow: 0px 6px 0px #e07f43;
}
.back:active {
-webkit-box-shadow: 0px 2px 0px #d35400;
-moz-box-shadow: 0px 2px 0px #d35400;
box-shadow: 0px 2px 0px #d35400;
transform: translateY(4px);
}
解决方案
这可能是由于display:inline
应用于<a>
元素的默认 CSS 规则造成的。这将影响按钮的垂直放置和动画行为。
尝试将以下内容添加到您的 CSS 中:
display:inline-block;
这将覆盖display:inline
您的反向链接的默认值,并且应该达到预期的结果:
.back {
font-size: 28px;
color: #ecf0f1;
text-decoration: none;
border-radius: 5px;
border: solid 1px #f39c12;
background: #e67e22;
text-align: center;
-webkit-transition: all 0.1s;
-moz-transition: all 0.1s;
transition: all 0.1s;
-webkit-box-shadow: 0px 6px 0px #d35400;
-moz-box-shadow: 0px 6px 0px #d35400;
box-shadow: 0px 6px 0px #d35400;
font-family: "Futura";
margin: -20px -50px;
position: relative;
top: 50%;
left: 50%;
/* Add rule to specify inline-block display behavior */
display: inline-block;
}
或者,您可以只使用<button>
标签而不是<a>
标签。使用按钮标签意味着您的原始 CSS 将按预期工作,而无需此答案中建议的更新:
<!--
Old approach
<a class="back">Test</a>
-->
<!-- Alternative approach -->
<button class="back">Test</button>
推荐阅读
- python - 如何使用 pyqt 重新打开一个窗口?
- c# - 当类从接口继承并且类型从接口类型方法继承时,C# 错误 CS0738
- java - Java [SQLITE_ERROR] SQL 错误或缺少数据库(“resi”附近:语法错误)
- git - Git 恢复——这就是我的用例所需要的吗?
- go - Terratest 断言字符串因 GitHub 操作而失败
- java - 无法调用“javafx.scene.control.ComboBox.getItems()”,因为“Controller.getMyBox()”的返回值为 null
- flutter - 如何让服务器知道根据指纹颤动发送哪些数据?
- python - 如何更改特定 Django 管理模型中的时区?
- gitlab - 在 cpanel 中使用 HTTP 克隆私有 git 存储库
- swiftui - 使用 SwiftUI 将 @Binding 链接到 @Published