<main> 部分内容水平和垂直居中,而不是整页
Center Content horizontally and vertically in <main> Part not on Full Page
所以我已经在 <header>
部分创建了一个导航栏,并在我的网站上创建了一个页脚。我的 <main>
部分也有一个 <div class="UUDiv">
,里面有一个段落和一个标题。现在,我想将 <div class="UUDiv">
水平和垂直居中,但仅限于主要部分。使用以下代码,我只将它置于整个页面的中心,所以我的 Div 与我的页脚重叠......这是我的代码:\
html {
height: 100%;
}
body {
margin: 0;
min-height: 100%;
display: flex;
flex-direction: column;
}
.UUDiv {
text-align: center;
position: absolute;
right: 50%;
bottom: 50%;
transform: translate(50%, 50%);
}
<header class="RestHeader">
<nav class="navigation">Navigation...with
<ul>
<li> List </li>
</ul>etc.</nav>
</header>
<main>
<div class="UUDiv">
<h1>Headline</h1>
<p>Text</p>
</div>
</main>
<footer>
<div class="footer">Footer...with
<ul>
<li> Another List </li>
</ul> etc.</div>
</footer>
感谢您的帮助!
试试下面的代码片段。
html {
min-height: 100%;
}
body {
margin: 0;
min-height: 100%;
display: flex;
flex-direction: column;
}
.UUDiv {
text-align: center;
display:flex;
justify-content:center;
align-items:center;
}
ul{
display:flex;
list-style:none;
}
ul li{
margin-left:1rem;
}
<header class="RestHeader">
<nav class="navigation">Navigation...with
<ul>
<li> List </li>
<li> List </li>
</ul>
</nav>
</header>
<main>
<div class="UUDiv">
<h1>Headline</h1>
<p>Text</p>
</div>
</main>
<footer>
<div class="footer">Footer...with
<ul>
<li> Another List </li>
<li> Another List </li>
</ul>
</div>
</footer>
您可以使用 flexbox 代替 div 绝对定位。
给你的 <main>
一个 display: flex
并将它的内容居中,如下所示:
main {
display: flex;
align-items: center;
justify-content: center;
}
.UUDiv {
text-align: center;
}
然后它将在您的 <main>
内居中。
完整示例:
html {
height: 100%;
}
body {
margin: 0;
min-height: 100%;
display: flex;
flex-direction: column;
}
main {
display:flex;
align-items:center;
justify-content:center;
}
.UUDiv {
text-align: center;
}
<header class="RestHeader">
<nav class="navigation">Navigation...with
<ul>
<li> List </li>
</ul>etc.</nav>
</header>
<main>
<div class="UUDiv">
<h1>Headline</h1>
<p>Text</p>
</div>
</main>
<footer>
<div class="footer">Footer...with
<ul>
<li> Another List </li>
</ul> etc.</div>
</footer>
所以我已经在 <header>
部分创建了一个导航栏,并在我的网站上创建了一个页脚。我的 <main>
部分也有一个 <div class="UUDiv">
,里面有一个段落和一个标题。现在,我想将 <div class="UUDiv">
水平和垂直居中,但仅限于主要部分。使用以下代码,我只将它置于整个页面的中心,所以我的 Div 与我的页脚重叠......这是我的代码:\
html {
height: 100%;
}
body {
margin: 0;
min-height: 100%;
display: flex;
flex-direction: column;
}
.UUDiv {
text-align: center;
position: absolute;
right: 50%;
bottom: 50%;
transform: translate(50%, 50%);
}
<header class="RestHeader">
<nav class="navigation">Navigation...with
<ul>
<li> List </li>
</ul>etc.</nav>
</header>
<main>
<div class="UUDiv">
<h1>Headline</h1>
<p>Text</p>
</div>
</main>
<footer>
<div class="footer">Footer...with
<ul>
<li> Another List </li>
</ul> etc.</div>
</footer>
感谢您的帮助!
试试下面的代码片段。
html {
min-height: 100%;
}
body {
margin: 0;
min-height: 100%;
display: flex;
flex-direction: column;
}
.UUDiv {
text-align: center;
display:flex;
justify-content:center;
align-items:center;
}
ul{
display:flex;
list-style:none;
}
ul li{
margin-left:1rem;
}
<header class="RestHeader">
<nav class="navigation">Navigation...with
<ul>
<li> List </li>
<li> List </li>
</ul>
</nav>
</header>
<main>
<div class="UUDiv">
<h1>Headline</h1>
<p>Text</p>
</div>
</main>
<footer>
<div class="footer">Footer...with
<ul>
<li> Another List </li>
<li> Another List </li>
</ul>
</div>
</footer>
您可以使用 flexbox 代替 div 绝对定位。
给你的 <main>
一个 display: flex
并将它的内容居中,如下所示:
main {
display: flex;
align-items: center;
justify-content: center;
}
.UUDiv {
text-align: center;
}
然后它将在您的 <main>
内居中。
完整示例:
html {
height: 100%;
}
body {
margin: 0;
min-height: 100%;
display: flex;
flex-direction: column;
}
main {
display:flex;
align-items:center;
justify-content:center;
}
.UUDiv {
text-align: center;
}
<header class="RestHeader">
<nav class="navigation">Navigation...with
<ul>
<li> List </li>
</ul>etc.</nav>
</header>
<main>
<div class="UUDiv">
<h1>Headline</h1>
<p>Text</p>
</div>
</main>
<footer>
<div class="footer">Footer...with
<ul>
<li> Another List </li>
</ul> etc.</div>
</footer>