CSS(层叠样式表)是一种用于描述HTML或XML(包括SVG、MathML等各种XML方言)文档样式的样式表语言。在CSS中,实现字体上下居中可以通过多种方式实现,主要涉及到文本的对齐和垂直居中。
对于行内元素(如<span>
),可以使用line-height
属性来实现垂直居中。
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Inline Element Centering</title>
<style>
.center {
line-height: 100px;
height: 100px;
border: 1px solid black;
}
</style>
</head>
<body>
<span class="center">居中的文本</span>
</body>
</html>
对于块级元素(如<div>
),可以使用display: flex
结合align-items: center
来实现垂直居中。
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Block Element Centering</title>
<style>
.container {
display: flex;
align-items: center;
height: 100vh;
border: 1px solid black;
}
</style>
</head>
<body>
<div class="container">
<p>居中的文本</p>
</div>
</body>
</html>
对于需要绝对定位的元素,可以使用position: absolute
结合top: 50%
和transform: translateY(-50%)
来实现垂直居中。
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Absolute Position Centering</title>
<style>
.container {
position: relative;
height: 100vh;
border: 1px solid black;
}
.centered {
position: absolute;
top: 50%;
transform: translateY(-50%);
}
</style>
</head>
<body>
<div class="container">
<div class="centered">居中的文本</div>
</div>
</body>
</html>
line-height
无法实现块级元素的垂直居中?原因:line-height
属性主要用于行内元素或行内块元素的垂直居中,对于块级元素,它只会影响文本行的高度,而不会影响整个块级元素的垂直位置。
解决方法:对于块级元素,可以使用display: flex
结合align-items: center
,或者使用绝对定位结合transform: translateY(-50%)
来实现垂直居中。
领取专属 10元无门槛券
手把手带您无忧上云