繁体   English   中英

如何删除水平固定导航栏中列表项之间的“间隙”

[英]How can I remove the “gaps” between my list items in a horizontal fixed nav bar

所以我创建了一个导航栏,我已经开始使用水平导航了。 但是我在导航栏之间有这些“间隙”,如下图所示,但我仍然可以在这些间隙之间点击。

PIC1

这是JSFiddle(SCSS无法工作所以我使用编译的CSS):

http://codepen.io/anon/pen/JRRowb

这是我正在使用的导航代码,变量只是我正在使用的颜色:

HTML:

<nav id="nav">
    <span class="brand">Brand Name</span>
    <ul>
        <li><a href="about.html">About <i class="fa fa-angle-down"></i></a></li>
        <li><a href="portfolio.html">Portfolio</a></li>
        <li><a href="contact.html">Contact Us</a></li>
    </ul>
    <a class="nav-bars"><i class="fa fa-bars"></i></a>
</nav>

SCSS(Sass):

/*----------------
    Navbar Styles
  ----------------*/
.nav_fixed {
    position: fixed;
    top: -($info_bar_height / 4);
    z-index: 100;
}
nav {
    height: $navbar_height;
    width: 100%;
    margin: 0;

    color: $navbar_color;
    background: $navbar_background_color;
    font-weight: bold;
    letter-spacing: 0.025em;
    line-height: $navbar_height;
    text-transform: uppercase;

    -webkit-box-shadow: 0 8px 6px -6px $navbar_shadow_color;
    -moz-box-shadow: 0 8px 6px -6px $navbar_shadow_color;
    box-shadow: 0 8px 6px -6px $navbar_shadow_color;

    .brand {
        float: left;
        margin-left: $navbar_padding;
        font-size: 20px;
    }

    ul {
        margin: 0;
        padding: 0;
        display: flex;
        float: right;
        margin-right: $navbar_padding - 20px;

        li {
            display: inline-block;
            list-style: none;
            cursor: pointer;

            a {
                color: $navbar_color;
                text-decoration: none;
                padding: ($navbar_height / 4) 20px;
                margin: 10px 0;

                @include transition(all .175s ease-in-out);
            }
            a.nav-bars {
                display: none;
            }
        }
        li:hover {
            a {
                color: $link_hover_color;
            }
        }
    }

    a.nav-bars {
        display: none;
    }
}

/*--------------------
    Responsive Styles
  --------------------*/

@media only screen and (min-width: 320px) and (max-width: 768px) {
    .info_bar {
        display: none;
    }

    nav {
        position: fixed;
        z-index: 100;

        -webkit-box-shadow: none;
        -moz-box-shadow: none;
        box-shadow: none;

        ul {
            position: absolute;
            top: $navbar_height + ($navbar_padding / 4) - 10px;
            display: none;
            height: 100%;
            width: 100%;
            z-index: 90;
        }
        a.nav-bars {
            margin: 0;
            padding: 0;
            display: inline-block;
            text-decoration: none;
            float: right;
            margin-right: $navbar_padding;
            font-size: 24px;
            cursor: pointer;

            @include transition(all .375s ease-in-out);
        }

        li {
            display: block;
            width: 100%;
            padding: 0;
            margin: 0;

            a {
                position: relative;
                display: block;
                margin: 0;
                padding: 0;

                color: $navbar_color;
                background: $navbar_background_color;
                font-weight: bold;
                letter-spacing: 0.025em;
                line-height: 40px;
                border-bottom: 1px solid darken($navbar_background_color, 5);
                border-top: 1px solid darken($navbar_background_color, 5);
            }
        }
    }
}

.rotate {
    @include transform(rotate(90deg));
}

JS:

$(function() {
    var nav = $('nav');
    var info_bar_height = $('#info_bar').height();

    $(window).scroll(function() {
        if($(this).scrollTop() > info_bar_height) {
            nav.addClass('nav_fixed');
        } else {
            nav.removeClass('nav_fixed');
        }
    });

    var bars = $('.nav-bars');
    var menu = $('nav ul');
    var menuHeight = menu.height();

    $(bars).on('click', function(e) {
        e.preventDefault();
        bars.toggleClass('rotate');
        menu.slideToggle(375, "linear");
    });
});

这应该可以解决问题,你可以在下面更改CSS

更新了codepen: http ://codepen.io/anon/pen/QKKbyZ

nav ul li {
  /* display: inline-block;       remove, not needed as you use flex on its parent  */
  list-style: none;
  cursor: pointer; }
  nav ul li a {
    color: #444;
    text-decoration: none;
    padding: 22.5px 20px;
    /* margin: 10px 0;             remove, creates additional gaps    */

从'nav ul li'中删除边距并从'a.nav-bars'中删除display:inline-block

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM