Search code examples
htmlcssbootstrap-4navbarpure-css

Bootstrap navbar + purecss menu misalignment


I have a bootstrap site where I'm using purecss for a dropdown menu and I wrapped it in bootstrap navbar to make it a sticky navbar. When hovering the dropdown, there is a misalignment. How to correct it?

.navbar {
    position: fixed;
    left: 0;
    right: 0;
    top: 0;
    z-index: 1000;
    width: 100%;
    text-align: right;
}
<link href="https://unpkg.com/purecss@1.0.1/build/pure-min.css" rel="stylesheet"/>
<link href="https://bootswatch.com/4/darkly/bootstrap.min.css" rel="stylesheet"/>
<body>
<nav class="navbar navbar-expand-lg navbar-light bg-light">
            <div class="pure-u-1 pure-u-md-1-3">
                <div class="pure-menu pure-menu-horizontal">
                    <ul class="pure-menu-list">
                        <li class="pure-menu-item pure-menu-selected"><a href="#" class="pure-menu-link">Home</a></li>
                        <li class="pure-menu-item pure-menu-has-children pure-menu-allow-hover">
                            <a href="#" id="menuLink1" class="pure-menu-link">Main</a>
                            <ul class="pure-menu-children">
                                <li class="pure-menu-item"><a href="#" class="pure-menu-link">page 1</a></li>
                                <li class="pure-menu-item"><a href="#" class="pure-menu-link">page 2</a></li>
                                <li class="pure-menu-item"><a href="#" class="pure-menu-link">page 3</a></li>
                            </ul>
                        </li>
                    </ul>
                </div>
            </div>
        </nav>
</body>

screenshot


Solution

  • You can add width: 100%; to .pure-menu-children ul and it will expand full width.

    .pure-menu-horizontal .pure-menu-children {
       width: 100%;
    }