当我们页面布局的时候,通常需要把某一个元素居中,这一篇文章为大家介绍一下居中的几种方法,本人文笔有限,请见谅!
行内元素水平居中的方法,我们使用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">我是定位加margindiv>
body>
html>
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">我是定位加transformdiv>
body>
html>
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">我是定位加margindiv>
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>
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">我是定位加transformdiv>
div>
body>
html>