响应式中心徽标右边的菜单按钮
问题描述:
我试图实现这种看中标志居中且菜单按钮位于右侧的样子。响应式中心徽标右边的菜单按钮
这是我都试过了。我要么居中或两者都没有。我能够做的另一件事是让图像左对齐,菜单按钮右对齐。
我们的目标是让图像中心和菜单按钮右对齐
HTML
.topnav {
background-repeat:no-repeat;
background-size:cover;
overflow:visible;
width: 100%;
padding-bottom: 0px;
}
.topnav nav{
padding-top: 5px;
padding-bottom: 8px;
background: -webkit-linear-gradient(left, transparent, black, black, transparent); /* For Safari 5.1 to 6.0 */
background: -o-linear-gradient(left, transparent, black,black, transparent); /* For Opera 11.1 to 12.0 */
background: -moz-linear-gradient(left, transparent, black,black, transparent); /* For Fx 3.6 to 15 */
background: linear-gradient(to right, transparent, black, black, transparent); /* Standard syntax (must be last) */
width:100%;
}
.topnav nav div{
width: 85%;
margin-left: 7.5%;
margin-right: 7.5% ;
display:flex;
align-items: center;
justify-content: center;
}
.link {
color: white;
text-decoration: none;
font-size: 11px;
font-weight: 700; /* this is futura heavy*/
width:11.25%;
letter-spacing: 2px;
word-wrap:true;
display:inline-block;
vertical-align: top;
text-align: center;
/*line-height: 5em;*/
}
.notlink {
width:30.4%;
margin-left: 1%;
margin-right: 1%;
display: inline-block;
}
.notlink img {
width: 100%;
}
.topnav nav .link:hover {
color: #008ed2;
}
.icon {
display: none;
font-size: 32px;
color: white;
text-decoration: none;
text-align: center;
line-height: 40px;
min-width: 40px;
min-height: 40px;
}
/* When the screen is less than 600 pixels wide, hide all links, except for the first one ("Home"). Show the link that contains should open and close the topnav (.icon) */
@media only screen and (max-width: 767px) {
.myTopnav a.link {display: none;}
.topnav nav div{
width: 100%;
margin-left: 0;
margin-right: 0;
position: relative;
top: 0;
left: 0;
}
.icon {
position: relative;
float: right;
display: inline-block;
}
.notlink {
width: 70%;
float: left;
}
.notlink img {
display: inline-block;
max-width:100%;
max-height:75px;
width: auto;
height: auto;
}
}
@media screen and (max-width: 767px) {
.myTopnav.responsive {position: relative;}
.myTopnav.responsive .icon {
position: absolute;
right: 0;
top: 0;
}
.myTopnav.responsive a {
float: none;
display: block;
text-align: left;
}
}
<div class="topnav">
<nav>
<div class="myTopnav" id="myTopnav">
<a class="link" href="index.html">HOME</a>
<a class="link" id ="selected" href="about.html">ABOUT</a>
<a class="link" href="expertise.html">EXPERTISE</a>
<a class="notlink" href="index.html"><img src="https://www.google.com/logos/doodles/2017/earth-day-2017-5650394117046272-s.png"></a>
<a class="link" href="industries.html">INDUSTRIES</a>
<a class="link" href="friends.html">FRIENDS OF MARY</a>
<a class="link" href="contact.html">CONTACT</a>
<a href="javascript:void(0);" class="icon" onclick="topNav()">☰</a>
</div>
</nav>
</div>
这里是FIDDILE
答
使用Flexbox的:
.icon {
display :inline-block; /*or inline works as well*/
position : absolute;
right : 0;
}
.notlink {
width: 70%;
display : flex;
align-items: center;
justify-content : center;
}
.notlink img {
/*removed display inline-block*/
max-width:100%;
max-height:75px;
width: auto;
height: auto;
}
答
有几个选项,
text-align
为标志和设置在absolute
汉堡可以很容易。
这里是一个例子。在媒体查询
/* show me center */
body {
background:linear-gradient(to left, white 50%,gray 50%);
}
/* layout */
.topnav {
background-repeat:no-repeat;
background-size:cover;
overflow:visible;
width: 100%;
padding-bottom: 0px;
}
.topnav nav{
padding-top: 5px;
padding-bottom: 8px;
background: -webkit-linear-gradient(left, transparent, black, black, transparent); /* For Safari 5.1 to 6.0 */
background: -o-linear-gradient(left, transparent, black,black, transparent); /* For Opera 11.1 to 12.0 */
background: -moz-linear-gradient(left, transparent, black,black, transparent); /* For Fx 3.6 to 15 */
background: linear-gradient(to right, transparent, black, black, transparent); /* Standard syntax (must be last) */
width:100%;
}
.topnav nav div{
width: 85%;
margin-left: 7.5%;
margin-right: 7.5% ;
display:flex;
align-items: center;
justify-content: center;
}
.link {
color: white;
text-decoration: none;
font-size: 11px;
font-weight: 700; /* this is futura heavy*/
width:11.25%;
letter-spacing: 2px;
word-wrap:true;
display:inline-block;
vertical-align: top;
text-align: center;
/*line-height: 5em;*/
}
.notlink {
width:30.4%;
margin-left: 1%;
margin-right: 1%;
display: inline-block;
}
.notlink img {
width: 100%;
}
.topnav nav .link:hover {
color: #008ed2;
}
.icon {
display: none;
font-size: 32px;
color: white;
text-decoration: none;
text-align: center;
line-height: 40px;
min-width: 40px;
min-height: 40px;
}
/* When the screen is less than 600 pixels wide, hide all links, except for the first one ("Home"). Show the link that contains should open and close the topnav (.icon) */
@media only screen and (max-width: 767px) {
.myTopnav a.link {display: none;}
/* update */
.topnav nav div{
width: 100%;
margin-left: 0;
margin-right: 0;
position: relative;
top: 0;
left: 0;
text-align:center;
}
.icon {
position: absolute;
z-index:1;
left:auto;
left:100%;
top:50%;
transform:translate(-200%,-50%);
display: inline-block;
}
/* end update */
.notlink {
}
.notlink img {
display: inline-block;
max-width:100%;
max-height:75px;
width: auto;
height: auto;
}
}
<div class="topnav">
<nav>
<div class="myTopnav" id="myTopnav">
<a class="link" href="index.html">HOME</a>
<a class="link" id ="selected" href="about.html">ABOUT</a>
<a class="link" href="expertise.html">EXPERTISE</a>
<a class="notlink" href="index.html"><img src="https://www.google.com/logos/doodles/2017/earth-day-2017-5650394117046272-s.png"></a>
<a class="link" href="industries.html">INDUSTRIES</a>
<a class="link" href="friends.html">FRIENDS OF MARY</a>
<a class="link" href="contact.html">CONTACT</a>
<a href="javascript:void(0);" class="icon" onclick="topNav()">☰</a>
</div>
</nav>
</div>
+0
菜单按钮不会显示为右对齐 – codeNinja
+0
@codeNinja以及更新协调来设置它,无论你需要它:),答案是关于一个方法来设置标志在中心。 –
这使徽标居中,但菜单按钮未对齐。 – codeNinja
好吧,得到的图像是对齐的,但问题与实际显示菜单现在.... https://jsfiddle.net/gyexzhao/8/ – codeNinja
好吧,但这是其他问题作为您的初始职位 –