居中大全【虐心整理】

(参考原文https://css-tricks.com/centering-css-complete-guide/?utm_source=caibaojian.com

平时做居中,拿过来就做,全靠运气。知道很多种可以居中的办法,每次应用也是哪个可以实现就用哪个,今天有时间整理一下居中问题,不要再瞎猫碰死耗子了,遇到什么情况直接找到对应的方法。高效直接找到不同情境下的居中实现方法不是更好么。大概可以分为三中居中:水平居中、垂直居中、水平垂直同时居中

1.水平居中(基础初级)

行内元素:父元素中添加text-align: center;

单个块级元素:居中元素本身添加margin0 auto;

多个块级元素:父元素中添加display: flex;justify-content: center;

 

2.垂直居中(稍微有难度了)

一、行内

单行文本

1)父元素设置相同的上下padding

2居中元素本身height=line-height

多行文本

1)过时了的table

1)包裹在table tr td中,内容自动垂直居中(过时了吧,老土的方法)

2)模拟table样式,父元素添加display: table;子元素添加display: table-cell;vertical-align: middle;

2父元素有高度:

父元素上设置display: flex;flex-direction: column;justify-content: center;

3)父元素没高度:

父元素上设置positionabsolute;父元素::before设置content: " "; display: inline-block; height: 100%; width: 1%; vertical-align: middle;子元素上设置display:inline-block;vertical-align:middle;

二、块级 

居中元素高度固定

父元素上设置positionrelative;子元素:position: absolute; top: 50%; height: 100px; margin-top: -50px; /*padding时,padding要另算,即(height+2*padding)/2*/

 ②居中元素高度不固定

父元素上设置positionrelative;子元素:position: absolute; top: 50%;transform: translateY(-50%);(上周用这个做了个弹框,改成position:fixed就可以了)

③可以使用flexbox一切就变得简单多了

父元素上设置display: flex; flex-direction: column; justify-content: center;

3.水平垂直同时居中(重头戏、终极boss

居中元素高度宽度都固定

父元素设置:position: relative;

子元素设置:width: 300px; height: 100px; padding: 20px; position: absolute; top: 50%; left: 50%; margin: -70px 0 0 -170px;

②居中元素高度宽度不固定

父元素设置:position: relative;

子元素设置:position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%);}

③可以使用flexbox

父元素上设置display: flex; justify-content: center; align-items: center;

 小结:没有什么是不可以居中的

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在Compose中实现居中的方式有多种。你可以使用ConstraintLayout或使用Row和Modifier来实现居中效果。 一种简单的方法是使用ConstraintLayout。可以在Compose中使用ConstraintLayout的modifier设置水平和垂直居中对齐。例如,你可以使用以下代码实现水平居中和垂直居中对齐: ```kotlin ConstraintLayout(modifier = Modifier.fillMaxSize()) { val (text) = createRefs() Text( text = "居中文本", modifier = Modifier.constrainAs(text) { centerTo(parent) } ) } ``` 另一种方法是使用Row和Modifier。你可以在Row中使用horizontalArrangement参数和verticalAlignment参数来设置水平和垂直居中对齐。例如,你可以使用以下代码实现水平居中和垂直居中对齐: ```kotlin Row( modifier = Modifier.fillMaxWidth(), horizontalArrangement = Arrangement.Center, verticalAlignment = Alignment.CenterVertically ) { Text(text = "居中文本") } ``` 还可以使用Modifier的padding和align参数来实现居中。例如,你可以使用以下代码实现水平居中和垂直居中对齐: ```kotlin Row( modifier = Modifier.fillMaxWidth(), verticalAlignment = Alignment.CenterVertically ) { Text( text = "居中文本", modifier = Modifier .padding(start = 15.dp, top = 18.dp, end = 15.dp, bottom = 18.dp) .fillMaxWidth() ) } ``` 希望这些方法能帮助你实现Compose中的居中效果。<span class="em">1</span><span class="em">2</span><span class="em">3</span><span class="em">4</span>

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值