CSS 列表

列表用于组织并列或先后关系的内容,HTML 提供无序列表 ul、有序列表 ol。CSS 可以控制列表项的标记符号(圆点、数字、字母或图片)、符号位置,还能去掉默认符号,把列表改造成导航菜单等组件。

列表的基本结构

无序列表 ul 与有序列表 ol 内部都使用 li 作为列表项:

<ul><li>苹果</li><li>香蕉</li></ul>
<ol><li>第一步</li><li>第二步</li></ol>

效果说明:默认情况下,ul 的项目符号是实心圆点,ol 的项目符号是数字序号。

列表符号 list-style-type

list-style-type 设置标记的类型,无序与有序列表的取值不同:

ul { list-style-type: square; }          /* 实心方块 */
ol { list-style-type: decimal; }         /* 1 2 3 ... */
ol.alpha { list-style-type: lower-alpha; } /* a b c ... */

效果说明:无序常用 disc(默认实心圆点)/circle/square/none,有序常用 decimal/lower-alpha/lower-roman 等。

图片符号 list-style-image

list-style-image 用图片替换符号,url() 指向图片地址:

ul {
    list-style-image: url("arrow.png");
}
<ul><li>使用小箭头图片做符号</li></ul>

效果说明:图片符号不会自动缩放,图片尺寸需提前处理好,否则会显得过大或过小。

符号位置 list-style-position

list-style-position 控制符号在文本内部还是外部,取值为 inside 或 outside:

ul.outside { list-style-position: outside; } /* 默认:符号在文本外侧 */
ul.inside  { list-style-position: inside; }  /* 符号与文本同起一行 */

效果说明:outside 时换行文本顶到容器最左、符号独立悬挂;inside 时符号算作文本的一部分,与首字对齐。

简写与清除默认符号

list-style 可一次设置类型、位置与图片,也常用来整体清除默认符号:

ul { list-style: none; }            /* 去掉全部默认符号 */
ol { list-style: lower-roman inside; }

效果说明:list-style: none 会去掉圆点与数字,是制作纯文本列表和导航菜单的前提。

用列表做导航菜单

去掉符号并让 li 横向排列,即可把列表变成导航栏:

.nav { list-style: none; margin: 0; padding: 0; }
.nav li { display: inline-block; margin-right: 15px; }
.nav a { text-decoration: none; color: #1a73e8; }
<ul class="nav">
    <li><a href="#">首页</a></li>
    <li><a href="#">教程</a></li>
    <li><a href="#">关于</a></li>
</ul>

效果说明:display: inline-block 让 li 横向排列,配合无下划线链接形成简洁的顶部导航。

小结

列表样式围绕 list-style-type(符号)、list-style-image(图片符号)、list-style-position(位置)展开,list-style 简写可一键控制。把 list-style: none 与横向排列结合,还能把列表改造成导航菜单。

笔记加载中…