用CSS修正Discuz!的列表显示
2009 3 5 05:29 PM 2189次查看
在discuzcode.func.php这个文件中有段代码,将进行下面的替换:
[list]、[list=1]、[list=a]、[list=A]、[*]、[/list]
替换为
<ul>、<ul type="1">、<ul type="a">、<ul type="A">、<li>、</ul>
这里有个很无语的错误,type属性只在IE上有用,Chrome是无法识别的,于是将全部当成未排序的列表来显示。此外,li标签没有关闭,这会导致XML解析错误,用wap浏览的估计会报错,不过我也懒得改了。
如果要显示成数字的话,最方便的方法是用ol标签,但结束标签就和ul冲突了,所以我就不改PHP代码了,直接弄CSS。
方法很简单,加上关于属性的选择器就行了:
ul[type="1"] { list-style-type: decimal; }
ul[type="a"] { list-style-type: lower-alpha; }
ul[type="A"] { list-style-type: upper-alpha; }
而且IE的特殊性反而带来了一个好处:IE6是不支持关于属性的选择器的,所以这段代码无效;可是由于IE6支持type属性,于是效果便和其他支持CSS2的浏览器相同了。
0条评论 你不来一发么↓