列表很有用,因为它们以结构化和有组织的方式呈现信息。列表提高了网页内容的可读性和理解性。因此,如果内容被列出,就很容易理解。
列表通常用于显示项目、步骤、选项或任何其他类型的应按顺序或成组呈现的相关信息。
本章将讨论如何使用 CSS 控制列表类型、位置、样式等。在此之前,让我们了解一下以下部分中 HTML 列表有何不同。
HTML 列表
HTML 主要提供两种列表 - <ol>(有序列表)和 <ul>(无序列表) .
名称 | 描述 | 语法 |
---|---|---|
有序列表 (<ol>) | 当项目需要以特定顺序呈现时,使用有序列表。通常用于过程、步骤、指令或顺序重要的任何信息序列。 |
|
无序列表 (<ul>) | 当项目的顺序无关紧要并且您希望将项目作为一个组呈现时,可以使用无序列表。通常用于功能、优点、选项或任何非顺序信息的列表。 |
|
示例
让我们看一下两种列表的示例(没有 CSS):
<!DOCTYPE html>
<html>
<head>
<title>CSS - Lists</title>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<style>
h2 {margin-bottom: 5px;}
</style>
</head>
<body>
<div>
<h2>有序列表</h2>
<ol class="list">
<li>列表已排序。</li>
<li>It is used in cases where we need to follow a sequence.</li>
<li>The points are numbered.</li>
</ol>
<h2>无序列表</h2>
<ul class="list">
<li>该列表无序。</li>
<li>It is used in cases where we need not follow a sequence.</li>
<li>The points are bulleted.</li>
</ul>
</div>
</body>
</html>
列表 - CSS 属性
CSS 提供了一组属性,可以可应用于任何列表,如下所示:
list-style-type 允许您控制标记的形状或外观。
列表样式位置指定换行到第二行的长点是否应与第一行对齐,还是从标记开头下方开始。
list-style-image 指定标记的图像,而不是项目符号点或数字。
list-style 作为前面的属性。
列表或项目符号样式的项目标记
要更改用于列表项目的标记类型,属性 list-style-type可以使用。相同的属性可用于有序列表和无序列表。
让我们看一个示例:
<!DOCTYPE html>
<html>
<head>
<title>CSS - Lists</title>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<style>
h2 { margin-bottom: 5px; }
ol.o1 { list-style-type: lower-roman; }
ol.o2 { list-style-type: upper-alpha; }
ul.u1 { list-style-type:square; }
ul.u2 { list-style-type: circle; }
</style>
</head>
<body>
<div>
<h2>Ordered list - Item markers</h2>
<ol class="o1">
<li>The item marker is lower-roman.</li>
<li>It is used in cases where we need to follow a sequence.</li>
</ol>
<ol class="o2">
<li>The item marker is upper-alpha.</li>
<li>It is used in cases where we need to follow a sequence.</li>
</ol>
<h2>Unordered list - Item markers</h2>
<ul class="u1">
<li>The item marker is square.</li>
<li>It is used in cases where we need not follow a sequence.</li>
</ul>
<ul class="u2">
<li>The item marker is circle.</li>
<li>It is used in cases where we need not follow a sequence.</li>
</ul>
</div>
</body>
</html>
下表列出了可用于属性 list-style-type 的可能值:
值 | 说明 | 示例 |
---|---|---|
无 | NA | NA |
圆盘(默认) | 实心圆 | |
圆 | 空圆 | |
正方形 | 实心正方形 | |
小数 | 数字 | 1, 2, 3, 4 , 5, ... |
小数点前导零 | 数字前加 0 | 01, 02, 03, 04 , 05, ... |
小写字母 | 小写字母数字字符 | a, b, c, d, e, ... |
大写字母 | 大写字母数字字符 | A、B、C、D、E、... |
小写罗马数字 | 小写罗马数字 | i, ii, iii, iv, v, ... |
大写罗马数字 | 大写罗马数字 | I、II、III、IV、V、... |
低位希腊语 | 标记为低位希腊语 | alpha、beta、gamma、... |
下拉丁文 | 标记为下拉丁文 | a、b、c、d、e、... |
上拉丁文 | 标记为上拉丁文 | A、B、C、D、E、... |
希伯来语 | 标记为传统希伯来语编号 | |
亚美尼亚语 | 标记为传统的亚美尼亚编号 | |
格鲁吉亚编号 | 标记为传统的格鲁吉亚编号 | |
中日韩表意文字 | 标记是纯表意数字 | |
平假名 | 标记为日语编号 - 平假名 | a、i、u、e、o、ka、ki |
片假名 | 标记是日语编号 - 片假名 | A、I、U、E、O、KA、KI |
hiragana-iroha | 标记为日语编号(平假名-iroha) | i、ro、ha、ni、ho、he、to |
片假名- iroha | 标记为日文编号(片假名-iroha) | I、RO、HA、NI、HO、HE、TO |
list-style-type 属性以及所有其他与列表相关的属性只能应用于显示 list-item 的元素,但 CSS 不区分有序列表项和无序列表项。用户代理可以禁止将有序标记应用于无序列表,反之亦然。您不能指望这一点,所以要小心。
项目列表标记 - 图像(使用自定义项目符号图像)
您可能更喜欢使用图像作为项目列表标记。 list-style-image 属性可用于指定图像作为项目列表标记。
您可以使用自己的项目符号样式。如果未找到图像,则返回默认项目符号。
语法
ul { list-style-image: url('URL') }
让我们看一个示例:
<!DOCTYPE html>
<html>
<head>
<title>CSS - Lists</title>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<style>
h2 { margin-bottom: 5px; }
div { padding: 5px; margin-left: 100px;}
ul { list-style-image: url('/images/bullet.gif') }
</style>
</head>
<body>
<div>
<h2>Unordered list - Image as item marker</h2>
<ul>
<li>The item marker is square.</li>
<li>It is used in cases where we need not follow a sequence.</li>
</ul>
<ul>
<li>The item marker is circle.</li>
<li>It is used in cases where we need not follow a sequence.</li>
</ul>
</div>
</body>
</html>
要记住的要点:
建议为图像提供替代方案作为列表标记,以便在图像未加载或损坏的情况下,用户有一个后备选项。
语法:
ul { list-style-image: url('URL'); list-style-type: circle / square; }
语法:
ul { list-style-image: url('URL'); list-style-type: circle / square; }
ul ul { list-style-image: none; }
以上各点在以下示例中得到演示:
<!DOCTYPE html>
<html>
<head>
<title>CSS - Lists</title>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<style>
h2 { margin-bottom: 5px; }
div { padding: 5px; margin-left: 100px;}
ul { list-style-image: url('/images/bullet.gif') }
ul ul { list-style-image: none; }
</style>
</head>
<body>
<div>
<h2>Unordered list - Image as item marker</h2>
<ul>
<li>The item marker is an image.</li>
<li>It is used in cases where we need use images.
<ul>
<li>The item marker is a circle.</li>
<li>this demonstrates skipping image marker for sub item list.</li>
</ul>
</li>
</ul>
</div>
</body>
</html>
列表项标记 - 位置或项目符号位置
list-style-position 属性指示标记应出现在包含项目符号点的框内部还是外部。它可以具有以下值之一 -
序号 | 值 | 描述 |
---|---|---|
1 | 无 | NA |
2 | 内部 | 如果文本进入第二行,文本将换行到标记下方。它还将具有适当的缩进。 |
3 | 外部 | 如果文本进入第二行,则文本将是与第一行的开头对齐(在项目符号的右侧)。 |
4 | 继承 | 继承属性 |
让我们看一下下面的示例,其中从列表中删除了填充并添加了左侧红色边框:
<!DOCTYPE html>
<html>
<head>
<title>CSS - Lists</title>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<style>
body {
padding-left: 50px;
}
ul:nth-of-type(1) {
list-style-position: inside;
padding: 0;
border-left: solid 2px red;
}
ul:nth-of-type(2) {
list-style-position: outside;
padding: 0;
border-left: solid 2px red;
}
</style>
</head>
<body>
<h2>List style position</h2>
<div>
<ul style = "list-style-type:circle; list-style-position:outside;">
<li>The item marker is circle, with style position as outside. Let us see where the bullet is lying.</li>
<li>It is used in cases where we need not follow a sequence.</li>
</ul>
</div>
<div>
<ul style = "list-style-type:square; list-style-position:inside;">
<li>The item marker is square, with style position as inside. Let us see where the bullet is lying.</li>
<li>It is used in cases where we need not follow a sequence.</li>
</ul>
</div>
</body>
</html>
list-style - 简写属性
list-style 允许您将所有三个列表属性指定到一个表达式中。
以下是 list- 的值style 可以容纳:
<list-style-type>
<list-style-image>
<list-style-position>
要记住的要点:
传递给list-style的值的顺序不固定。
三个值中的任何一个都可以省略.
如果缺少任何值,则将使用相同的默认值进行填充。但必须至少传递一个值。
让我们看一个例子:
<!DOCTYPE html>
<html>
<head>
<title>CSS - Lists</title>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<style>
div { border: 2px solid; width: 500px;}
</style>
</head>
<body>
<h2>List style - shorthand</h2>
<h3>Three values passed</h3>
<ul style = "list-style: url('C:/WORK/CSS/tp-css/images/try-it.jpg') circle outside;">
<li>The item marker is an image, position as outside. In absence of image, the marker will be a circle.
Try not loading the image and see the type as circle.</li>
<li>It is used in cases where we need not follow a sequence.</li>
</ul>
<h3>Two values passed</h3>
<ul style = "list-style: square inside">
<li>The item marker is square, with style position as inside and no image.</li>
<li>It is used in cases where we need not follow a sequence.</li>
</ul>
<h3>One value passed</h3>
<ul style = "list-style: disc">
<li>The item marker is disc, with style position as outside (default) and no image (default - none).</li>
<li>It is used in cases where we need not follow a sequence.</li>
</ul>
</body>
</html>
受控列表计数
At我们可能希望对有序列表进行不同的计数 - 例如,从 1 以外的数字开始,或者向后计数,或者以大于 1 的步长计数。HTML 和 CSS 有一些工具可以在这方面为您提供帮助。
start
start 属性允许您从 1 以外的数字开始计数,如以下示例所示:
<!DOCTYPE html>
<html>
<head>
<title>CSS - Lists</title>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
</head>
<body>
<h2>使用start控制计数</h2>
<ol start="4">
<li>Java.</li>
<li>HTML.</li>
<li>CSS.</li>
<li>React.</li>
</ol>
</body>
</html>
reversed
相反的属性将启动列表反向或向下计数,而不是向上计数,如下例所示:
<!DOCTYPE html>
<html>
<head>
<title>CSS - Lists</title>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
</head>
<body>
<h2>Controlled counting using start</h2>
<ol start="4" reversed>
<li>Java.</li>
<li>HTML.</li>
<li>CSS.</li>
<li>React.</li>
</ol>
</body>
</html>
value
value 属性允许您将列表项设置为特定的数字值,如以下示例所示:
<!DOCTYPE html>
<html>
<head>
<title>CSS - Lists</title>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
</head>
<body>
<h2>使用start控制计数</h2>
<ol start="4" reversed>
<li value="2">Java.</li>
<li value="3">HTML.</li>
<li value="1">CSS.</li>
<li value="4">React.</li>
</ol>
</body>
</html>
使用颜色设置列表样式
我们可以使用某些样式使列表看起来更时尚、色彩更丰富,如以下示例所示。正如我们所见,添加到 <ul> 或 <ol> 标记的任何样式都会影响整个列表,而添加到单独的 <li> 标记只会影响相应列表的项目。
<!DOCTYPE html>
<html>
<head>
<title>CSS - Lists</title>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<style>
ol{
list-style: upper-latin;
background: Aquamarine;
padding:20px;
}
ol li{
background: silver;
padding:10px;
font-size:20px;
margin:10px;
}
ul{
list-style: square inside;
background: teal;
padding:20px;
}
ul li{
background: olive;
color:white;
padding:10px;
font-size:20px;
margin:10px;
}
</style>
</head>
<body>
<h2>使用start控制计数</h2>
<ol>
<li>Java.</li>
<li>HTML.</li>
<li>CSS.</li>
<li>React.</li>
</ol>
<ul>
<li>Java.</li>
<li>HTML.</li>
<li>CSS.</li>
<li>React.</li>
</ul>
</body>
</html>