gpt4 book ai didi

CSS 垂直对齐

转载 作者:行者123 更新时间:2023-11-28 04:32:11 25 4
gpt4 key购买 nike

我正在学习 CSS。

作为一种实践,我正在尝试创建一个简单的 html5 模板,其中包含页眉、部分、页脚、旁边、导航标签 - 在正确的位置。在每个标签区域,我将标签名称放在不同的背景和字体颜色中。问题是,我无法将标记文本垂直对齐到中间。我尝试创建一个内部元素 - 跨度,并将其设置为:

span {
height:100px;
line-height:100px;
vertical-align:middle;
}

或者像这样:

span {
height:100%;
line-height:100%;
vertical-align:middle;
}

但当浏览器处于特定大小时,它只会将文本准确地设置在元素的垂直中间。每次更改都会更改文本的位置。

这是完整的代码:

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8" />
<title></title>
<link href="style.css" rel="stylesheet" />
<script>

</script>

<style>
body,html{
height:100%;
width:100%;
}

header{
text-align:center;
color:blue;
background:violet;
height:15%;
}

aside{
text-align:center;
float:left;
width:20%;
height:100%;
display:inline-block;
color:red;
background:lime;
}

section{
text-align:center;
float:left;
width:60%;
height:100%;
display:inline-block;
color:pink;
background:tan;
}

nav{
text-align:center;
float:left;
width:20%;
height:100%;
display:inline-block;
color:cyan;
background:orange;
}

footer{
text-align:center;
color:gold;
height:15%;
background:yellow;
}

span {
height:100%;
line-height:100%;
vertical-align:middle;
}

#center-page{
height:70%;
font-size:150%;
}
</style>

</head>
<body>
<header>
<span>header</span>
</header>

<div id="center-page">
<aside>
<span>aside</span>
</aside>
<section>
<span>section</span>
</section>
<nav>
<span>nav</span>
</nav>
</div>
<footer>
<span>footer</span>
</footer>
</body>
</html>

谢谢!

最佳答案

你可以试试 flexbox:

header, aside, section, nav, footer {
display: flex; /* Magic begins */
justify-content: center; /* Center horizontally */
align-items: center; /* Center vertically */
min-width: 0; /* Ignore the width of the content */
}

body, html {
height: 100%;
margin: 0;
}
header, aside, section, nav, footer {
display: flex;
justify-content: center;
align-items: center;
min-width: 0;
}
header {
color: blue;
background: violet;
height: 15%;
}
#center-page {
display: flex;
}
aside {
flex: 2;
color: red;
background: lime;
}
section {
flex: 6;
color: pink;
background: tan;
}
nav {
flex: 2;
color: cyan;
background: orange;
}
footer {
color: gold;
height: 15%;
background: yellow;
}
#center-page {
height: 70%;
font-size: 150%;
}
<header>header</header>
<div id="center-page">
<aside>aside</aside>
<section>section</section>
<nav>nav</nav>
</div>
<footer>footer</footer>

关于CSS 垂直对齐,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30959571/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com