Zevoxa
Zevoxa

Reputation: 301

Header has space above it?

I took a break after doing a little bit and everything is fine. I come back to see my header has a gap between the top of the page and itself. I don't know why, I must of not saved or something, but I can't figure out what's wrong...

http://jsfiddle.net/Zevoxa/tCxaU/

HTML

<div id="header">
 <img id="logo" src="/img/logo.png">
 <div id="nav">
 <ul>
 <li><a href="#">Home</a></li>
 <li><a href="#">About</a></li>
 <li><a href="#">Contact</a></li>
 </ul>
 </div>
</div>

CSS

/*-- HEADER --*/

#header {
 position:relative;
 top:0px;
 width:100%;
 background-color:#2C2E31;
 border-bottom:#242426 solid 2px;
}

img#logo {
 display: block;
 margin-left:auto;
 margin-right:auto;
 margin-top:20px;
 margin-bottom:20px;
}

#nav ul li {
 list-style-type:none;
 display:inline;
 margin-bottom:0px;
 padding-bottom:0px;

}

/*-- CONTENT --*/

body {
 margin:0px;
 padding:0px;
 background-color:#2A2B2D;
}

Upvotes: 1

Views: 267

Answers (2)

Matt Rohland
Matt Rohland

Reputation: 706

Your issue is margin-top on the #logo.

One solution is to add that top 20px spacing as padding on the #header rather than a margin on the #logo.

http://jsfiddle.net/JRPwr/

/*-- HEADER --*/

#header {
 position:relative;
 top:0px;
 width:100%;
 background-color:#2C2E31;
 border-bottom:#242426 solid 2px;
 padding-top:20px;
}

img#logo {
 display: block;
 margin-left:auto;
 margin-right:auto;
 margin-bottom:20px;
}

#nav ul li {
 list-style-type:none;
 display:inline;
 margin-bottom:0px;
 padding-bottom:0px;

}

/*-- CONTENT --*/

body {
 margin:0px;
 padding:0px;
 background-color:#2A2B2D;
}

Alternate solutions are mentioned in the following StackOverflow question: Margin on child element moves parent element

Upvotes: 2

Brent Washburne
Brent Washburne

Reputation: 13158

In img#logo, use margin-top: 0px;

Upvotes: 2

Related Questions