如何让div在父元素中水平且垂直居中

 我来答
科创17
2022-07-09 · TA获得超过5916个赞
知道小有建树答主
回答量:2846
采纳率:100%
帮助的人:176万
展开全部

实现效果:

利用定位margin取值让子元素居中 :

margin取值应为子元素宽高的一半(margin的取值可以为负值,但padding显然不行), 缺点是 必须知道子元素的宽高具体大小且需要计算,当子元素的大小被修改后对应的margin值也需要修改否则达不到剧中的效果,从而引导我们使用更方便快捷的方法。
利用定位与transform实现垂直水平居中

transform:translate(-50%,-50%) 第一个-50%是指x轴方向向左位移 子元素本身 宽的百分之50,而第二个-50%是指元素在y轴方向向上平移 子元素本身 高的百分之50。
二者的原理是相同的都是在加了 left:50% 与 top:50% 后再减去盒子宽高的一半来实现水平垂直居中。

给父元素添加display:flex;让它变成弹性盒,在利用justify-content: center;与 align-items: center;,让子元素在主轴与交叉轴(纵轴)方向居中。 缺点是 在网页端弹性盒因为兼容问题一般不被经常使用。

设置一个元素在一个容器中垂直居中,必须更改默认的 display 属性值为 inline-block; 并加上同级元素(标尺)(同级元素[标尺]样式设置为 vertical-align:middle;width:0;height:100%;display:inline-block; )
三个条件:

原理类似于利用弹性布局,将父元素转换为网格元素再利用 ustify-items:center (内容在单元格内的水平对齐方式),和 align-items:center; (内容在单元格内垂直对齐方式) place-items 为复合写法,相当于父元素为一个一行一列的单元格而box1为它单元格中的元素。(其实很利用 place-content 也能做到原理还没搞懂...)

推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式