[英]How to center li when it's floated left
您好,這似乎是一個普遍的問題,但是我發現的解決方案尚未為我解決:(
我的演示鏈接: http : //leongaban.com/_stack/centering/
我正在嘗試使頂級導航器居中,以及“資產組合導航”也居中。
我的JSFiddle: http : //jsfiddle.net/8DM65/
請幫忙! 讓我發瘋X_x
的HTML
<header>
<div id="main-nav">
<ul>
<li><a href="#content">Portfolio</a></li>
<li><a href="#footer">Contact Me</a></li>
<li><a href="#">Resume</a></li>
</ul>
</div>
<div id="logo-title">
<img src="images/leon_gaban.png" width="256" height="256" class="avatar" />
<h1>Hello</h1>
<h2>Web Designer & Developer</h2>
<h3>And self-improvement blogger</h3>
</div>
</header>
<section id="content">
<div class="portfolio-nav">
<ul>
<li class="cta">Select Portfolio</li>
<li class="selected"><a href="#">Design & Development</a></li>
<li class="not-selected"><a href="#">Flash & Animation</a></li>
</ul>
</div>
<div id="showcase-div">
<ul id="showcase-boxes">
<li>Test</li>
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
</ul>
</div>
</section>
的CSS
/* 02 Header */
header {
width: 100%;
height: 720px;
margin: 0 auto;
background: #ededed;
border-bottom: 1px solid #ccc;
}
header h1 {
font-size: 2em;
font-weight: 400;
font-style: italic;
}
header h2 {
font-size: 3.125em;
font-weight: 700;
}
header h3 {
font-size: 1.125em;
font-weight: 400;
font-style: italic;
}
#logo-title {
width: 100%;
margin: 60px auto;
text-align: center;
}
.avatar {
width: 256px;
height: 256px;
margin-bottom: 20px;
-webkit-border-radius: 128px;
-moz-border-radius: 128px;
-ms-border-radius: 128px;
-o-border-radius: 128px;
border-radius: 128px;
-webkit-box-shadow: 0 0 0px 6px white, 0 0 0 8px #cccccc, 0 10px 40px #333333;
-moz-box-shadow: 0 0 0px 6px white, 0 0 0 8px #cccccc, 0 10px 40px #333333;
box-shadow: 0 0 0px 6px white, 0 0 0 8px #cccccc, 0 10px 40px #333333;
}
#main-nav {
width: 80%;
height: 100px;
margin: 0 auto;
text-align: center;
font-size: 1.5em;
border-bottom: 2px solid white;
}
#main-nav ul {
clear: left;
float: left;
width: 100%;
list-style: none;
padding: 30px 0;
position:relative;
left:50%;
}
#main-nav ul li {
display:block;
position:relative;
right:50%;
float: left;
padding: 0 20px;
}
/* 03 Content */
#content {
width: 100%;
height: 100%;
margin: 0 auto;
}
#content ul {
list-style: none;
}
.portfolio-nav {
height: 60px;
padding: 30px 0 0 0;
background: #ccc;
}
.portfolio-nav ul {
margin: 0 auto;
text-align: center;
}
.portfolio-nav ul li {
display: inline;
float: left;
padding: 0 20px;
text-align: center;
}
#showcase-div {
width: 80%;
height: 100%;
margin: 0 auto;
background: blue;
padding-bottom: 60px;
}
實際上,您已經向這些元素添加了太多CSS,並且似乎在向錯誤的方向編碼自己。 我會放棄所有position: relative;
東西,而是專注於圍繞inline-block
構建li
。 這使得li
不會在寬度方向擴展,將彼此推入垂直堆棧中。
#main-nav ul li {
display: inline-block;
padding: 0 20px;
}
#main-nav ul {
list-style: none;
padding: 30px 0;
}
為什么您要混合使用浮動,清除,顯示和定位功能? 如果要對正在執行的操作有任何意義,則需要刪除大量代碼。
例如,首先導航。 您無需將列表項顯示為塊級元素,然后浮動它們,然后清除它們,然后嘗試將它們放置在頁面的中間。
它們是列表項,您想inline
顯示它們。
#main-nav ul {
width: 100%;
list-style: none;
padding: 30px 0;
}
#main-nav ul li {
display: inline;
padding: 0 20px;
}
看來我可以很輕松地使用以下代碼:
.portfolio-nav{
text-align: center;
}
.portfolio-nav > ul{
display: inline-block;
}
我發現的是,將#main-nav寬度css更改為35%可以解決此問題,但是會刪除多余的白色分隔線,因此您可以添加帶有白色的hr標簽以解決此問題。 要修復#portfolio-nav,我將寬度更改為44%,並增加了邊距:0自動。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.