搜索
写经验 领红包
 > 美容

css水平垂直居中的几种方法(css中垂直水平居中)

导语:CSS—水平、垂直居中

css水平垂直居中的几种方法(css中垂直水平居中)

一、水平居中

行内元素:看父元素是否为块级元素,如果是,给父元素设置text-align: center;如果不是,先给父元素设置:display:block;(看具体布局,以免影响其它元素显示)在设置text-align: center;块级元素:

方案一:

固定宽度:margin: 0 auto;不定宽度:设置子元素为display: inline-block / inline;即转换成行内块级/行内元素,给父元素设置text-align: center;

方案二:使用定位属性

固定宽度:父元素设置position: relative;子元素设置position: absolute; left: 50%; margin-left: -子元素宽度一半;不定宽度:父元素设置position: relative;子元素设置position: absolute; left: 50%; transform: translateX(-50%);

方案三:使用flexbox布局实现

给父元素设置display: flex; justify-content: center;

二、垂直居中

行内元素:只需设置子元素行高和父元素高度相等多行行内元素:给父元素设置display: table;子元素设置display: table-cell; vertical-align: middle;块级元素

方案一:使用定位

固定高度:父元素设置position: relative;子元素设置position: absolute; top: 50%; margin-top: -子元素宽度一半;不定宽度:父元素设置position: relative;子元素设置position: absolute; top: 50%; transform: translateY(-50%);

方案二:使用flexbox布局

给父元素设置display: flex; align-items: center;

三、水平垂直居中

1.已知宽高

方案一:

给父元素设置positon: relative;给子元素设置position: absolute; top: 0; bottom: 0; left: 0; right: 0; margin: auto;

方案二:

给父元素设置positon: relative;给子元素设置position: absolute; top: 50%; left: 50%; margin-left: - 子元素宽度一半; margin-top: - 子元素高度的一半;

2.未知宽高

方案一:使用定位

给父元素设置positon: relative;给子元素设置position: absolute; top: 50%; left: 50%; transform: translateX(-50%) translateY(-50%);

方案二:使用flex布局

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

本文内容由小梓整理编辑!