居中实现方式

82 阅读2分钟

一、元素的分类

1.行内元素inline

特点:

  • 宽度由其内容决定,无法通过width设置宽度,无法设置height
  • 行内元素处在同一行
  • 行高,内外边距可以设置
  • 行内元素只能包含行内元素及文本,如果包含块级元素则会换行
2.块级元素block

特点:

  • 可设置宽高
  • 块级元素占一整行
  • 块级元素可包含所有标签,但是<p>标签不能包含<div>标签,包含后,<p><div></div></p>会被浏览器编译为<p></p><div></div><p></p>

二、居中方式

1.水平居中

行内元素:设置其父级元素的text-align:center;

块级元素:设置自身元素的margin: 0 auto;块级元素需要设置width才能看到水平居中效果,因为默认占据一行。

万能方法:

1.设置父级元素的display:flex;justify-content:center;

2.设置父级元素的position:relative;自身元素设置position:absolute;left:0;right:0;margin:auto;

2.垂直居中

行内元素:设置父级元素line-height和height的值一致

万能方法:

1.设置父级元素的display:flex;flex-direction:column;justify-content:center;

2.设置父级元素的position:relative;自身元素的position:absolute;top:50%;transform:translateY(-50%);

注意:无法通过设置position:absolute;top:0;bottom:0;margin:auto;进行垂直居中

transform不会影响其他元素的位置,它只会覆盖在其他元素上层

3.水平垂直居中

万能方法:

1.设置父级元素的position:relative;自身元素的position:absolute;top:0;bottom:0;left:0;right:0;margin:auto;---固定宽高有效

注意:设置absolute后,行内元素会变成块级元素(因为会变成BFC),可设置宽高

2.设置父级元素的position:relative;自身元素的position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);---固定宽高有效

3.设置父级元素的display:flex;justify-content:center;align-items:center;

tips:

CSS居中方式总结