Header: Logo to the left, nav to the right. (Vertical aligned to the center)

Problem

I'm having trouble aligning my navigation to the right of the header. Searching on the web, I think the problem is because I'm aligned the items vertically to the center, and the float option isn't working with that.

Any clues?

See: http://jsfiddle.net/PabloArteeL/T7JDJ/

HTML:

<header>
    <div class="logowrapper" style="padding-left:1em;">
        <div class="logo"></div>
    </div>
    <nav><a href="#">SOME LINK</a>
    </nav>
</header>  

CSS:

header {
    background-color: #eaeaea;
    height: 80px;
    margin: 10px;
}
.logowrapper {
    display: table-cell;
    height: 80px;
    vertical-align: middle;
    text-align: center;
}
.logo {
    display: inline-block;
    background-image: url("http://placehold.it/250x40");
    width: 250px;
    height: 40px;
}
nav {
    right: 0px;
    display: table-cell;
    vertical-align: middle;
}
nav a {
    color: black;
    text-decoration: none;
}

Desired effect:

Desired Effect

Problem courtesy of: arteepa

Solution

You need to give <nav>a width and change text-align:left; to text-align:center; or it will not center text:

nav {
    display: table-cell;
    vertical-align: middle;
    text-align: center;
    width:400px;
}

Result: enter image description here

JSFiddle

Solution courtesy of: Jacob Gray

Discussion

try this :

<header>
    <div class="logowrapper">
        <div class="logo"></div>
    </div>
    <div class = "link">
    <nav><a href="#">SOME LINK</a>
    </nav>
    <div>
</header>

css :

 header {
    background-color: #eaeaea;
    height: 80px;
    margin: 10px;
}
.logowrapper {
    height: 80px;
    vertical-align: middle;
    text-align: center;
    padding-left:1em;
    float: left;
    padding: 18px;
}
.logo {
    background-image: url("http://placehold.it/250x40");
    width: 250px;
    height: 40px;
}

.link {
    padding: 30px;
}
nav {
    right: 0px;
    vertical-align: middle;
    text-align: left;
    float: right;
}
nav a {
    color: black;
    text-decoration: none;
}
Discussion courtesy of: user3822284

Imagine's answer will only work if it is text. A better solution uses floats and margin. For general elements side by side it's best to use display: block over display: table-cell which emulates a <td>

http://jsfiddle.net/T7JDJ/8/

Just change the margins, and widths to your liking.

Discussion courtesy of: thepratt

This recipe can be found in it's original form on Stack Over Flow.