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

之前遇到的垂直居中大部分都是相对于父元素居中,方法也很多,如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,让按钮元素脱离文档流,然后设置位置垂直居中即可

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 要实现文字对于view标签的水平垂直居中,可以通过以下步骤来实现: 1. 设置view标签的display属性为flex,让其变成一个flex容器。 2. 设置flex容器的justify-content属性和align-items属性都为center,这样就可以使内容在水平和垂直方向上都居中了。 3. 在flex容器内部添加一个文字元素,通过设置这个元素的text-align属性和line-height属性来实现文字水平垂直居中。 以下是示例代码: ```html <div style="display: flex; justify-content: center; align-items: center;"> <span style="text-align: center; line-height: 1.5;">这是居中的文字</span> </div> ``` ### 回答2: 要实现文字对于View标签的水平垂直居中,可以采用以下方法: 1. 使用RelativeLayout布局,将TextView和父View都设置为match_parent。 2. 在TextView的属性中,设置android:gravity="center"来实现文字水平垂直居中。这将使得文字在TextView中水平和垂直居中。 3. 可以调整父View的属性,例如android:padding来让TextView在View中有更多的空间,从而实现更好的居中效果。 示例代码如下: ```xml <RelativeLayout android:layout_width="match_parent" android:layout_height="match_parent"> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_centerInParent="true" android:gravity="center" android:text="居中对齐的文字" /> </RelativeLayout> ``` 这样,文字将对于View标签实现了水平垂直居中。可以根据具体需求调整RelativeLayout和TextView的属性,以实现更好的居中效果。 ### 回答3: 文字对于view标签的水平垂直居中,可以通过以下一些方法实现: 1. 使用CSS的flexbox布局:在父容器上设置display为flex,并使用align-items和justify-content属性将子元素水平垂直居中。 2. 使用CSSposition属性和transform属性:将文字所在的容器设置为position:relative,然后使用position:absolute和transform:translate来实现水平垂直居中。 3. 使用CSS的table布局:将文字所在的容器设置为display:table,并使用display:table-cell、vertical-align:middle和text-align:center来实现水平垂直居中。 4. 使用CSS的grid布局:将文字所在的容器设置为display:grid,并使用align-items:center和justify-content:center来实现水平垂直居中。 5. 使用CSS的line-height属性:设置line-height与容器高度等,可以使文字在容器中垂直居中。 总结来说,文字对于view标签的水平垂直居中可以通过CSS的布局属性和属性组合来实现。具体使用哪种方法取决于实际需求和布局结构。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值