css 如何使子元素从其父元素的中心垂直偏移?

k4ymrczo  于 2023-02-01  发布在  其他
关注(0)|答案(4)|浏览(153)

Here是我设置的一个jsFiddle。
父元素和子元素的高度将是不确定的(意味着它将在之后更改),并且子元素的位置必须是绝对的。
我怎样才能将子元素从父元素的中心垂直偏移5个像素?
超文本:

<div class="parent">
    <div class="child"></div>
</div>

CSS:

.parent{
    position:relative;
    margin: 10% auto;
    background:lightgray;
    height:50px;/*parent's height will change after*/
    width:200px;
}
.parent .child{
    position:absolute; /* needs to be absolutely position */
    top:0;
    bottom:0;
    margin:auto;
    width:100%;
    height:20px;/*child's height will change after*/
    background:darkgray;
}
szqfcxe2

szqfcxe21#

偏移量5 px在哪里??
像这样----〉Updated Fiddle

像这样----〉Updated Fiddle

mitkmikd

mitkmikd2#

如果我没理解错的话,那么你想让子元素垂直偏移5个像素,我不确定这意味着元素应该从父元素的中间向上还是向下移动,但是here是一个向上移动的例子,here是一个向下移动的例子。
下面是我添加到child的CSS中以将其上移的代码:

top:50%;
margin-top:-15px;

此外,还应删除子对象的当前topbottom声明。
我们将其设置为距离父对象顶部50%,然后从其顶部居中偏移量减去其高度的一半,并在该偏移量上加上(或减去)5个像素以进一步偏移。
对于可变高度,请使用以下CSS(这会将其上移5个像素):

top:-5px;
bottom:0;
margin:auto;

Example .

ojsjcaue

ojsjcaue3#

使用border-top
在此查看我的Fiddle

  • 顶部:0;底部:0;和边距:自动;当父元素和子元素的高度"不确定"时,子元素可以居中对齐;
  • 上边框:10px;可以使子元素偏移。

也许你能解决你的问题

x6yk4ghg

x6yk4ghg4#

考虑到元素居中,您只需添加

transform(translateY: 5px)

垂直偏移div,或

transform(translateX: 5px)

以使其水平偏移。

相关问题