CSS 'top' 未将元素向下推到屏幕上

标签 css position

我正在尝试(几乎)将容器在屏幕上垂直居中。为此,我将其定位为 relative并使用 top: 40%; 的组合和transform: translateY(-50%); .

问题是,top不起作用(就像不将容器推到页面下一样),尽管如果我检查 Firebug 或 Chrome 中的元素,我可以看到相当于 40% 的内容已添加到容器的顶部。如果我只需单击该值并按 Enter 键,更改就会反射(reflect)在页面上。

所以我的问题是,为什么这不起作用,即使 top看来计算正确?

这是我的 CSS -

body:not(.mobile) #login{
    padding:            0 0 40px;
    top:                40%;
    -webkit-transform:  translateY(-50%);
    -ms-transform:      translateY(-50%);
    transform:          translateY(-50%);
}
#login{
    position:   relative;
    z-index:    10;
}

这是 HTML 的呈现方式

<body class="login login-action-login wp-core-ui locale-en-gb">

    <div id="login">

        { Login form goes here }

    </div>
    <div class="clear"></div>

</body>

这是显示问题的屏幕截图

enter image description here

最佳答案

这个 CSS 将修复它:

body:not(.mobile) #login{
    padding:            0 0 40px;
    top:                40%;
}
#login{
    position:   absolute;
    z-index:    10;
}

编辑:您可以看到它在这个 js fiddle 上运行:https://jsfiddle.net/7h0nz7nz/

关于CSS 'top' 未将元素向下推到屏幕上,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33808805/

相关文章:

delphi - 如何从 TRichedit 中按点或按索引获取字符

position - 使用 IMU 进行短期位置跟踪

javascript - 如何使用 JavaScript 滚动事件更改 HTML 输入

javascript - 如何在 url 中隐藏父位置哈希

jquery - 在固定顶部导航栏上滚动添加按钮

jquery - 使用 jQuery 获取 CSS 缩放元素正常状态的顶部和左侧?

html - 调整元素的位置

java - 在字符串中查找子字符串的位置(不是 indexOf)

jquery - 仅当父 div 在 View 中时显示固定按钮

html - 更改平板电脑和移动设备上的内容