Search code examples
navigationnavbarcenteringfloating

Vertically fixed ,centered, navigation bar


In the web page I am re-designing, I have a side navigation bar. This bar is fixed and floats as you scroll down the page. It is transparent and follows the screen for easy navigation. It is a nav element with an id="navbar". What I need is to have this navigation bar be centered vertically on all screens. On higher resolution screens it sits high. On lower resolution screens it sits low. How do I center this bar on all screens? Here is a chunk of my code so far. I can provide more if necessary.

This is patial code for one of many pages with the navigation bar:

<div id="row">
    <nav id="navbar">
        <ul>
            <li class="button"><a href="page.html">page</a></li>
            <li class="button"><a href="page.php">page</a></li>
            <li class="button"><a style="color: red;"href="page.html">page</a></li>
            <li class="button"><a href="page.html">page</a></li>
            <li class="button"><a href="page.html">page</a></li>
            <li class="button"><a href="page.php">page</a></li>
            <li class="button"><a href="page.html">page</a></li>
            <li class="button"><a href="page.html">page</a></li>
            <li class="button"><a href="page.html">page</a></li>
        </ul>
    </nav>
    <div id="an id">
        <h1>some text</h1>
        <h3>some text</h3>
        <h5>some text</h5>
    </div>
</div>

This is my current CSS

#row {
    display: table-row;
    margin: 1%;
}

#navbar {
    width: 250px;
    position: fixed;
}

#navbar ul {
    font-size: 110%;
}

I'll add this in case any one was wondering about the class="button"

li.button {
    background-color: transparent;
    padding: 2px 6px 2px 6px;
    border-radius: 15px;
    border-top: 3px solid #F2F2F2;
    border-right: 2px solid #260000;
    border-bottom: 2px solid #450000;
    border-left: 3px solid #D1D1D1;
    margin-bottom: 2px;
}

Solution

  • In the next example "navbarwrapper" keeps "navbar" vertically centered on the left side of the viewport.

    #navbarwrapper
    {
        display: -webkit-flex ;
        display: flex ;
        -webkit-flex-direction: column ;
        flex-direction: column ;
        -webkit-justify-content: center ;
        justify-content: center ;
        position: fixed ;
        top: 0 ;
        left: 0 ;
        height: 100% ;
        z-index: 999999999 ;
    }
    #navbar
    {
        background-color: #f33 ;
        width: 40px ;
        height: 100px ;
        opacity: 0.8 ;
    }
    <div id="navbarwrapper">
     	<div id="navbar"></div>
    </div>
    
    <p>sdljdjlj fnfwekjefw efwklefwkwef efwnlewflnnefw</P>
    <p>sdljdjlj fnfwekjefw efwklefwkwef efwnlewflnnefw</P>
    <p>sdljdjlj fnfwekjefw efwklefwkwef efwnlewflnnefw</P>
    <p>sdljdjlj fnfwekjefw efwklefwkwef efwnlewflnnefw</P>
    <p>sdljdjlj fnfwekjefw efwklefwkwef efwnlewflnnefw</P>
    <p>sdljdjlj fnfwekjefw efwklefwkwef efwnlewflnnefw</P>
    <p>sdljdjlj fnfwekjefw efwklefwkwef efwnlewflnnefw</P>
    <p>sdljdjlj fnfwekjefw efwklefwkwef efwnlewflnnefw</P>
    <p>sdljdjlj fnfwekjefw efwklefwkwef efwnlewflnnefw</P>
    <p>sdljdjlj fnfwekjefw efwklefwkwef efwnlewflnnefw</P>
    <p>sdljdjlj fnfwekjefw efwklefwkwef efwnlewflnnefw</P>
    <p>sdljdjlj fnfwekjefw efwklefwkwef efwnlewflnnefw</P>
    <p>sdljdjlj fnfwekjefw efwklefwkwef efwnlewflnnefw</P>
    <p>sdljdjlj fnfwekjefw efwklefwkwef efwnlewflnnefw</P>
    <p>sdljdjlj fnfwekjefw efwklefwkwef efwnlewflnnefw</P>
    <p>sdljdjlj fnfwekjefw efwklefwkwef efwnlewflnnefw</P>
    <p>sdljdjlj fnfwekjefw efwklefwkwef efwnlewflnnefw</P>
    <p>sdljdjlj fnfwekjefw efwklefwkwef efwnlewflnnefw</P>
    <p>sdljdjlj fnfwekjefw efwklefwkwef efwnlewflnnefw</P>
    <p>sdljdjlj fnfwekjefw efwklefwkwef efwnlewflnnefw</P>
    <p>sdljdjlj fnfwekjefw efwklefwkwef efwnlewflnnefw</P>
    <p>sdljdjlj fnfwekjefw efwklefwkwef efwnlewflnnefw</P>
    <p>sdljdjlj fnfwekjefw efwklefwkwef efwnlewflnnefw</P>
    <p>sdljdjlj fnfwekjefw efwklefwkwef efwnlewflnnefw</P>
    <p>sdljdjlj fnfwekjefw efwklefwkwef efwnlewflnnefw</P>
    <p>sdljdjlj fnfwekjefw efwklefwkwef efwnlewflnnefw</P>
    <p>sdljdjlj fnfwekjefw efwklefwkwef efwnlewflnnefw</P>
    <p>sdljdjlj fnfwekjefw efwklefwkwef efwnlewflnnefw</P>
    <p>sdljdjlj fnfwekjefw efwklefwkwef efwnlewflnnefw</P>
    <p>sdljdjlj fnfwekjefw efwklefwkwef efwnlewflnnefw</P>
    <p>sdljdjlj fnfwekjefw efwklefwkwef efwnlewflnnefw</P>
    <p>sdljdjlj fnfwekjefw efwklefwkwef efwnlewflnnefw</P>
    <p>sdljdjlj fnfwekjefw efwklefwkwef efwnlewflnnefw</P>

    I hope it helps.