CSS水平垂直居中
在实际前端开发中,我们会遇到让一些元素居中的情况,如水平居中、垂直居中或者水平垂直居中等等。CSS的表示方法有很多,现在小编在这里总结一下,以便开发的时候可以快速应用。下面将介绍文字、图片和行内块元素的水平垂直居中的css样式写法。
1. 文字水平居中
1.1 text-align:center; 和line-height: 元素的高度
文字水平居中,实现方法是给其父元素添加css:text-align : center;
文字垂直居中,实现方法是给父元素添加css: line-height:所在父元素的高度,如父元素的 height:200px,则 line-height:200px。
文字水平垂直居中,则上述两个方法都使用即可实现。
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
<style>
body,#app{
text-align: center; //文字水平居中
}
#app{
width: 200px;
height: 200px;
line-height: 200px;
background-color: brown;
}
</style>
</head>
<body>
<div id="app">
文字水平垂直居中
</div>
</body>
</html>
1.2 diaplay:table-cell;和vertical-align:middle;
此种方法可以让文字垂直居中,具体实现是给文字所在的父元素设置css样式: display:table-cell;vertical-align:middle;这样文字就会垂直居中
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
<style>
#app{
width: 300px;
height: 300px;
background-color:darkgray;
display: table-cell;
vertical-align: middle;
}
</style>
</head>
<body>
<div id="app">
水平垂直居中
<!--<img src="./image0.png" width="198px" height="198px" alt="">-->
</div>
</body>
</html>
效果图
2.图片元素和行内块级元素的水平和垂直居中
图片元素和行内块级样式的水平和垂直居中css设置方法是一样的。为了简便,以下就以图片元素为例来展示效果。
2.1 text-align:center
给图片img元素所在的父元素设置css:text-align:center; ,即可实现图片水平居中。
代码如下:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
<style>
#app{
width: 300px;
height: 300px;
background-color:darkgray;
text-align: center;
}
</style>
</head>
<body>
<div id="app">
<img src="./image0.png" alt="">
</div>
</body>
</html>
效果图如下:
2.2 display:table-cell; 和 vertical-align:center;
给图片元素所在的父元素,设置样式: display:table-cell;vertical-align:center;,即可 实现图片在父元素内垂直居中。
代码如下:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
<style>
#app{
width: 300px;
height: 300px;
background-color:darkgray;
display: table-cell;
vertical-align: middle;
}
</style>
</head>
<body>
<div id="app">
<img src="./image0.png" alt="">
</div>
</body>
</html>
效果图如下:
2.3 position/left/margin-left
该方法可以实现图片的水平居中,具体方法是:给图片所在的父元素设置样式: **position:relative; ** 给图片元素设置样式: **position:absolute;left:50%;margin-left:图片元素宽度的一半的负值。**
代码如下:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
<style>
#app{
width: 300px;
height: 300px;
background-color:darkgray;
position: relative;
}
img{
position: absolute;
left: 50%;
margin-left: -99px;
}
</style>
</head>
<body>
<div id="app">
<img src="./image0.png" width="198px" height="198px" alt="">
</div>
</body>
</html>
效果如下:
2.4 position/left/transform
该方法可以实现图片在父元素中水平居中。
实现方法是:给图片所咋的父元素设置css: ** position:relative;**,给图片元素设置: **position:absolute;left:50%; transform:translate(-50%,0)。**代码如下:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
<style>
#app{
width: 300px;
height: 300px;
background-color:darkgray;
position: relative;
}
img{
position: absolute;
left: 50%;
transform:translate(-50%,0);
}
</style>
</head>
<body>
<div id="app">
<img src="./image0.png" width="198px" height="198px" alt="">
</div>
</body>
</html>
效果图如下:
2.5 display/justify-content
该方法可以实现图片的水平居中,具体实现方法是:给图片所在的父元素设置样式:**display:flex;和justify-content:center;**
见代码
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
<style>
#app{
width: 300px;
height: 300px;
background-color:darkgray;
display: flex;
justify-content: center;
}
</style>
</head>
<body>
<div id="app">
<img src="./image0.png" width="198px" height="198px" alt="">
效果图见2.4
2.6 display:flex;和 align-items:center;
该方法可以实现图片元素的垂直居中,具体方法是:给图片所在的父元素设置: **display:flex;align-items:center;** 。2.5和2.6方法结合,可以实现图片的水平和垂直居中。
代码如下:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
<style>
#app{
width: 300px;
height: 300px;
background-color:darkgray;
display: flex;
align-items: center;
justify-content: center;
}
</style>
</head>
<body>
<div id="app">
<img src="./image0.png" width="198px" height="198px" alt="">
</div>
</body>
</html>
2.7 display: -webkit-box;-webkit-box-align: center;margin:0 auto;
该方法可以实现元素的水平居中,具体给元素设置样式: **display: -webkit-box; -webkit-box-align: center;margin:0 auto;**
代码见下图:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
<style>
#app{
width: 300px;
height: 300px;
background-color:darkgray;
}
img{
width: 198px;
height: 198px;
display: -webkit-box;
-webkit-box-align: center;
margin: 0 auto;
}
</style>
</head>
<body>
<div id="app">
<img src="./image0.png" width="198px" height="198px" alt="">
</div>
</body>
</html>
效果图:
还没有评论,来说两句吧...