CSS子元素在父元素中水平垂直居中的几种方法

CSS子元素在父元素中水平垂直居中的几种方法

1. 水平居中(margin: auto;)子父元素宽度固定,子元素上设置 margin: auto; 子元素不能设置浮动,否则居中失效。

#div1{

width: 300px;

height: 300px;

border: 1px solid red;

}

#div1 p {

width: 100px;

height: 100px;

background-color: green;

/*float: left; !*如果设置了浮动,则自动居中就会失效。*!*/

margin: 0 auto;

}

2. 水平居中,子父元素宽度固定,父元素设置 text-align: center; 子元素设置 display: inline-block; 子元素不能设置浮动,否则居中失效。 如果将元素设置为 inline , 则元素的宽高设置会失效,这就需要内容来撑起盒子

#div2 {

width: 300px;

height: 300px;

border: 1px solid red;

/*position: relative;*/

text-align: center;

}

#div2 p{

width: 100px;

height: 100px;

background-color: green;

margin: 0;

/*float: left; !*如果设置了浮动,则自动居中就会失效。*!*/

display: inline-block;

/*display: inline;*/

/*display: inline-flex;*/

}

其他内容

其他内容

1. 水平垂直居中,子元素相对于父元素绝对定位, 子元素top,left设置为50%,子元素margin的top,left减去自身高,宽的一半。

#div3 {

width: 300px;

height: 300px;

border: 1px solid red;

position: relative;

}

#div3 p {

width: 100px;

height: 100px;

background-color: green;

/*margin-top: 10%; !*百分比相对于父元素*!*/

/*padding-top: 10%; !*百分比相对于父元素*!*/

position: absolute;

top: 50%;

left: 50%;

margin-top: -50px;

margin-left: -50px;

}

其他内容

2. 水平垂直居中,子元素相对于父元素绝对定位, 将子元素的top,right,bottom,left均设为0,然后设置子元素 margin: auto;

#div4{

width: 300px;

height: 300px;

border: 1px solid red;

position: relative;

}

#div4 p{

width: 100px;

height: 100px;

background-color: green;

position: absolute;

top: 0;

left: 0;

bottom: 0;

right: 0;

margin: auto;

}

其他内容

3. 水平垂直居中,父元素设置 display: table-cell; vertical-align: middle; 子元素设置 margin: auto; 这种方式是让所有的子元素作为一个整体垂直居中,并不能单独指定某一个子元素居中

#div5{

width: 300px;

height: 300px;

border: 1px solid red;

display: table-cell;

vertical-align: middle;

}

#div5 p{

width: 100px;

height: 100px;

background-color: green;

margin: auto;

}

4. 水平垂直居中,子元素相对定位,top,let设为50%,transform: translate(-50%, -50%); 这种方式并不会释放子元素在文档中所占的位置。

#div6{

width: 300px;

height: 300px;

border: 1px solid red;

}

#div6 p {

width: 100px;

height: 100px;

background-color: green;

margin: 0;

position: relative;

top: 50%;

left: 50%;

transform: translate(-50%, -50%);

}

其他内容

5. 水平垂直居中,子元素相对于父元素绝对定位, 子元素top,let设为50%,transform: translate(-50%, -50%); 这种方式会释放子元素在文档中所占的位置

#div7{

width: 300px;

height: 300px;

border: 1px solid red;

position: relative;

}

#div7 p {

width: 100px;

height: 100px;

background-color: green;

margin: 0;

position: absolute;

top: 50%;

left: 50%;

transform: translate(-50%, -50%);

}

其他内容

6. 水平垂直居中,父元素设置 display: flex; justify-content: center; align-items: center; justify-content: center; 是让所有的子元素作为一个整体居中。

#div8{

width: 300px;

height: 300px;

border: 1px solid red;

display: flex;

justify-content: center;

align-items: center;

}

#div8 p{

width: 100px;

height: 100px;

background-color: green;

margin: 0;

}

相关手记

365提款一直在审核 FIFA祝贺韩国连续第11届晋级世界杯:实至名归,了不起的成就
365提款一直在审核 分享2个自动面积测算app让你轻松智能算面积
365bet手机在线 梦幻西游单机版:哪个版本最还原?深度评测!
bet体育365官网安全吗 (贝尔金插座)贝尔金插线板测评
bet体育365官网安全吗 你怎么穿过来了! 完结+番外
365bet手机在线 大夫是什么生肖 动物中的医生是什么意思?