当我们页面布局的时候,通常需要把某一个元素居中,这一篇文章为大家介绍一下居中的几种方法,本人文笔有限,请见谅!
一.水平居中
行内元素水平居中的方法,我们使用text-align:center;
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>水平居中</title>
<style>
.box {
/* 给块元素设置宽高 */
width: 300px;
height: 50px;
background-color: orange;
/* 水平居中 */
text-align: center;
}
</style>
</head>
<body>
<div class="box">
<span>我是需要水平居中的文字</span>
</div>
</body>
</html>
块元素水平居中的方法
1.margin(外边距)的方法来做,使用margin:0 auto;
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>水平居中</title>
<style>
.box {
/* 给块元素设置宽高 */
width: 300px;
height: 50px;
background-color: orange;
margin: 0 auto;
}
</style>
</head>
<body>
<div class="box"></div>
</body>
</html>
2.使用absolute加margin-left的方法
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>水平居中</title>
<style>
.box {
/* 给加一个绝对定位 */
position: absolute;
/* 向右百分之50 */
left: 50%;
/* 外边距再减自身宽度的一半 */
margin-left: -150px;
/* 给块元素设置宽高 */
width: 300px;
height: 50px;
background-color: orange;
}
</style>
</head>
<body>
<div class="box">我是定位加margin</div>
</body>
</html>
3.使用absolute加transform
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>水平居中</title>
<style>
.box {
/* 给加一个绝对定位 */
position: absolute;
/* 向右百分之50 */
left: 50%;
/* 横向上向左移动自身宽度的一半 */
transform: translateX(-50%);
/* 给块元素设置宽高 */
width: 300px;
height: 50px;
background-color: orange;
}
</style>
</head>
<body>
<div class="box">我是定位加transform</div>
</body>
</html>
4.flex弹性盒子方法
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>水平居中</title>
<style>
.father {
width: 400px;
height: 400px;
background-color: orange;
/* 给父级开启弹性盒子 */
display: flex;
/* 主轴对齐方式 */
justify-content: center;
}
.son {
width: 200px;
height: 200px;
background-color: pink;
}
</style>
</head>
<body>
<div class="father">
<div class="son"></div>
</div>
</body>
</html>
二.垂直居中
行内元素垂直居中,使用line-height
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>垂直居中</title>
<style>
.box {
width: 300px;
height: 50px;
background-color: orange;
/* 行高等于全部高度 */
line-height: 50px;
}
</style>
</head>
<body>
<div class="box"><span>我是垂直居中</span></div>
</body>
</html>
块元素垂直居中方法:
1.使用absolute加margin-top的方法
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>垂直居中</title>
<style>
.boss {
position: relative;
width: 300px;
height: 200px;
background-color: pink;
}
.box {
/* 给加一个绝对定位 */
position: absolute;
/* 向下百分之50 */
top: 50%;
/* 外边距再减自身高度的一半 */
margin-top: -25px;
/* 给块元素设置宽高 */
width: 300px;
height: 50px;
background-color: orange;
}
</style>
</head>
<body>
<div class="boss">
<div class="box">我是定位加margin</div>
</div>
</body>
</html>
2.flex方法
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>水平居中</title>
<style>
.father {
width: 400px;
height: 400px;
background-color: orange;
/* 给父级开启弹性盒子 */
display: flex;
/* 侧轴对齐方式 */
align-items: center;
}
.son {
width: 200px;
height: 200px;
background-color: pink;
}
</style>
</head>
<body>
<div class="father">
<div class="son"></div>
</div>
</body>
</html>
3.使用absolute加transform
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>垂直居中</title>
<style>
.boss {
position: relative;
width: 300px;
height: 300px;
background-color: pink;
}
.box {
/* 给加一个绝对定位 */
position: absolute;
/* 向下百分之50 */
top: 50%;
/* 横向上向上移动自身宽度的一半 */
transform: translateY(-50%);
/* 给块元素设置宽高 */
width: 300px;
height: 50px;
background-color: orange;
}
</style>
</head>
<body>
<div class="boss">
<div class="box">我是定位加transform</div>
</div>
</body>
</html>
感谢大家的阅读,如有什么不对的地方,可以向我提出,感谢大家!