我想让一个 div 在另一个中间居中,另一个 div 在它下面居中。
I want to have one div centered inside another with another div centered below that.
这是我的 CSS 和 html:
.container {
background-image: url('./images/bg.jpg');
height: 500px;
width: 960px;
margin: auto;
}
.logo {
margin: auto;
text-align: center;
width: 960px;
height: 100px;
position: relative;
top: 200px;
}
ul {
list-style: none;
}
li {
display: inline;
}
.nav {
margin: auto;
text-align: center;
padding-right: 35px;
clear: both;
}
<div class="container">
<div class="logo">
<h1>My Page</h1>
</div>
<div class="nav">
<ul>
<li><a href="#">Home</a></li>
<li><a href="#">About</a></li>
<li><a href="#">Contact</a></li>
</ul>
</div>
我不认为我定位 <div class="logo"></div>
的方式可能是正确的,但我不确定如何在 div 中居中放置内容,而且我发现的任何解决方案似乎都会影响<div class="nav"></div>
.
的定位
所以这个问题有两个方面 - 如何将 <div class="logo"></div>
置于 <div class="container"></div>
的中心,然后如何将 <div class="nav"></div>
置于 <div class="logo"></div>
下方?
感谢您的帮助。
如果您想相对定位两个 div,将相对定位的项目在其父容器中居中的一种简单方法是使用 left: 50%, transform: translateX(-50%)。
.container {
background-image: url('./images/bg.jpg');
height: 500px;
width: 960px;
margin: auto;
}
.logo {
margin: auto;
text-align: center;
width: 960px;
height: 100px;
position: relative;
left: 50%;
transform: translateX(-50%);
}
ul {
list-style: none;
}
li {
display: inline;
}
.nav {
margin: auto;
position: relative;
text-align: center;
padding-right: 35px;
clear: both;
left: 50%;
transform: translateX(-50%);
}
<div class="container">
<div class="logo">
<h1>My Page</h1>
</div>
<div class="nav">
<ul>
<li><a href="#">Home</a></li>
<li><a href="#">About</a></li>
<li><a href="#">Contact</a></li>
</ul>
</div>
您可以使用 flexbox
来做到这一点。
https://jsfiddle.net/bjdvz1km/
.container {
background-image: url('./images/bg.jpg');
height: 500px;
width: 960px;
text-align: center;
margin: auto;
display: flex;
flex-wrap: wrap;
align-content: center;
}
.logo {
margin: auto;
width: 960px;
height: 100px;
}
ul {
list-style: none;
}
li {
display: inline;
}
.nav {
margin: auto;
padding-right: 35px;
clear: both;
}
body {
margin: 0;
}
<div class="container">
<div class="logo">
<h1>My Page</h1>
</div>
<div class="nav">
<ul>
<li><a href="#">Home</a></li>
<li><a href="#">About</a></li>
<li><a href="#">Contact</a></li>
</ul>
</div>
</div>
.container {
background-image: url('./images/bg.jpg');
height: 500px;
width: 960px;
margin: auto;
}
.logo {
margin: auto;
text-align: center;
width: 960px;
height: 100px;
position: absolute;
top: 40%;
dispaly: block;
}
ul {
list-style: none;
padding: 0px;
margin: 0px;
}
li {
display: inline;
}
<div class="container">
<div class="logo">
<h1>My Page</h1>
<ul>
<li><a href="#">Home</a></li>
<li><a href="#">About</a></li>
<li><a href="#">Contact</a></li>
</ul>
</div>
</div>
这是你想要的吗?
这是我的 CSS 和 html:
.container {
background-image: url('./images/bg.jpg');
height: 500px;
width: 960px;
margin: auto;
}
.logo {
margin: auto;
text-align: center;
width: 960px;
height: 100px;
position: relative;
top: 200px;
}
ul {
list-style: none;
}
li {
display: inline;
}
.nav {
margin: auto;
text-align: center;
padding-right: 35px;
clear: both;
}
<div class="container">
<div class="logo">
<h1>My Page</h1>
</div>
<div class="nav">
<ul>
<li><a href="#">Home</a></li>
<li><a href="#">About</a></li>
<li><a href="#">Contact</a></li>
</ul>
</div>
我不认为我定位 <div class="logo"></div>
的方式可能是正确的,但我不确定如何在 div 中居中放置内容,而且我发现的任何解决方案似乎都会影响<div class="nav"></div>
.
所以这个问题有两个方面 - 如何将 <div class="logo"></div>
置于 <div class="container"></div>
的中心,然后如何将 <div class="nav"></div>
置于 <div class="logo"></div>
下方?
感谢您的帮助。
如果您想相对定位两个 div,将相对定位的项目在其父容器中居中的一种简单方法是使用 left: 50%, transform: translateX(-50%)。
.container {
background-image: url('./images/bg.jpg');
height: 500px;
width: 960px;
margin: auto;
}
.logo {
margin: auto;
text-align: center;
width: 960px;
height: 100px;
position: relative;
left: 50%;
transform: translateX(-50%);
}
ul {
list-style: none;
}
li {
display: inline;
}
.nav {
margin: auto;
position: relative;
text-align: center;
padding-right: 35px;
clear: both;
left: 50%;
transform: translateX(-50%);
}
<div class="container">
<div class="logo">
<h1>My Page</h1>
</div>
<div class="nav">
<ul>
<li><a href="#">Home</a></li>
<li><a href="#">About</a></li>
<li><a href="#">Contact</a></li>
</ul>
</div>
您可以使用 flexbox
来做到这一点。
https://jsfiddle.net/bjdvz1km/
.container {
background-image: url('./images/bg.jpg');
height: 500px;
width: 960px;
text-align: center;
margin: auto;
display: flex;
flex-wrap: wrap;
align-content: center;
}
.logo {
margin: auto;
width: 960px;
height: 100px;
}
ul {
list-style: none;
}
li {
display: inline;
}
.nav {
margin: auto;
padding-right: 35px;
clear: both;
}
body {
margin: 0;
}
<div class="container">
<div class="logo">
<h1>My Page</h1>
</div>
<div class="nav">
<ul>
<li><a href="#">Home</a></li>
<li><a href="#">About</a></li>
<li><a href="#">Contact</a></li>
</ul>
</div>
</div>
.container {
background-image: url('./images/bg.jpg');
height: 500px;
width: 960px;
margin: auto;
}
.logo {
margin: auto;
text-align: center;
width: 960px;
height: 100px;
position: absolute;
top: 40%;
dispaly: block;
}
ul {
list-style: none;
padding: 0px;
margin: 0px;
}
li {
display: inline;
}
<div class="container">
<div class="logo">
<h1>My Page</h1>
<ul>
<li><a href="#">Home</a></li>
<li><a href="#">About</a></li>
<li><a href="#">Contact</a></li>
</ul>
</div>
</div>
这是你想要的吗?