css reset中的list-style:none

字號(hào):


    我們先看一下CSS手冊(cè)中,對(duì)于list-style的解釋:
    定義和用法
    list-style 簡寫屬性在一個(gè)聲明中設(shè)置所有的列表屬性。
    說明
    該屬性是一個(gè)簡寫屬性,涵蓋了所有其他列表樣式屬性。由于它應(yīng)用到所有 display 為 list-item 的元素,所以在普通的 HTML 和 XHTML 中只能用于 li 元素,不過實(shí)際上它可以應(yīng)用到任何元素,并由list-item 元素繼承。
    可以按順序設(shè)置如下屬性:
    •list-style-type
    •list-style-position
    •list-style-image
    可以不設(shè)置其中的某個(gè)值,比如 "list-style:circle inside;" 也是允許的。未設(shè)置的屬性會(huì)使用其默認(rèn)值。www-fo-a-sp.cn
    默認(rèn)值: disc outside none
    在日常工作中經(jīng)常需要對(duì)ul,li進(jìn)行css reset ,將列表符號(hào)隱藏.
    最常用的寫法就是Ul,li,ol{list-style:none;}(也有人用ul,li,ol{list-style-type:none;})
    我們來看例子:常見用法:ul,li{list-style:none;}
    這個(gè)頁面在IE6,7,8,FF中都沒什么問題.www-fo-a-sp.cn
    但是list-style: 包含了三個(gè)屬性:list-style-type,list-style-position,list-style-img,如果不注意這三個(gè)屬性的話,list-style有時(shí)候就會(huì)出來搗蛋
    比如當(dāng)ul浮動(dòng)后,需要display:inline 來解決在IE6中的雙倍邊距問題時(shí),就發(fā)生了下面奇怪的事情,我們來看例子:
    奇怪的事情.ul01float:left;display:inline;}, .ul01,.ul01 li{list-style:none;}
    上面的頁面在ie8,ff中仍然正常
    但是在IE6,7中,ul內(nèi)側(cè)與li產(chǎn)生了距離.
    由此可見,當(dāng)我們定義了list-style:none以后,盡管列表符并不出現(xiàn),但是在IE6,7中,仍然留有它的位置.
    看看在FF里這個(gè)UL到底擁有哪些屬性
    
    圖上可見,當(dāng)css中定義list-style:none時(shí),對(duì)list-style-position 并沒有影響,仍然是FF瀏覽器的默認(rèn)設(shè)置,值為outside
    而IE6,7中很可能默認(rèn)list-style-position:insidewww-fo-a-sp.cn
    為了證實(shí)這一點(diǎn),我把list-style:none 換為list-style:none inside none再測(cè)試了一下,看例子:強(qiáng)制inside list-style:none inside none
    運(yùn)行后可以發(fā)現(xiàn),在IE6,7中,與list-style:none的表現(xiàn)一模一樣.
    所以我推測(cè)在IE6,7中當(dāng)UL具有float:left和display:inline屬性后,設(shè)置了list-style:none,則list-style-position也默認(rèn)為inside了;
    由此得出的結(jié)論是:在IE6,7下,當(dāng)UL不具有float:left;display:inline;時(shí):
    無論有沒有l(wèi)ist-style:none這個(gè)屬性,列表符都被隱藏,不占位置www-fo-a-sp.cn
    當(dāng)UL具有float:left;display:inline;屬性時(shí),list-style:none,列表符被隱藏,但是仍然留有位置(list-style-position:inside);
    未設(shè)置list-style:none;列表符被隱藏,也不占位(list-style-position:outside)
    最后這一段代碼對(duì)比一下各種情況下list-style的表現(xiàn),尤其注意4,5,6在IE6,7下的表現(xiàn),看例子:各種比較
    通過上面代碼表現(xiàn)結(jié)果的對(duì)比,我認(rèn)為:
    在firefox中只要list-style-type為none ,則無論list-stype-position的值為outside或inside , list-style都能很好的被隱藏
    而在IE6,7中,僅設(shè)置list-style:none,并不足以解決所有問題www-fo-a-sp.cn
    所以我認(rèn)為在css reset的時(shí)候使用 list-style:none outside none 更好