Welcome to the Treehouse Community

Want to collaborate on code errors? Have bugs you need feedback on? Looking for an extra set of eyes on your latest project? Get support with fellow developers, designers, and programmers of all backgrounds and skill levels here with the Treehouse Community! While you're at it, check out some resources Treehouse students have shared here.

Looking to learn something new?

Treehouse offers a seven day free trial for new students. Get access to thousands of hours of content and join thousands of Treehouse students and alumni in the community today.

Start your free trial

CSS

How to center nav

<html>
<head>
    <title>Flexbox Layout</title>
    <meta name="viewport" content="width=device-width">
    <link rel="stylesheet" href="normalize.css">
    <link rel="stylesheet" href="style.css">
    <script type="text/javascript" src="js/modernizr.js"></script>
</head>
<body>
    <div class="main-wrapper">
        <header class="main-header">
            <ul class="main-nav">
                <li class="main-logo"><h1><a href="#">Logo</a></h1></li>
                <li><a href="#" data-icon="&#xe602;">Home</a></li>
                <li><a href="#" data-icon="&#xe601;">About</a></li>
                <li><a href="#" data-icon="&#xe603;">Blog</a></li>
                <li><a href="#" data-icon="&#xe600;">Contact</a></li>
            </ul>
        </header>
        <div class="main-banner">
            <h1>This is the Main Banner Heading</h1>
            <p>Andouille pork chop pancetta drumstick ground round beef ribs swine brisket ham.</p>
        </div>
        <div class="content-row group">
            <div class="extra-content col">
                <h3>Extra Content</h3>
                <p>Filet mignon turkey flank doner strip steak. Frankfurter ham hock turkey, venison sirloin pig chuck shank capicola hamburger doner spare ribs boudin.</p>
                <hr>
                <p> Drumstick bresaola meatloaf ham hock salami tri-tip landjaeger beef filet mignon biltong boudin turkey.</p>
            </div>
            <div class="primary-content col">
                <h2>Primary Content</h2>
                <img class="feat-img" src="http://lorempixel.com/400/300" />
                <p>Bacon ipsum dolor sit amet chicken pork ground round brisket corned beef ball tip shank tail salami filet mignon ham hock pork belly venison shankle. Pig kielbasa drumstick sausage pork chop boudin. Chicken t-bone salami pork chop, beef ribs kevin ham tri-tip beef venison biltong brisket.</p>
                <p>Venison strip steak meatball chicken, brisket prosciutto sirloin. Capicola drumstick brisket tri-tip salami. Chicken beef jerky, tail turkey prosciutto cow ham sirloin boudin tenderloin. Meatloaf tri-tip turducken brisket andouille, pork belly corned beef fatback hamburger.</p>
            </div>
            <div class="secondary-content col">
                <h3>Secondary Content</h3>
                <p>Strip steak tenderloin kevin swine meatloaf capicola, doner beef turducken pancetta corned beef pork loin shoulder.</p>
                <hr>
                <p>Pork filet mignon leberkas, tail swine venison pancetta turkey shoulder brisket chalkers likes hamburgers.</p>
            </div>
        </div>
        <footer class="main-footer">
            <p>&copy;2014 Example Layout</p>
        </footer>
    </div>
</body>
</html>
/* Page Styles
================================ */

* {
    -moz-box-sizing: border-box;
    box-sizing: border-box;
}
body {
    font: normal 1.1em/1.5 sans-serif;
    color: #222;
    background-color: #edeff0;
}
.main-wrapper {
    width: 80%;
    margin: auto;
}


/* Icon Fonts
================================ */

@font-face {
    font-family: 'icomoon';
    src:url('../fonts/icomoon.eot');
    src:url('../fonts/icomoon.eot?#iefix') format('embedded-opentype'),
        url('../fonts/icomoon.woff') format('woff'),
        url('../fonts/icomoon.ttf') format('truetype'),
        url('../fonts/icomoon.svg#icomoon') format('svg');
    font-weight: normal;
    font-style: normal;
}

/* Layout Element Colors
================================ */

.main-header       { background-color: #384047; }
.main-nav a        { background-color: #3f8abf; }
.main-logo a       { background-color: #5fcf80; }
.primary-content   { background-color: #caebf6; }
.secondary-content { background-color: #bfe3d0; }
.main-footer       { background-color: #b7c0c7; }

/* Main Layout
================================ */

.main-header,
.col {
    padding: 20px;
}
.main-logo a, 
.main-nav a {
    display: block;
    color: white;
    text-decoration: none;
    text-align: center;
    padding: 8px 15px;
    border-radius: 5px;
    position: relative;
    overflow: hidden;
}
.main-nav a::before {
    font-family: 'icomoon';
    content: attr(data-icon);
    color: #fff;
    position: absolute;
    left: -30%;
    top: 10px;
    transition: .4s;
}
.main-nav a:hover::before {
    left: 10%;
}
.main-footer {
    text-align: center;
    padding-top: 5px;
    padding-bottom: 5px;
}


/* Imagery
================================ */

.feat-img {
    width: 100%;
    margin-top: 10px;
    margin-bottom: 10px;
    border: solid 1px;
    padding: 5px;
}

/* Media Queries
================================ */

@media (min-width: 1px) and (max-width: 768px) {
        .main-nav li {
            margin-top: 15px;
        }
        .main-nav li:first-child {
            margin-top: 0;
        }
        .extra-content,
        .main-banner {
            display: none;
        }
    }

@media (min-width: 769px) {

    } 

    body {
        padding-top: 120px;
    }

    /* Header and Banner Layout
    ================================ */

    .main-header {
        position: fixed;
        top: 0;
        width: 100%;
        height: 120px;
    }
    .main-nav {
        display: -webkit-flex;
        display: flex;
        height: 100%;
    }
    .main-nav li {
        margin-left: 8px;
        margin-right: 8px;
        -webkit-align-self: center;
        align-self: center;
        -webkit-flex-grow: 1;
        flex-grow: 1;
        transition: .5s;
        }
        .main-nav li:hover:not(.main-logo) {
            -webkit-flex-grow: 2;
            flex-grow: 2;
        }
    .main-logo:first-child {
        margin-right: 50px;
    }
    .main-banner {
        background: #dfe2e4;
        text-align: center;
        padding: 50px 15px;
        display: block;
    }

    /* Column Layout
    ================================ */

    .content-row {
        display: -webkit-flex;
        display: flex;
    }
    .col {
        -webkit-flex: 1;
        flex: 1;
    }
    .primary-content {
        -webkit-flex: 2;
        flex: 2;
        -webkit-order: -1;
        order: -1;
    }
    .extra-content {
        -webkit-order: 1;
        order: 1;
    }

    /* Imagery
    ================================ */

    .feat-img {
        width: 50%;
        float: left;
        margin-right: 25px;
    }
}

3 Answers

Maximilian Stöhr
Maximilian Stöhr
7,479 Points

You tried to set margin: auto; ? Can be that I'm talking bullshit since I'm new to coding :O

.main-nav { margin: 0 auto; }

Brandon Wong
Brandon Wong
9,504 Points

http://jsbin.com/vipizugiqoyu/1/edit

I messed around found a solution, it had something to do with width:% for the body, wrapper, main-header. I set the body width to 100% and set the main-header width to match the wrapper width.