用一段css实现盒子垂直水平居中方法(8种)-案例

Posted JackieDYH

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了用一段css实现盒子垂直水平居中方法(8种)-案例相关的知识,希望对你有一定的参考价值。

效果图 - 在线案例

css3中的属性:transform: translate(x,y)

<style>   
 .box {
      width: 100px;
      height: 100px;
      background: orange;
      position: absolute;
      left: 50%;
      top: 50%;
      transform: translate(-50%, -50%);
    }
  </style>
</head>

<body>
  <div class="box"></div>
</body>

使用flex布局

<style>
    body {
      display: flex;
      justify-content: center;
      align-items: center;
      height: 100vh;
      margin: 0;
      padding: 0;
    }
 
    .box {
      width: 100px;
      height: 100px;
      background: orange;
    }
  </style>
</head>
 
<body>
  <div class="box"></div>
</body>

使用绝对定位

加上margin-left: -(width为盒子的一半), margin-top: -(height为盒子的一半)

<style>
    .box {
      width: 100px;
      height: 100px;
      background: orange;
      position: absolute;
      left: 50%;
      top: 50%;
      margin-left: -50px;
      margin-top: -50px;
    }
  </style>
</head>

<body>
  <div class="box"></div>
</body>

其他8种方式-在线案例

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title>元素垂直水平居中</title>
		<style type="text/css">
			body {
				background-color: #6ed0ff;
			}

			.father {
				background-color: #be33ec;
				border-radius: 20px;
				box-shadow: 0 0 15px rgb(0, 0, 0);
				margin: 100px auto;
				width: 300px;
				height: 300px;
			}

			.son {
				background-color: #fcff00;
				border-radius: 20px;
				box-shadow: 0 0 10px rgb(0, 0, 0);
				width: 100px;
				height: 100px;
			}
		</style>
	</head>
	<body>
		<div class="father">
			<div class="son"></div>
		</div>
	</body>
</html>

实现子盒子相对于父盒子垂直居中效果

grid

.father {
    display: grid;
}
 
.son {
    align-self: center;
    justify-self: center;
}

absolute +(-margin)

.father {
    position: relative;
}
 
.son {
    position: absolute;
    left: 50%;
    top: 50%;
    margin-left: -50px;
    margin-top: -50px;
}

absolute + transform

.father {
    position: relative;
}
 
.son {
    position: absolute;
    left: 50%;
    top: 50%;
    transform: translate(-50%, -50%);
}

absolute + margin: auto

.father {
    position: relative;
}
 
.son {
    position: absolute;
    left: 0;
    right: 0;
    top: 0;
    bottom: 0;
    margin: auto;
}

flex

.father {
    display: flex;
    justify-content: center;
    align-items: center;
}

margin+transfrom

.father {
    overflow: hidden;
}
 
.son {
    margin: 50% auto;
    transform: translateY(-50%);
}

table-cell

.father {
    display: table-cell;
    text-align: center;
    vertical-align: middle;
}
 
.son {
    display: inline-block;
}

inline-block + vertical-align

.father {
    text-align: center;
    line-height: 300px;
}
 
.son {
    display: inline-block;
    vertical-align: middle;
}

 

以上是关于用一段css实现盒子垂直水平居中方法(8种)-案例的主要内容,如果未能解决你的问题,请参考以下文章

CSS一个盒子在另一个盒子水平垂直居中

实现没有宽高的盒子水平垂直居中

怎样让div的内容水平垂直居中

如何让DIV里面的DIV水平垂直居中

盒子在浏览器中水平垂直居中

如何使用css让一个已知宽高的盒子垂直水平居中?