我已经在我的网站上创建了标题和部分。我想在该部分中居中。我使用Flexbox水平和垂直居中。在屏幕截图中,您将看到"英雄文本的一部分"应该在标题下方的部分位于标题后面。我知道我可以使用定位黑客来解决这个问题,但有更好的方法吗?
这是HTML:
<body>
<header>
<a href="#"><img src="images/lookout-logo-small.png" alt="LookOut Software Logo" id="logo"></a>
<nav class="main-nav">
<ul>
<li><a href="#">Home</a></li>
<li><a href="#">About</a></li>
<li><a href="#">Contact</a></li>
</ul>
</nav>
</header>
<section id="hero-text">
<h1>LookOut Software</h1>
<p>Made in Canada</p>
</section>
</body>
CSS:
header{
width: 100%;
background: white;
height: 4.75rem;
box-shadow: 0 0 2px rgba(6,8,8,0.15);
position: fixed;
top: 0px;
}
#logo{
margin: 1rem;
}
nav{
top: 0;
right: 0;
position: absolute;
margin: .5rem;
}
.main-nav ul{
list-style-type: none;
font-weight: bold;
}
.main-nav li{
display: inline-block;
margin: 0 .5rem;
}
.main-nav a{
text-decoration: none;
color: #3a3a3a;
font-size: 0.85rem;
}
a:hover{
text-decoration: none;
color: #FF6952;
border-bottom: 2px solid #30C0D8;
}
/* Content area */
#hero-text{
display: flex;
flex-direction: column;
justify-content: center;
align-items: center;
background-color: #FF6952;
}
答案 0 :(得分:1)
不要在导航部分使用绝对定位,而是将其从文档流中移除,请考虑将flexbox用于整个布局。
试试这个:
nav
body { display: flex; flex-direction: column; }