如何相对于兄弟元素实现垂直居中

本文探讨了一种针对兄弟元素实现垂直居中的解决方案。通过使用CSS的`position`属性和`transform`,在不改变父元素高度的情况下,确保按钮相对于文字内容正确垂直居中。详细步骤包括设置父元素`position:relative`,按钮元素`position:absolute`,并利用`top`和`transform:translateY(-50%)`来定位。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

之前遇到的垂直居中大部分都是相对于父元素居中,方法也很多,如flex、margin、absolute等等,之前也总结过了,这里就不多赘述,但是这次的需求是相对于兄弟元素实现垂直居中,还是花费了一些时间才解决的(也可能是由于思维定势,一时半会没想起来)

一、需求效果

可以看到右侧的按钮,是相对于左侧的文字内容垂直居中的,而且内容的行数可能是一行或者两行

二、方法尝试(使用flex)

在父元素上加上:

    display: flex;
    align-items: center;

效果如下:

虽然实现了垂直居中,但是设计说

"不行,文字内容的上边距不一样了"

仔细一看,还真是,这是为什么呢?

于是我加了个背景色

会发现,其实父元素的高度已经被按钮撑开了(父元素没有设置height)所以这条路走不通

根据上边的尝试,我们自然而然就想到,要想不让按钮撑开父元素的高度,就必须让按钮脱离文档流 ,于是想到用absolute试一下

在按钮元素上加上:

position: absolute;
right: 0;
top: 50%;
transform: translateY(-50%);

在父元素上加上:

position: relative;

效果如下:

确实这次父元素没有被按钮的撑开高度了,此时父元素的高度就是文字内容的高度,棒!

三、总结 

父元素设置position: relative,按钮元素设置position: absolute,让按钮元素脱离文档流,然后设置位置垂直居中即可

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值