让 div 在另一个 div 中转换的问题
Problem with getting div to transform within another div
我的目标是基本上创建一个按钮,其中按钮 rotates/tilts 略微悬停但文本没有。 https://codepen.io/kyannashanice/pen/QWveOMg
我将文本和按钮分开 div 并在悬停时触发了效果,但由于某种原因,它不会将按钮和文本置于容器内的中心。我找到了解决该问题的方法,现在按钮不再轻微倾斜而是移出容器。
.container {
height: 100px;
width: 200px;
position: relative;
border-radius: 70%;
padding-left: 50px;
padding-top: 50px;
}
.text-overlay {
color: black;
font-size: 30px;
z-index: 99;
top: 50%;
left: 50%;
position: absolute;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
}
.button {
position: absolute;
width: 200px;
padding: 50px;
font-size: 16px;
background-color: cream;
border-radius: 50%;
position: absolute;
z-index: -10;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
}
.spin>button {
display: block;
/* removes bottom margin/whitespace */
-webkit-transition: -webkit-transform .8s ease-in-out;
transition: transform .8s ease-in-out;
}
.container:hover .spin>button {
-webkit-transform: rotate(-10deg);
transform: rotate(-10deg);
}
<div class="container">
<div class="spin">
<button class="button"> </button>
</div>
<div class="text-overlay"> READ <br> MORE </div>
</div>
如果能帮我解决这个问题,我将不胜感激!谢谢!
使用您提供的代码,您只需删除 转换:translate,然后调整 顶部和左侧位置 以将文本正确放置在按钮中心的顶部。
如果该片段不是您要查找的内容,请告诉我,我可以对其进行编辑或删除答案。
.container {
height: 100px;
width: 200px;
position: relative;
border-radius: 70%;
padding-left: 50px;
padding-top: 50px;
}
.text-overlay {
color: black;
font-size: 30px;
z-index: 99;
position: absolute;
top: 45%;
left: 45%;
}
.button {
position: absolute;
width: 200px;
padding: 50px;
font-size: 16px;
background-color: cream;
border-radius: 50%;
position: absolute;
z-index: -10;
}
/* Spin Effect */
.spin > button {
display: block;
/* removes bottom margin/whitespace */
-webkit-transition: -webkit-transform .8s ease-in-out;
transition: transform .8s ease-in-out;
}
.container:hover .spin > button {
-webkit-transform: rotate(-10deg);
transform: rotate(-10deg);
}
<div class="container">
<div class="spin">
<button class="button"> </button>
</div>
<div class="text-overlay"> READ <br> MORE </div>
</div>
我的目标是基本上创建一个按钮,其中按钮 rotates/tilts 略微悬停但文本没有。 https://codepen.io/kyannashanice/pen/QWveOMg
我将文本和按钮分开 div 并在悬停时触发了效果,但由于某种原因,它不会将按钮和文本置于容器内的中心。我找到了解决该问题的方法,现在按钮不再轻微倾斜而是移出容器。
.container {
height: 100px;
width: 200px;
position: relative;
border-radius: 70%;
padding-left: 50px;
padding-top: 50px;
}
.text-overlay {
color: black;
font-size: 30px;
z-index: 99;
top: 50%;
left: 50%;
position: absolute;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
}
.button {
position: absolute;
width: 200px;
padding: 50px;
font-size: 16px;
background-color: cream;
border-radius: 50%;
position: absolute;
z-index: -10;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
}
.spin>button {
display: block;
/* removes bottom margin/whitespace */
-webkit-transition: -webkit-transform .8s ease-in-out;
transition: transform .8s ease-in-out;
}
.container:hover .spin>button {
-webkit-transform: rotate(-10deg);
transform: rotate(-10deg);
}
<div class="container">
<div class="spin">
<button class="button"> </button>
</div>
<div class="text-overlay"> READ <br> MORE </div>
</div>
如果能帮我解决这个问题,我将不胜感激!谢谢!
使用您提供的代码,您只需删除 转换:translate,然后调整 顶部和左侧位置 以将文本正确放置在按钮中心的顶部。
如果该片段不是您要查找的内容,请告诉我,我可以对其进行编辑或删除答案。
.container {
height: 100px;
width: 200px;
position: relative;
border-radius: 70%;
padding-left: 50px;
padding-top: 50px;
}
.text-overlay {
color: black;
font-size: 30px;
z-index: 99;
position: absolute;
top: 45%;
left: 45%;
}
.button {
position: absolute;
width: 200px;
padding: 50px;
font-size: 16px;
background-color: cream;
border-radius: 50%;
position: absolute;
z-index: -10;
}
/* Spin Effect */
.spin > button {
display: block;
/* removes bottom margin/whitespace */
-webkit-transition: -webkit-transform .8s ease-in-out;
transition: transform .8s ease-in-out;
}
.container:hover .spin > button {
-webkit-transform: rotate(-10deg);
transform: rotate(-10deg);
}
<div class="container">
<div class="spin">
<button class="button"> </button>
</div>
<div class="text-overlay"> READ <br> MORE </div>
</div>