先看CSS手冊中,對於list-style的解釋
定義和用法
list-style 簡寫屬性在一個聲明中設定所有的列表屬性。
說明
此屬性為簡寫屬性,涵蓋了所有其他清單樣式屬性。由於它應用到所有 display 為 list-item 的元素,所以在普通的 HTML 和 XHTML 中只能用於 li 元素,不過實際上它可以應用到任何元素,並由 list-item 元素繼承。
可依序設定下列屬性:
•list-style-type
•list-style- # -image
可以不設定其中的某個值,例如"list-style:circle inside;" 也是允許的。未設定的屬性會使用其預設值。 預設值: disc outside none
#
在日常工作中經常需要對ul,li進行css reset ,隱藏列表符號.
#最常用的寫法就是Ul, li,ol{list-style:none;}(也有人用ul,li,ol{list-style-type:none;})
運行程式碼框
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <meta name="author" content="fanfan,xiangrui09@qq.com" /> <title>常见的用法</title> <style type="text/css"> body,ul,li,p {padding:0;margin:0;font-size:12px;} p{font:bold 16px/180% arial;} div{float:left;display:inline;background:#eee;margin-right:10px;} p span{text-decoration:line-through;} ul{width:275px;margin:4px 0 0 15px;background:aqua;} ul,li{list-style:none;} </style> </head> <body> <div> <p>1: list-style:none;</p> <ul> <li><a href="#">纯净的文字 奇异的梦幻 奔腾的思想</a></li> <li><a href="#">就像对爱情一样 要求是近乎完美的</a></li> <li><a href="#">校园里淡淡的青春 单纯的男孩女孩</a></li> <li><a href="#">我彷徨而又彷徨 早已没有了距离之感</a></li> <li><a href="#">凝望着她的脸 朗诵起熟悉而又陌生的诗句</a></li> <li><a href="#">那些文字恰好地描述了一个女孩子的灵</a></li> <li><a href="#">交错出现明暗线索和不确定的主角</a></li> <li><a href="#">细腻而真挚的感情渐渐突显出来 身临其境</a></li> <li><a href="#">高密度的情绪在文字中反复发酵</a></li> </ul> </div> </body> </html>
這個頁面在IE6,7,8,FF中都沒什麼問題.
但是我們不能忽略的是,list-style: 包含了三個屬性:
list-style-type
list -style-positionlist-style-img
如果不注意這三個屬性的話,list-style有時候就會出來搗蛋
例如當ul,浮動後,需要display:inline 來解決在IE6中的雙倍邊距問題時,奇怪的事情發生了:
#運行代碼框
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <meta name="author" content="fanfan,xiangrui09@qq.com" /> <title>奇怪的事情发生了</title> <style type="text/css"> body,ul,li,p {padding:0;margin:0;font-size:12px;} p{font:bold 16px/180% arial;} div{float:left;display:inline;background:#eee;margin-right:10px;} p span{text-decoration:line-through;} ul{width:275px;margin:4px 0 0 15px;background:aqua;} .ul01{float:left;display:inline;} .ul01,.ul01 li{list-style:none;} </style> </head> <body> <div> <p>1: list-style:none;</p> <ul class="ul01"> <li><a href="#">纯净的文字 奇异的梦幻 奔腾的思想</a></li> <li><a href="#">就像对爱情一样 要求是近乎完美的</a></li> <li><a href="#">校园里淡淡的青春 单纯的男孩女孩</a></li> <li><a href="#">我彷徨而又彷徨 早已没有了距离之感</a></li> <li><a href="#">凝望着她的脸 朗诵起熟悉而又陌生的诗句</a></li> <li><a href="#">那些文字恰好地描述了一个女孩子的灵</a></li> <li><a href="#">交错出现明暗线索和不确定的主角</a></li> <li><a href="#">细腻而真挚的感情渐渐突显出来 身临其境</a></li> <li><a href="#">高密度的情绪在文字中反复发酵</a></li> </ul> </div> </body> </html>
.ul01{float:left;display:inline;}
.ul01,.ul01 li{list-style:none;}
上面的頁在ie8,ff中仍然正常
由此可見,當我們定義了list-style:none以後,儘管列表符並不出現,但是在IE6,7中,仍然留有它的位置.
看看在FF裡這個UL到底擁有哪些屬性
圖上可見,當css中定義list-style:none時,對list-style-position 並沒有影響,仍然是FF瀏覽器的預設值,值為outside
而IE6,7中很可能預設list-style-position:inside為了證實這一點,我把list-style:none 換成list-style:none inside none再測試了一下
運行程式碼框
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <meta name="author" content="fanfan,xiangrui09@qq.com" /> <title>强制inside</title> <style type="text/css"> body,ul,li,p {padding:0;margin:0;font-size:12px;} p{font:bold 16px/180% arial;} div{background:#eee;margin-right:10px;} p span{text-decoration:line-through;} ul{width:275px;margin:4px 0 0 15px;background:aqua;list-style:none inside none;} </style> </head> <body> <div> <p>强制inside list-style:none inside none;</p> <ul> <li><a href="#">纯净的文字 奇异的梦幻 奔腾的思想</a></li> <li><a href="#">就像对爱情一样 要求是近乎完美的</a></li> <li><a href="#">校园里淡淡的青春 单纯的男孩女孩</a></li> <li><a href="#">我彷徨而又彷徨 早已没有了距离之感</a></li> <li><a href="#">凝望着她的脸 朗诵起熟悉而又陌生的诗句</a></li> <li><a href="#">那些文字恰好地描述了一个女孩子的灵</a></li> <li><a href="#">交错出现明暗线索和不确定的主角</a></li> <li><a href="#">细腻而真挚的感情渐渐突显出来 身临其境</a></li> <li><a href="#">高密度的情绪在文字中反复发酵</a></li> </ul> </div> </body> </html>
運行後可以發現,在IE6,7中,與list-style:none的表現一模一樣.
所以我推測在IE6,7中當UL具有float:left和display:inline屬性後,設定了list-style:none,則list-style-position也預設為inside了;
所以我得出的總結是
無論有沒有list-style:none這個屬性,列表符都被隱藏,不佔位置(下面程式碼中的5,6 )
當UL具有float:left;display:inline;屬性時
list-style:none,列表符被隱藏,但是仍然留有位置(list-style-position:inside);(下面程式碼中的UL1,ul3)
未設定list-style:none;列表符號被隱藏,也不佔位(list-style-position:outside)(代碼UL4)
而UL02 在參與測試的各瀏覽器中表現都比較理想
最後這段程式碼對比一下各種情況下list-style的表現,尤其註意4,5,6在IE6,7下的表現
#運行程式碼框
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>list-style:none还是list-style:none outside none;</title> <style type="text/css"> body,ul,li,p {padding:0;margin:0;font-size:12px;} p{font:bold 16px/180% arial;} div{float:left;display:inline;background:#eee;margin:0 10px 10px 0;} p span{text-decoration:line-through;} ul{width:275px;margin:4px 0 0 15px;background:aqua;} .ul01,.ul02,.ul03,.ul04{float:left;display:inline;} .ul01,.ul01 li{list-style:none;} .ul02,.ul02 li{list-style:none outside none;} .ul03,.ul03 li{list-style:none inside none;} .ul04,.ul04 li{} .ul05{} .ul05,.ul05 li{list-style:none;} .ul06{} .ul06,.ul06 li{} </style> </head> <body> <div> <p>1:float:left;display:inline; list-style:none;</p> <ul class="ul01"> <li><a href="#">纯净的文字 奇异的梦幻 奔腾的思想</a></li> <li><a href="#">就像对爱情一样 要求是近乎完美的</a></li> <li><a href="#">校园里淡淡的青春 单纯的男孩女孩</a></li> <li><a href="#">我彷徨而又彷徨 早已没有了距离之感</a></li> <li><a href="#">凝望着她的脸 朗诵起熟悉而又陌生的诗句</a></li> <li><a href="#">那些文字恰好地描述了一个女孩子的灵</a></li> <li><a href="#">交错出现明暗线索和不确定的主角</a></li> <li><a href="#">细腻而真挚的感情渐渐突显出来 身临其境</a></li> <li><a href="#">高密度的情绪在文字中反复发酵</a></li> </ul> </div> <div> <p>2:float:left;display:inline; list-style:none outside none;</p> <ul class="ul02"> <li><a href="#">纯净的文字 奇异的梦幻 奔腾的思想</a></li> <li><a href="#">就像对爱情一样 要求是近乎完美的</a></li> <li><a href="#">校园里淡淡的青春 单纯的男孩女孩</a></li> <li><a href="#">我彷徨而又彷徨 早已没有了距离之感</a></li> <li><a href="#">凝望着她的脸 朗诵起熟悉而又陌生的诗句</a></li> <li><a href="#">那些文字恰好地描述了一个女孩子的灵</a></li> <li><a href="#">交错出现明暗线索和不确定的主角</a></li> <li><a href="#">细腻而真挚的感情渐渐突显出来 身临其境</a></li> <li><a href="#">高密度的情绪在文字中反复发酵</a></li> </ul> </div> <div> <p>3: float:left;display:inline;list-style:none inside none;</p> <ul class="ul03"> <li><a href="#">纯净的文字 奇异的梦幻 奔腾的思想</a></li> <li><a href="#">就像对爱情一样 要求是近乎完美的</a></li> <li><a href="#">校园里淡淡的青春 单纯的男孩女孩</a></li> <li><a href="#">我彷徨而又彷徨 早已没有了距离之感</a></li> <li><a href="#">凝望着她的脸 朗诵起熟悉而又陌生的诗句</a></li> <li><a href="#">那些文字恰好地描述了一个女孩子的灵</a></li> <li><a href="#">交错出现明暗线索和不确定的主角</a></li> <li><a href="#">细腻而真挚的感情渐渐突显出来 身临其境</a></li> <li><a href="#">高密度的情绪在文字中反复发酵</a></li> </ul> </div> <div> <p>4:float:left;display:inline;未做css reset</p> <ul class="ul04"> <li><a href="#">纯净的文字 奇异的梦幻 奔腾的思想</a></li> <li><a href="#">就像对爱情一样 要求是近乎完美的</a></li> <li><a href="#">校园里淡淡的青春 单纯的男孩女孩</a></li> <li><a href="#">我彷徨而又彷徨 早已没有了距离之感</a></li> <li><a href="#">凝望着她的脸 朗诵起熟悉而又陌生的诗句</a></li> <li><a href="#">那些文字恰好地描述了一个女孩子的灵</a></li> <li><a href="#">交错出现明暗线索和不确定的主角</a></li> <li><a href="#">细腻而真挚的感情渐渐突显出来 身临其境</a></li> <li><a href="#">高密度的情绪在文字中反复发酵</a></li> </ul> </div> <div> <p>5: 无 display,float属性 list-style为none;</p> <ul class="ul05"> <li><a href="#">纯净的文字 奇异的梦幻 奔腾的思想</a></li> <li><a href="#">就像对爱情一样 要求是近乎完美的</a></li> <li><a href="#">校园里淡淡的青春 单纯的男孩女孩</a></li> <li><a href="#">我彷徨而又彷徨 早已没有了距离之感</a></li> <li><a href="#">凝望着她的脸 朗诵起熟悉而又陌生的诗句</a></li> <li><a href="#">那些文字恰好地描述了一个女孩子的灵</a></li> <li><a href="#">交错出现明暗线索和不确定的主角</a></li> <li><a href="#">细腻而真挚的感情渐渐突显出来 身临其境</a></li> <li><a href="#">高密度的情绪在文字中反复发酵</a></li> </ul> </div> <div> <p>6: 无 display,float属性 无list-style:none;</p> <ul class="ul06"> <li><a href="#">纯净的文字 奇异的梦幻 奔腾的思想</a></li> <li><a href="#">就像对爱情一样 要求是近乎完美的</a></li> <li><a href="#">校园里淡淡的青春 单纯的男孩女孩</a></li> <li><a href="#">我彷徨而又彷徨 早已没有了距离之感</a></li> <li><a href="#">凝望着她的脸 朗诵起熟悉而又陌生的诗句</a></li> <li><a href="#">那些文字恰好地描述了一个女孩子的灵</a></li> <li><a href="#">交错出现明暗线索和不确定的主角</a></li> <li><a href="#">细腻而真挚的感情渐渐突显出来 身临其境</a></li> <li><a href="#">高密度的情绪在文字中反复发酵</a></li> </ul> </div> </body> </html>
透過上面程式碼表現結果的比較,我認為:
在firefox中只要list-style-type為none ,則無論list-stype-position的值為outside或inside , list-style都能很好的被隱藏而在IE6,7中,僅設定list-style:none,並不足以解決所有問題
所以我認為在css reset的時候使用list-style: none outside none 更好
以上是CSS中有關list-style的深入理解的詳細內容。更多資訊請關注PHP中文網其他相關文章!