css - 将元素定位在动态调整大小的元素中间

标签 css position centering

我必须将“播放”图标和文本“播放”放在包含的元素的中心,其高度和宽度取决于该图像 - 它们会根据用户的屏幕而变化。 我试图像这样使用它

a.thumbnail:hover:after
{
    content: "Play";
    width: 50px;
    height: 20px;
    display: inline-block;
    position: absolute;
    top:50%;
    left: 50%;
    background-color: #fff;
    border: 1px solid red;
}

但实际上 :before 元素的左上角在中间并且看起来移位了......你能建议我更好的解决方案吗?

最佳答案

将此添加到代码中

  margin: -10px -25px; /** height/2 width/2 **/

或者用同样的方式翻译

 div{
   position: relative;
   width: 200px;
   height: 200px;
   background: red;
   margin: 20px auto
 }
div:after{
   content: '';
   position: absolute;
   width: 50px;
   height: 20px;
   z-index: 2;
   top: 50%;
   left: 50%;
   background: green;
   transform: translate( -50%, -50%)
}
<div><div/>

关于css - 将元素定位在动态调整大小的元素中间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29879031/

相关文章:

css - 如何在单个 DIV 中将 2 个图像居中

jquery - CSS3 翻转卡,带自动高度

css - 1 行用于所有产品图库图片

html - 视频内容的容器div等高

java - JFrame 在窗口中间的位置

html - 如何水平居中元素?

css点击时不改变颜色

jqueryui 拖拽移除列表图标

html - CSS 位置 : fixed

android - 如何更改 Android SeekBar 轨道开始位置?