CSS居中方法
收集常见的元素居中方法,正在找,或许还有
左右,上下,上下左右
上下
line-height
设置元素的 height和line-height 相等,内容可以得到居中;其实在文本中,值设置 line-height,不设置 height就可以实现居中了。
- 使用 line-height 实现的垂直居中是近似的居中,上下会差 1px 左右,所以平时也看不出来。
但是,在多行文本中,仅仅使用 line-height 还达不到垂直居中的效果,要加上vertical-align: middle;
1 | .box { |
writing-mode
设置元素的 writing-mode 为 vertical-lr,然后设置 text-align: center;
margin + transform
1 | .father { |
左右
当元素为 display: inline; display: inline-block; 的时候,父容器设置 text-align: center; 就可以左右置中;
当元素为 display: block; 的时候,元素自身的 margin-left 和 margin-right 设置为 auto,就可以左右置中;
上下左右
position: absolute;
相对于自身设置
1 | position: absolute; |
- 设置完 top 和 left 后,元素的左上方会在画布的中心点,然后使用 transform 移动元素自身的一半。
- 也可设置
right和bottom,这时 transform 就不用写负数了。
position: absolute; 第 2 种
1 | .father { |
flexbox
相对于父级设置
1 | min-height: 100vh; |
- 100vh 为当前窗口高度。
display: table-cell;
1 | body{ |
display: grid;
1 | .father { |
知道元素尺寸的话
1 | .box { |




