高度不定垂直居中_css不定高度怎么设置垂直居中?

在未知元素的宽高情况下,怎么设置垂直居中?下面给大家介绍一下使用CSS在不定宽高下设置垂直居中的方法。有一定的参考价值,有需要的朋友可以参考一下,希望对大家有所帮助。

第一种:使用 flex盒布局 (推荐)

首先说一下Flexbox。Flexbox是css3的一个盒子模型,其中我们只要使用align-items和 align-content 就能较为快速地实现内部div没有确定高度居中方式。

测试代码:

html:

css:html, body {

margin: 0;

padding: 0;

width: 100% ;

height: 100% ;

}

.flexbox {

display: flex;

align-items: center;

justify-content: center;

width: 100% ;

height: 100% ;

}

.flexbox div {

width: 100px;

height: 50px;

background: #fcf000;

}

第二种:使用 transform

transform是css3的新属性,可以操控节点的位移,旋转等。在垂直居中中,只要用到了transform中的translateX,translateY这两个属性。

使用translateX,translateY来居中有以下的几点要注意的:子div(子节点)需要使用 position: relative;

使用top,left分别为-50%。以及translateX,translateY为50%进行位移居中

测试代码:

html:

css:html, body {

margin: 0;

padding: 0;

width: 100% ;

height: 100% ;

}

.transform {

width: 100% ;

height: 100% ;

}

.transform div {

position: relative;

width: 100px;

height: 50px;

top: 50% ;

left: 50% ;

transform: translateY(-50%) translateX(-50%);

background: #f96600;

}

第三种:display的table-cell 表格单元格.transform {

width: 100% ;

height: 100% ;

display: table; // 设置display属性

}

.transform div {

width: 100px;

height: 50px;

display: table-cell; // 子元素水平居中

vertical-align: middle; // 垂直居中

background: #f96600;

}

这种方法的优点在于:

content 可以动态改变高度(不需在 CSS 中定义)。

当 父节点里没有足够空间时,content 不会被截断。(在实际中这个是十分实用的)

而使用绝对定位content不可以动态改变高度。

最后,垂直居中方式有很多,采取合适才是最重要的。

更多web前端开发知识,请查阅 HTML中文网 !!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值