我有一个标题,想要在其中插入徽标。除非没有其他选择,否则我不想使用引导程序。正如我所希望的那样,徽标似乎显示在导航栏的中央,但是,链接周围没有正确显示该徽标。这是我希望导航栏在定位方面的示例:ibb.co/zsGG9FY
#firstpage {
width: 100%;
height: 100%;
}
#firstpage ul {
list-style-type: none;
margin: 0;
padding: 0;
overflow: hidden;
background-color: black;
position: -webkit-sticky;
/* Safari */
position: sticky;
top: 0;
}
#firstpage li {
float: left;
}
#firstpage li a {
display: block;
color: white;
text-align: center;
padding: 33px 19px;
text-decoration: none;
font-family: Futura;
font-size: 11px;
}
#firstpage li a:hover {
color: #00CFFF;
}
#firstpage .active {
color: #00CFFF;
}
#firstpage .midlogo {
position: absolute;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
}
#firstpage .midlogo img {
width: 100%;
height: 100%;
background-color: white;
<section id="firstpage">
<ul>
<li><a class="active" href="#firstpage">HOME</a></li>
<li><a href="#how-works">HOW IT WORKS</a></li>
<li><a href="#why-us">WHY CHOOSE US</a></li>
<li class="midlogo">
<a href="#firstpage"><img src="logo.png"></a>
</li>
<li><a href="#gallery">GALLERY</a></li>
<li><a href="#services">SERVICES</a></li>
<li><a href="#contact">CONTACT US</a></li>
</ul>
</section>
答案 0 :(得分:1)
您已在float: left
标签上设置了<li>
,以使其保持在左侧位置。这应该删除。
并使用display: flex
标签上的ul
布局,您可以将所有项目居中对齐。
附带的代码段显示了您的需求。
#firstpage {
width: 100%;
height: 100%;
display: block;
margin: 0 auto;
}
#firstpage ul {
display: flex;
justify-content: center;
align-items: center;
list-style-type: none;
margin: 0;
padding: 0;
overflow: hidden;
background-color: black;
position: -webkit-sticky;
/* Safari */
position: sticky;
top: 0;
}
#firstpage li a {
display: block;
color: white;
text-align: center;
padding: 33px 19px;
text-decoration: none;
font-family: Futura;
font-size: 11px;
}
#firstpage li a:hover {
color: #00CFFF;
}
#firstpage .active {
color: #00CFFF;
}
#firstpage .midlogo img {
width: 100%;
height: 100%;
background-color: white;
}
<section id="firstpage">
<ul>
<li><a class="active" href="#firstpage">HOME</a></li>
<li><a href="#how-works">HOW IT WORKS</a></li>
<li><a href="#why-us">WHY CHOOSE US</a></li>
<li class="midlogo">
<a href="#firstpage"><img src="logo.png"></a>
</li>
<li><a href="#gallery">GALLERY</a></li>
<li><a href="#services">SERVICES</a></li>
<li><a href="#contact">CONTACT US</a></li>
</ul>
</section>
答案 1 :(得分:0)
我删除了分别包含float: left
个项目的li
和position: absolute
个项目的.midlogo
的类。
您需要做的就是在flex
项内的ul
属性中调整其一维布局。
#firstpage {
width: 100%;
height: 100%;
}
#firstpage ul {
list-style-type: none;
margin: 0;
padding: 0;
overflow: hidden;
background-color: black;
position: -webkit-sticky;
/* Safari */
position: sticky;
top: 0;
/************ ADD FLEX DISPLAY ************/
display: flex;
flex-flow: row nowrap;
justify-content: space-around;
}
#firstpage li a {
display: block;
color: white;
text-align: center;
padding: 33px 19px;
text-decoration: none;
font-family: Futura;
font-size: 11px;
}
#firstpage li a:hover {
color: #00CFFF;
}
#firstpage .active {
color: #00CFFF;
}
#firstpage .midlogo img {
width: 100%;
height: 100%;
background-color: white;
}
<section id="firstpage">
<ul>
<li><a class="active" href="#firstpage">HOME</a></li>
<li><a href="#how-works">HOW IT WORKS</a></li>
<li><a href="#why-us">WHY CHOOSE US</a></li>
<li class="midlogo">
<a href="#firstpage"><img src="logo.png"></a>
</li>
<li><a href="#gallery">GALLERY</a></li>
<li><a href="#services">SERVICES</a></li>
<li><a href="#contact">CONTACT US</a></li>
</ul>
</section>
您应该阅读有关flex
属性-https://developer.mozilla.org/en-US/docs/Web/CSS/flex
答案 2 :(得分:0)
我的解决方案使用Flexbox。我已将图像替换为带有虚线边框的元素,以便可以清楚地看到它在哪里。在每个链接后面也只有一个粉红色的背景,以表明它们的宽度确实相同。
每个普通链接的宽度为100%,以迫使它们占用所有可用空间。徽标具有flex-shrink:0
,以便保留给定大小。
#firstpage ul {
list-style-type: none;
display: flex;
align-items: center;
justify-content: space-between;
margin: 0;
padding: 0;
overflow: hidden;
background-color: black;
position: -webkit-sticky;
/* Safari */
position: sticky;
top: 0;
}
#firstpage li {
width: 100%;
}
#firstpage li:nth-child(odd) {
background: pink;
}
#firstpage li a {
display: block;
text-align: center;
color: white;
padding: 33px 19px;
text-decoration: none;
font-family: Futura;
font-size: 11px;
}
#firstpage li a:hover {
color: #00CFFF;
}
#firstpage .active {
color: #00CFFF;
}
#firstpage .midlogo {
border: white dashed 3px;
width: 50px;
flex-shrink: 0;
height: 50px;
}
<section id="firstpage">
<ul>
<li><a class="active" href="#firstpage">HOME</a></li>
<li><a href="#how-works">HOW IT WORKS</a></li>
<li><a href="#why-us">WHY CHOOSE US</a></li>
<li class="midlogo">
<a href="#firstpage"></a>
</li>
<li><a href="#gallery">GALLERY</a></li>
<li><a href="#services">SERVICES</a></li>
<li><a href="#contact">CONTACT US</a></li>
</ul>
</section>