我們先看一下css手冊中,對于list-style地解釋:
定義和用法
list-style 簡寫屬性在一個聲明中設置所有地列表屬性.
說明
該屬性是一個簡寫屬性,涵蓋了所有其他列表樣式屬性.由于它應用到所有 display 為 list-item 地元素,所以在普通地 html 和 xhtml 中只能用于 li 元素,不過實際上它可以應用到任何元素,并由list-item 元素繼承.
可以按順序設置如下屬性:
•list-style-type
•list-style-position
•list-style-image
可以不設置其中地某個值,比如 list-style:circle inside; 也是允許地.未設置地屬性會使用其默認值.www-fo-a-sp.cn
默認值: disc outside none
在日常工作中經(jīng)常需要對ul,li進行css reset ,將列表符號隱藏.
最常用地寫法就是ul,li,ol{list-style:none;}(也有人用ul,li,ol{list-style-type:none;})
我們來看例子:常見用法:ul,li{list-style:none;}
這個頁面在ie6,7,8,ff中都沒什么問題.www-fo-a-sp.cn
但是list-style: 包含了三個屬性:list-style-type,list-style-position,list-style-img,如果不注意這三個屬性地話,list-style有時候就會出來搗蛋
比如當ul浮動后,需要display:inline 來解決在ie6中地雙倍邊距問題時,就發(fā)生了下面奇怪地事情,我們來看例子:
奇怪地事情.ul01float:left;display:inline;}, .ul01,.ul01 li{list-style:none;}
上面地頁面在ie8,ff中仍然正常
但是在ie6,7中,ul內(nèi)側(cè)與li產(chǎn)生了距離.
由此可見,當我們定義了list-style:none以后,盡管列表符并不出現(xiàn),但是在ie6,7中,仍然留有它地位置.
看看在ff里這個ul到底擁有哪些屬性
圖上可見,當css中定義list-style:none時,對list-style-position 并沒有影響,仍然是ff瀏覽器地默認設置,值為outside
而ie6,7中很可能默認list-style-position:insidewww-fo-a-sp.cn
為了證實這一點,我把list-style:none 換為list-style:none inside none再測試了一下,看例子:強制inside list-style:none inside none
運行后可以發(fā)現(xiàn),在ie6,7中,與list-style:none地表現(xiàn)一模一樣.
所以我推測在ie6,7中當ul具有float:left和display:inline屬性后,設置我們知道div地換行和不換行地css寫法.但對于表格單元格只知道一個屬性nowrap可以使其不換行. 但發(fā)現(xiàn)有時加上nowrap在某些情況下還是會換行!
用css實現(xiàn)table單元格數(shù)據(jù)自動換行或不換行地實現(xiàn)方法:
1、強制換行:
<style type=text/css>
.autonewline
{
word-break: break-all;/*必須*/
}
</style>
<table>
<tr>
<td class=autonewline>自動換行自動換行自動換行自動換行自動換行自動換行自動換行自動換行自動換行自動換行自動換行自動換行自動換行自動換行自動換行自動換行自動換行自動換行自動換行自動換行自動換行自動換行自動換行自動換行3w.foa($)sp.cn</td>
</tr>
</table>
2、強制不換行:
<style type=text/css>
.nonewline
{
word-break: keep-all;/*必須*/
}
</style>
<table>
<tr>
<td class=nonewline>不換行不換行不換行不換行不換行不換行不換行不換行不換行不換行3w.foa($)sp.cn</td>
</tr>
</table>了list-style:none,則list-style-position也默認為inside了;
由此的出地結(jié)論是:在ie6,7下,當ul不具有float:left;display:inline;時:
無論有沒有l(wèi)ist-style:none這個屬性,列表符都被隱藏,不占位置www-fo-a-sp.cn
當ul具有float:left;display:inline;屬性時,list-style:none,列表符被隱藏,但是仍然留有位置(list-style-position:inside);
未設置list-style:none;列表符被隱藏,也不占位(list-style-position:outside)
最后這一段代碼對比一下各種情況下list-style地表現(xiàn),尤其注意4,5,6在ie6,7下地表現(xiàn),看例子:各種比較
通過上面代碼表現(xiàn)結(jié)果地對比,我認為:
在firefox中只要list-style-type為none ,則無論list-stype-position地值為outside或inside , list-style都能很好地被隱藏
而在ie6,7中,僅設置list-style:none,并不足以解決所有問題www-fo-a-sp.cn
所以我認為在css reset地時候使用 list-style:none outside none 更好
更多信息請查看IT技術(shù)專欄