gpt4 book ai didi

css - `position: relative` 和 `top: 50%` 垂直居中

转载 作者:太空宇宙 更新时间:2023-11-04 00:09:43 25 4
gpt4 key购买 nike

我试图在以下标记 ( fiddle ) 中将 .spinner 元素垂直居中:

<div class=grid>
<div class=spinner></div>
<table>
<tr><td>row 1 cell 1</td><td>row 1 cell 2</td></tr>
<tr><td>row 2 cell 1</td><td>row 2 cell 2</td></tr>
<tr><td>row 3 cell 1</td><td>row 3 cell 2</td></tr>
</table>
</div>

具有以下样式:

.spinner {
position: relative;
top: 50%;
left: 50%;
height: 3px;
width: 3px;
background-color: red;
}

如果我将 .spinner top 属性设置为某个像素值,浏览器实际上会根据该值对其进行定位,但如果我尝试将其设置为百分比, 它不起作用。

如何使 .spinner 元素垂直居中?

注意:我知道我可以将 .grid 位置设置为相对位置,将 .spinner 位置设置为绝对位置,但我更愿意保持网格静态定位。如果不修改 .grid 的样式,这是否可能?

最佳答案

首先,您应该使用绝对 定位,将.grid 设置为relative 定位。然后,将 topbottomleftright 设置为 0 .spinner 元素。由于您有固定的 width/height,与 margin:auto; 一起的定位将使元素完美居中(example):

.grid {
position:relative;
}
.spinner {
position: absolute;
top: 0;
bottom: 0;
left: 0;
right: 0;
margin:auto;
height: 3px;
width: 3px;
background-color: red;
}

table {
width: 100%;
}

在回应你最后的注释时,不,.grid 元素的静态定位是不可能的(除非你在 .grid 元素中添加一个包装器).这是因为 .spinner 元素在没有某种具有相对定位的容器(这是 position:relative; 的位置)的情况下无法知道表格的高度尺寸在 .grid 元素上发挥作用)。您可以根据需要使用负边距或相对定位来解决此问题,但它永远无法容纳动态内容(使用当前的浏览器/标准集)。

关于css - `position: relative` 和 `top: 50%` 垂直居中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13496530/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com