css那些事-列表
作者:gcbeen
日期:2013年09月26日
一、列表种类
- 无须列表(ul)
- 有序列表(ol)
- 自定义列表(dl)
xhtml中无序列表的错误嵌套方法:
- 错误一:ul标签与li标签之间插入其他标签。
<ul>
<li>无须列表中的一条内容</li>
<li>无须列表中的一条内容</li>
<div>错误的无序列表嵌套结构</div>
</ul>
- 错误二:多层ul标签嵌套时的错误
<ul>
<li>错误的无序列表嵌套结构</li>
<ul>
<li>错误的无序列表嵌套结构</li>
</ul>
</ul>
- 错误三:li标签未关闭。
<ul>
<li>错误的无序列表嵌套结构
<ul>
<li>错误的无序列表嵌套结构</li>
</ul>
<li>错误的无序列表嵌套结构</li>
浏览器对无序列表的默认解析也是有规律的。无序列表可以分为一级无序列表和多级无序列表,一级无序列表在浏览器中解析后,会在列表li标签前面添加一个小黑点修饰符,而多级无序列表则会根据级数改变列表前面的修饰符。
凡是总有一个尽头,浏览器在解析无序列表时,会不断地对不同级别的无须列表缩进,但是修饰符却只有3种。
如果三层嵌套都无法满足网页中的列表的需求,可以思考一下这个页面中的列表嵌套是否过多。
如果网页中实在是需要更多层嵌套,并且是不同的修饰符,我们还是可以利用CSS样式来修改其修饰符的。
有序列表
有序列表在多级的情况下,理论上应该是随着层级的增加而出现1.1或者1.1.1之类的数字,但浏览器却无法在网页中直接解析出这样的效果。如果需要使用1.1或者1.1.1之类的数字表达方式,那么就只能利用背景图片或者手工输入。
list-style-image属性 设置列表前修饰用的图像。
当list-style-image属性值为none或者属性值中图像的url地址错误时,list-style-type属性将会替代list-style-image属性
ps:在页面实现效果中,list-style-image中某些情况下对位置的控制不如background-image灵活,因此大家采用background-image的方式多于list-style-image的方式。
list-style-position属性 设置列表修饰的位置 * outside: 默认值,列表项目标记放置在文本以外,且环绕文本不根据标记对齐。 * inside: 列表项目标记放置在文本以内,且环绕文本根据标记对齐。
list-style-type
- disc: 默认值,实心圆。
- circle: 空心圆。
- square: 实心方块。
- decimal:阿拉伯数字。
- lower-roman:小写罗马数字。
- upper-roman:大写罗马数字。
- lower-alpha:下写英文字母。
- upper-alpha:大写英文字母。
- none:不使用项目符号。
不调用任何一种修饰符而使用背景图片作为列表的修饰符。前提:必须将list-style-type属性的属性值设置为none,而且list-style-image属性值也为none。
list-style-type属性在页面中显示的效果与padding-left和margin-left有着密切的联系:
ul {
list-style-type: lower-roman;
padding-left: 0;
}
padding-left设为0在FF下看不到列表的修饰符。
ul {
list-style-type: lower-roman;
margin-left: 0;
}
margin-left设为0在IE浏览器下无法正常显示修饰符。
这些并不等同于 list-style-type: none;的效果,而是不同浏览器在解析列表的 padding 与 margin时产生的一种错误的解析方式。
利用背景属性添加背景图片作为列表的修饰符:
ul {
list-style: none;
}
li {
padding-left: 20px;
background: url(images/music.gif) no-repeat left center;
}
二、自定义列表
<dl>
<dt></dt>
<dd></dd>
</dl>
注意点
- dl标签必须与dt标签相邻,dd标签需要对应于一个dt标签。
- dl、dt、dd 3个标签之间不允许出现第四者。
- 标签必须成对出现,嵌套要合理。
dl标签 自定义列表集合,dt标签 自定义列表标题, dd标签 自定义列表内容。
因此自定义列表dl标签一般都是出现在名词性解释的情况下。
三、列表模式的导航
blog comments powered by Disqus