在解決ul居中問題時想到的幾點(diǎn)
更新時間:2007年09月09日 21:45:10 作者:
最近在做網(wǎng)站的時候碰到了一個問題:我用 ul 標(biāo)簽和 li 標(biāo)簽構(gòu)建的導(dǎo)航欄想要在不確定 li 數(shù)量和 li, ul 寬度的情況下居中,但是給 ul 使用了 text-align:center 之后卻沒有起到應(yīng)有的效果。
原來的頁面結(jié)構(gòu)是:
<div id="menu">
<ul class="menu_ul">
<li class="menu_li"><a href="#">Firede</a></li>
<li class="menu_li"><a href="#">Style5</a></li>
</ul>
</div>
樣式表結(jié)構(gòu)是:
<style>
#menu{...}
.menu_ul{...}
.menu_li{...}
</style>
這樣本來也是沒有什么問題的,但是因為要實(shí)現(xiàn)一個功能卻定義了一個ID(menu)和兩個CLASS(menu_ul, menu_li),這樣CSS文件就臃腫了。
我之所以搞不定 ul 居中的問題,就是因為 CSS 寫的太亂太多,到最后一環(huán)套一環(huán),自己都糊涂了,定義結(jié)構(gòu)的代碼混雜在各種為了顯示效果而寫的代碼之中,于是便寫亂了。
在大腦發(fā)暈的情況下,不想修改了,于是重新寫了實(shí)現(xiàn)以上功能的代碼,頁面結(jié)構(gòu):
<div id="menu">
<ul>
<li><a href="#">Firede</a></li>
<li><a href="#">Style5</a></li>
</ul>
</div>
完整的樣式表:
<style>
#menu {text-align:center;}
#menu ul {padding:0;margin:0;}
#menu li {display:inline;padding:0 10px;}
</style>
像這樣,很簡單的就解決了 ul 不能居中的問題?;仡^檢查我的代碼,原來是因為在 li 的樣式里多加了一句 float:left,因為定義的 display 并不是 block,而是 inline,所以并不能浮動,造成了沖突,最終導(dǎo)致 ul 無法居中顯示。
總結(jié)一下,在寫網(wǎng)頁結(jié)構(gòu)的時候,最好同一個功能模塊使用相對統(tǒng)一的CSS名。如果可以定義一個樣式名解決問題的,盡量不要定義多個,代碼也要盡量簡潔。因為代碼臃腫了就很容易出問題,并且很難發(fā)現(xiàn)錯誤在什么地方。多用些像 menu, menu ul, menu li, menu a, menu a:hover 這種一系列的樣式,而不是定義一些像 menu, menu_ul, menu_ul_li 這樣看似調(diào)理清晰、層次鮮明,但是實(shí)際上很混亂的名稱。
習(xí)慣是以往經(jīng)驗在潛意識中總結(jié)出的精華,但是隨著技術(shù)的進(jìn)步,很多以往的習(xí)慣都成為進(jìn)一步提高的阻礙,這時候就要多參考一下標(biāo)準(zhǔn)了,看看以往的習(xí)慣是不是值得堅持下去。做網(wǎng)站也一樣,標(biāo)準(zhǔn)是能夠提高效率、改善性能并且指明方向的,Web標(biāo)準(zhǔn)化的設(shè)計更有助于我們提高維護(hù)網(wǎng)站的效率。
原來的頁面結(jié)構(gòu)是:
復(fù)制代碼 代碼如下:
<div id="menu">
<ul class="menu_ul">
<li class="menu_li"><a href="#">Firede</a></li>
<li class="menu_li"><a href="#">Style5</a></li>
</ul>
</div>
樣式表結(jié)構(gòu)是:
復(fù)制代碼 代碼如下:
<style>
#menu{...}
.menu_ul{...}
.menu_li{...}
</style>
這樣本來也是沒有什么問題的,但是因為要實(shí)現(xiàn)一個功能卻定義了一個ID(menu)和兩個CLASS(menu_ul, menu_li),這樣CSS文件就臃腫了。
我之所以搞不定 ul 居中的問題,就是因為 CSS 寫的太亂太多,到最后一環(huán)套一環(huán),自己都糊涂了,定義結(jié)構(gòu)的代碼混雜在各種為了顯示效果而寫的代碼之中,于是便寫亂了。
在大腦發(fā)暈的情況下,不想修改了,于是重新寫了實(shí)現(xiàn)以上功能的代碼,頁面結(jié)構(gòu):
復(fù)制代碼 代碼如下:
<div id="menu">
<ul>
<li><a href="#">Firede</a></li>
<li><a href="#">Style5</a></li>
</ul>
</div>
完整的樣式表:
復(fù)制代碼 代碼如下:
<style>
#menu {text-align:center;}
#menu ul {padding:0;margin:0;}
#menu li {display:inline;padding:0 10px;}
</style>
像這樣,很簡單的就解決了 ul 不能居中的問題?;仡^檢查我的代碼,原來是因為在 li 的樣式里多加了一句 float:left,因為定義的 display 并不是 block,而是 inline,所以并不能浮動,造成了沖突,最終導(dǎo)致 ul 無法居中顯示。
總結(jié)一下,在寫網(wǎng)頁結(jié)構(gòu)的時候,最好同一個功能模塊使用相對統(tǒng)一的CSS名。如果可以定義一個樣式名解決問題的,盡量不要定義多個,代碼也要盡量簡潔。因為代碼臃腫了就很容易出問題,并且很難發(fā)現(xiàn)錯誤在什么地方。多用些像 menu, menu ul, menu li, menu a, menu a:hover 這種一系列的樣式,而不是定義一些像 menu, menu_ul, menu_ul_li 這樣看似調(diào)理清晰、層次鮮明,但是實(shí)際上很混亂的名稱。
習(xí)慣是以往經(jīng)驗在潛意識中總結(jié)出的精華,但是隨著技術(shù)的進(jìn)步,很多以往的習(xí)慣都成為進(jìn)一步提高的阻礙,這時候就要多參考一下標(biāo)準(zhǔn)了,看看以往的習(xí)慣是不是值得堅持下去。做網(wǎng)站也一樣,標(biāo)準(zhǔn)是能夠提高效率、改善性能并且指明方向的,Web標(biāo)準(zhǔn)化的設(shè)計更有助于我們提高維護(hù)網(wǎng)站的效率。
相關(guān)文章
Firefox2中輸入框丟失光標(biāo)bug的解決方法
在Firefox2中某些情況下輸入框雖然可以輸入,但在獲取焦點(diǎn)時沒有文本輸入光標(biāo)的顯示,這個是非常惡心的bug,非常容易讓表單使用者有一種不能輸入的錯覺,即使后來嘗試知道可以輸入,但也無法判斷光標(biāo)定位在哪兒。2008-05-05標(biāo)準(zhǔn)布局應(yīng)用:顯示/隱藏側(cè)邊欄 [附詳細(xì)注解]
標(biāo)準(zhǔn)布局應(yīng)用:顯示/隱藏側(cè)邊欄 [附詳細(xì)注解]...2006-12-12HTML實(shí)現(xiàn)title 屬性換行小技巧
本文給大家?guī)淼氖且粋€在html中title屬性換行的小技巧,非常的實(shí)用,這里推薦給各位,不用謝我~2014-12-12模仿combox(select)控件,不用為美化select煩惱了。
模仿combox(select)控件,不用為美化select煩惱了。...2006-12-12