您现在的位置是:首页 > 技术教程 正文

CSS盒子居中的6种方法!

admin 阅读: 2024-04-01
后台-插件-广告管理-内容页头部广告(手机)

大家好, 我是'菜鸟',今天给大家带来几种css盒子居中的方法! 

1.flex布局设置居中

常见的一种方式就是使用flex布局设置居中。

利用弹性布局(flex),实现水平居中,其中justify-content 用于设置弹性盒子元素在主轴(横轴)方向上的对齐方式

给容器设置:

  • display: flex;写在父元素上这就是定义了一个伸缩容器

  • justify-content 主轴对齐方式,默认是横轴

  • align-items 纵轴对齐方式,默认是纵轴

优点: 简单、方便、快速,三行代码搞定。

  1. <style>
  2. .box {
  3. width: 200px;
  4. height: 200px;
  5. border: 1px solid;
  6. display: flex;
  7. align-items: center; // 纵轴对齐方式,默认是纵轴 子元素垂直居中
  8. justify-content: center; //纵轴对齐方式,默认是纵轴
  9. }
  10. .one {
  11. background: red;
  12. }
  13. style>
  14. <div class="box">
  15. <div class="one">水平垂直居中div>
  16. div>

运行后:

 2.flex-给子项设置

  1. <style>
  2. .box {
  3. width: 200px;
  4. height: 200px;
  5. border: 1px solid;
  6. display: flex;
  7. }
  8. .child {
  9. background: red;
  10. margin: auto; // 水平垂直居中
  11. }
  12. style>
  13. <div class="box">
  14. <div class="child">水平垂直居中div>
  15. div>

运行后:

 3.定位:子绝父相

使用子绝父相的方式实现水平垂直居中。父元素设置position: relative。子元素设置 position: absolute; left: 50%; top: 50%; transfrom: translate(-50%, -50%);

  1. <style>
  2. .box {
  3. width: 200px;
  4. height: 200px;
  5. border: 1px solid;
  6. position: relative;
  7. }
  8. .child {
  9. position: absolute;
  10. left: 50%;
  11. top: 50%;
  12. transform: translate(-50%, -50%);
  13. background: red;
  14. }
  15. style>
  16. <div class="box">
  17. <div class="child">水平垂直居中div>
  18. div>

运行后:

 4.tabel-cell实现垂直居中

css新增的table属性,可以让我们把普通元素,变为table元素的现实效果,通过这个特性也可以实现水平垂直居中

而且tabel单元格中的内容天然就是垂直居中的,只要添加一个水平居中属性就好了

  • 使用tabel-cell实现垂直居中,容器设置 display: table-cell;;

  • vertical-align: middle属性设置元素的垂直对齐方式

  • 子元素如果是块级元素,直接使用左右margin:auto实现水平居中。如果是行内元素,给容器设置text-align: center

利用 text-align: center 可以实现在块级元素内部的内联元素水平居中。此方法对内联元素inline, 内联块inline-block, 内联表inline-table, inline-flex元素水平居中都有效

  1. <style>
  2. .box {
  3. width: 200px;
  4. height: 200px;
  5. border: 1px solid;
  6. display: table-cell;
  7. vertical-align: middle; // 设置元素在垂直方向上的对齐方式
  8. text-align: center;
  9. }
  10. .child {
  11. background: red;
  12. display: inline-block;
  13. }
  14. style>
  15. <div class="box">
  16. <div class="child">水平垂直居中div>
  17. div>

运行后:

 

5.给容器加个伪元素

这是一种不常用的方法实现垂直居中。

给容器加个伪元素,设置line-height等于容器的高度。给子元素设置display: inline-block;

此种方式适合给文本设置水平垂直居中

  1. <style>
  2. .box {
  3. width: 200px;
  4. height: 200px;
  5. border: 1px solid;
  6. text-align: center;
  7. }
  8. .box::after {
  9. content: "";
  10. line-height: 200px;
  11. }
  12. .child {
  13. display: inline-block;
  14. background: red;
  15. }
  16. style>
  17. <div class="box">
  18. <div class="child">水平垂直居中div>
  19. div>

运行后:

6.还有一种奇葩的方法

这个奇葩方式和第三种使用定位相似,

只不过需要给子元素设置 position: absolute; 设置固定宽度和高度;

top、left、bottom、right都设置为0; margin设置为auto;也能实现垂直水平居中

  1. <style>
  2. .box {
  3. width: 200px;
  4. height: 200px;
  5. border: 1px solid;
  6. position: relative;
  7. }
  8. .child {
  9. background: red;
  10. width: 100px;
  11. height: 40px;
  12. position: absolute;
  13. left: 0;
  14. top: 0;
  15. right: 0;
  16. bottom: 0;
  17. margin: auto;
  18. }
  19. style>
  20. <div class="box">
  21. <div class="child">水平垂直居中div>
  22. div>

运行后:

 以上就是一些我们常用的垂直居中的方法,咱们下期见!!!

标签:
声明

1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

在线投稿:投稿 站长QQ:1888636

后台-插件-广告管理-内容页尾部广告(手机)
关注我们

扫一扫关注我们,了解最新精彩内容

搜索