【问题标题】:responsive center logo with menu button on right右侧带有菜单按钮的响应式中心徽标
【发布时间】:2017-04-23 08:08:26
【问题描述】:

我正在尝试实现徽标居中且菜单按钮位于右侧的外观。

这是我尝试过的。我要么将这两个项目居中,要么不居中。我能做的另一件事是让图像左对齐,菜单按钮右对齐。

目标是使图像居中并且菜单按钮右对齐

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()">&#9776;</a>
                    </div>
                </nav>
            </div>

这里是FIDDILE

【问题讨论】:

    标签: html css


    【解决方案1】:

    在您的媒体查询中使用 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;
    }
    

    fiddle

    【讨论】:

    【解决方案2】:

    有几个选择,

    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()">&#9776;</a>
                        </div>
                    </nav>
                </div>

    snippet turned into a fiddle

    【讨论】:

    • 菜单按钮似乎没有右对齐
    • @codeNinja 很好地更新坐标以将其设置在您需要的任何地方:),答案是关于将徽标设置在中心的方法。
    猜你喜欢
    • 2015-08-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-11-20
    • 2017-12-16
    • 1970-01-01
    • 1970-01-01
    • 2015-02-14
    相关资源
    最近更新 更多