* {margin: 0;}
div {
background-color:#bad455;
width: 200px;
height: 200px;
top:50%;
left:50%;
position:fixed;
transform: translate(-50%, -50%);
text-align:center;
}
div:hover {
box-shadow: 3px 5px 50px 5px;
display:inline-block;
border-radius:10%;
transform:skewX(50deg);
}
div p {
top:50%;
position:relative;
}
<div>
<p>oooo</p>
</div>
当我做top:50%
并设置position:relative
时,我希望这段文字会出现在中间。但是现在我可以看到它并不完全在其中。如果有人能解释我将不胜感激!
答案 0 :(得分:2)
使用transform: translateY(-50%);
将其正确居中
* {
margin: 0;
}
div {
background-color: #bad455;
width: 200px;
height: 200px;
top: 50%;
left: 50%;
position: fixed;
transform: translate(-50%, -50%);
text-align: center;
}
div:hover {
box-shadow: 3px 5px 50px 5px;
display: inline-block;
border-radius: 10%;
transform: skewX(50deg);
}
div p {
top: 50%;
transform: translateY(-50%);
position: relative;
}
<div>
<p>oooo</p>
</div>
答案 1 :(得分:0)
另一种方法是使用flexbox(CSS3)。因此添加
display: flex;
align-items: center;
justify-content: center;
到div
的文本居中。
* {margin: 0;}
div {
background-color:#bad455;
width: 200px;
height: 200px;
top:50%;
left:50%;
position:fixed;
transform: translate(-50%, -50%);
text-align: center;
display: flex;
align-items: center;
justify-content: center;
}
div:hover {
box-shadow: 3px 5px 50px 5px;
display:inline-block;
border-radius:10%;
transform:skewX(50deg);
}
<div>
<p>oooo</p>
</div>