2016-08-30 26 views

回答

2

不要给不需要的paddingmargin调整HTML

这里是一个工作Demo

去除padding-topmargin等和补充:

header{ 
    display: flex; 
    align-items: center; 
    overflow: scroll; 
    justify-content: center; 
} 
header h1{ 
    min-width: 250px; 
    margin: 0; 
} 
#search_and_avatar{ 
    flex: 1; 
    display: flex; 
    justify-content: flex-end; 
} 

body { 
 
\t margin:0; 
 
\t font-family: 'Source Sans Pro', sans-serif; 
 
} 
 

 
header { 
 
\t background-color:#151515; 
 
\t overflow:hidden; 
 
\t height: 100px; 
 
} 
 

 
h1 { 
 
\t color:#FFF; 
 
\t font-family: "Arial Rounded MT", "Helvetica Rounded", Arial, sans-serif; 
 
\t font-size: 40px; 
 
\t font-weight: normal; 
 
\t line-height:25px; 
 
\t padding: 0px 20px; 
 
} 
 

 
header h1, img, #search_form { 
 
\t float:left; 
 
} 
 

 
#main_nav a { 
 
\t color:#FFF; 
 
\t text-decoration:none; 
 
} 
 

 
#main_nav { 
 
\t display: table; 
 
\t text-align:center; 
 
\t width:50%; 
 
} 
 

 
#main_nav ul { 
 
\t display: table-row; 
 
} 
 

 
#main_nav ul li { 
 
\t padding: 15px; 
 
\t display: table-cell; 
 
\t vertical-align: middle; 
 
\t top: 50%; 
 
\t display:inline; 
 
} 
 

 
header img { 
 
\t width:35px; 
 
} 
 

 
header{ 
 
\t display: flex; 
 
\t align-items: center; 
 
\t overflow: scroll; 
 
\t justify-content: center; 
 
} 
 
header h1{ 
 
\t flex: 1; 
 
\t min-width: 250px; 
 
\t margin: 0; 
 
} 
 
header form{ 
 
\t text-align: right; 
 
} 
 

 
#search_and_avatar{ 
 
\t flex: 1; 
 
\t display: flex; 
 
\t justify-content: flex-end; 
 
}
<div id="wrapper"> 
 
     <header> 
 
      <h1>CSS-Tricks</h1> 
 
      <nav id="main_nav"> 
 
       <ul> 
 
        <li><a href="index.html">Blog</a></li> 
 
        <li><a href="video_screencasts.html">Videos</a></li> 
 
        <li><a href="almanac.html">Almanac</a></li> 
 
        <li><a href="snippets.html">Snippets</a></li> 
 
        <li><a href="forums.html">Forums</a></li> 
 
        <li><a href="shop.html">Shop</a></li> 
 
        <li><a href="lodge.html">Lodge</a></li> 
 
        <li><a href="jobs.html">Jobs</a></li> 
 
       </ul> 
 
      </nav> 
 
      
 
      <div id="search_and_avatar"> 
 
      <form action="index.html" method="post" id="search_form"> 
 
       <input type="text" id="search" name="search"> 
 
      </form> 
 
      <img src="images/avatar.png"> 
 
      </div> 
 
      <!-- 
 
      <ul id="account_nav"> 
 
       <li><a href="login.html">Log In</a></li> 
 
       <li><a href="signup.html">Sign Up</a></li> 
 
      </ul> 
 
      --> 
 
     </header> 
 
\t </div>

+0

虽然它并不完美。 –

+0

@ Gray-lover已更新。不幸的是,'h1'有一些'padding-top' –

+0

现在它比中心更加正确。顺便说一下,我在Chrome中查看。 –

2
#main_nav { 
    text-align:center; 
    width:50%; 
    padding-top: 35px; 
    margin:0px auto; 
} 
+0

嗨,应用该改变之后,它是多一点点的,现在则中心,您可以检查更新的小提琴。你知道为什么吗? –

+0

默认情况下UL元素有一个填充船的负载,你是否删除它? – jedifans

+0

@jedifans我试着删除默认的填充。它仍然不是完美的中心。 –

1

中心对齐删除display: table;,并添加margin: 0 auto;nav

#main_nav { 
    text-align: center; 
    width: 50%; 
    padding-top: 35px; 
    margin: 0 auto; 
} 

入住这Example fiddle

+0

嗨,在你的小提琴中它不是完美的标题中心 –

+0

删除显示:表行;在你的ul –

+0

这没有帮助,我害怕。 –