与列表相关的CSS属性

与列表相关的CSS属性

本文介绍了与列表相关的CSS属性。

您可以学习如何使用和编写list-style属性以及counter()函数。

YouTube Video

预览的HTML

css-list.html
  1<!DOCTYPE html>
  2<html lang="en">
  3<head>
  4    <meta charset="UTF-8">
  5    <meta name="viewport" content="width=device-width, initial-scale=1.0">
  6    <title>CSS Properties Example</title>
  7    <link rel="stylesheet" href="css-base.css">
  8    <link rel="stylesheet" href="css-list.css">
  9</head>
 10<body>
 11    <!-- Header -->
 12    <header>
 13        <h1>List Related CSS Properties</h1>
 14    </header>
 15
 16    <!-- Main content -->
 17    <main>
 18        <header>
 19            <h2>List Related Properties</h2>
 20        </header>
 21        <article>
 22            <h3>list-style</h3>
 23            <section>
 24                <header><h4>list-style-type: circle; list-style-position: inside;</h4></header>
 25                <section class="sample-view">
 26                    <h5>Unordered List (ul)</h5>
 27                    <ul>
 28                        <li>Item 1</li>
 29                        <li>Item 2</li>
 30                        <li>Item 3</li>
 31                    </ul>
 32                </section>
 33                <header><h4>list-style: upper-roman outside</h4></header>
 34                <section class="sample-view">
 35                    <h5>Ordered List (ol)</h5>
 36                    <ol>
 37                        <li>First</li>
 38                        <li>Second</li>
 39                        <li>Third</li>
 40                    </ol>
 41                </section>
 42                <header><h4>list-style-image: url('custom-bullet.png')</h4></header>
 43                <section class="sample-view">
 44                    <h5>Custom Bullet List</h5>
 45                    <ul class="custom-list">
 46                        <li>Custom Item 1</li>
 47                        <li>Custom Item 2</li>
 48                        <li>Custom Item 3</li>
 49                    </ul>
 50                </section>
 51            </section>
 52        </article>
 53        <article>
 54            <h3>counter()</h3>
 55            <section>
 56                <header><h4>CSS</h4></header>
 57<pre class="sample">
 58dl {
 59    counter-reset: item;
 60}
 61
 62dl dt::before {
 63    counter-increment: item; /* Increment the counter */
 64    content: counter(item) ". "; /* Display the counter */
 65}
 66</pre>
 67                <header><h4>HTML</h4></header>
 68<pre>
 69&lt;dl&gt;
 70    &lt;dt&gt;Term A&lt;/dt&gt;
 71    &lt;dd&gt;Explication for term A&lt;/dd&gt;
 72    &lt;dt&gt;Term B&lt;/dt&gt;
 73    &lt;dd&gt;Explication for term B&lt;/dd&gt;
 74    &lt;dt&gt;Term C&lt;/dt&gt;
 75    &lt;dd&gt;Explication for term C&lt;/dd&gt;
 76&lt;/dl&gt;
 77</pre>
 78                <header><h4>HTML+CSS</h4></header>
 79                <section class="sample-view">
 80                    <dl>
 81                        <dt>Term A</dt>
 82                        <dd>Explication for term A</dd>
 83                        <dt>Term B</dt>
 84                        <dd>Explication for term B</dd>
 85                        <dt>Term C</dt>
 86                        <dd>Explication for term C</dd>
 87                    </dl>
 88                </section>
 89            </section>
 90        </article>
 91        <article>
 92            <h3>counters()</h3>
 93            <section>
 94                <header><h4>CSS</h4></header>
 95<pre class="sample">
 96ol {
 97    list-style: none;
 98    counter-reset: list-counter;
 99}
100
101li {
102    counter-increment: list-counter;
103}
104
105li::before {
106    content: counters(list-counter, ".") " ";
107}
108</pre>
109                <header><h4>HTML</h4></header>
110<pre>
111&lt;ol&gt;
112    &lt;li&gt;Item A
113        &lt;ol&gt;
114            &lt;li&gt;Subitem A-1&lt;/li&gt;
115            &lt;li&gt;Subitem A-2&lt;/li&gt;
116        &lt;/ol&gt;
117    &lt;/li&gt;
118    &lt;li&gt;Item B
119        &lt;ol&gt;
120            &lt;li&gt;Subitem B-1&lt;/li&gt;
121        &lt;/ol&gt;
122    &lt;/li&gt;
123&lt;/ol&gt;
124</pre>
125                <header><h4>HTML+CSS</h4></header>
126                <section class="sample-view">
127                    <ol>
128                        <li>Item A
129                            <ol>
130                                <li>Subitem A-1</li>
131                                <li>Subitem A-2</li>
132                            </ol>
133                        </li>
134                        <li>Item B
135                            <ol>
136                                <li>Subitem B-1</li>
137                            </ol>
138                        </li>
139                    </ol>
140                </section>
141            </section>
142            <section>
143                <header><h4>CSS</h4></header>
144<pre class="sample">
145article {
146    counter-reset: chapter;
147}
148h1.chapter {
149    counter-increment: chapter;
150    counter-reset: section;
151}
152h1.chapter::before {
153    content: counter(chapter) " ";
154}
155h2.section {
156    counter-increment: section;
157    counter-reset: sub-section;
158}
159h2.section::before {
160    content: counters(chapter, ".") "." counter(section) " ";
161}
162h3.sub-section {
163    counter-increment: sub-section;
164}
165h3.sub-section::before {
166    content: counters(chapter, ".") "." counter(section) "." counter(sub-section) " ";
167}
168</pre>
169                <header><h4>HTML</h4></header>
170<pre>
171&lt;h1 class=&quot;chapter&quot;&gt;Chapter A&lt;/h1&gt;
172&lt;h2 class=&quot;section&quot;&gt;Section A-1&lt;/h2&gt;
173&lt;h3 class=&quot;sub-section&quot;&gt;Subsection A-1-1&lt;/h3&gt;
174&lt;h3 class=&quot;sub-section&quot;&gt;Subsection A-1-2&lt;/h3&gt;
175
176&lt;h2 class=&quot;section&quot;&gt;Section A-2&lt;/h2&gt;
177&lt;h3 class=&quot;sub-section&quot;&gt;Subsection A-2-1&lt;/h3&gt;
178
179&lt;h1 class=&quot;chapter&quot;&gt;Chapter B&lt;/h1&gt;
180&lt;h2 class=&quot;section&quot;&gt;Section B-1&lt;/h2&gt;
181&lt;h3 class=&quot;sub-section&quot;&gt;Subsection B-1-1&lt;/h3&gt;
182</pre>
183                <header><h4>HTML+CSS</h4></header>
184                <section class="sample-view">
185                    <h1 class="chapter">Chapter A</h1>
186                    <h2 class="section">Section A-1</h2>
187                    <h3 class="sub-section">Subsection A-1-1</h3>
188                    <h3 class="sub-section">Subsection A-1-2</h3>
189
190                    <h2 class="section">Section A-2</h2>
191                    <h3 class="sub-section">Subsection A-2-1</h3>
192
193                    <h1 class="chapter">Chapter B</h1>
194                    <h2 class="section">Section B-1</h2>
195                    <h3 class="sub-section">Subsection B-1-1</h3>
196                </section>
197            </section>
198        </article>
199    </main>
200</body>
201</html>

与列表相关的

list-style属性

 1ul {
 2    list-style-type: circle; /* Empty circle bullets */
 3    list-style-position: inside; /* Position bullets inside the content area */
 4}
 5
 6ol {
 7    /* Uppercase Roman numerals with bullets positioned outside */
 8    list-style: upper-roman outside;
 9}
10
11.custom-list {
12    list-style-image: url('custom-bullet.png'); /* Custom image bullets */
13}

list-style属性是用于指定HTML列表元素(如<ul><ol>)的列表标记(如项目符号或数字)样式的CSS属性。该属性允许您控制列表的整体样式,可用于自定义列表的外观。

在此示例中,应用了以下样式。

  • ul:显示内嵌的空心圆形项目符号。
  • ol:使用大写罗马数字编号,数字显示在外侧。
  • **custom-list**类:指定的图像显示为项目符号。

list-style结构

list-style是以下三个属性的速记方式:

  • list-style-type:指定列表项的标记类型(项目符号或数字)。
  • list-style-position:指定标记是放置在列表项的内部(inside)还是外部(outside)。
  • list-style-image:指定用作列表标记的图像。

基本用法

1ul {
2    list-style: square inside url('path/to/image.png');
3}

此代码功能如下:

  • list-style-type: square:将标记类型设置为方形。
  • list-style-position: inside:标记显示在列表项内部。
  • list-style-image: url('path/to/image.png'):使用图像作为标记。

各个属性的说明

list-style-type

list-style-type 指定列表的标记类型。可用的样式取决于列表的类型。

价值的例子
 1ul {
 2    /* Change list bullets to empty circles */
 3    list-style-type: circle;
 4}
 5
 6ol {
 7    /* Number list items with lowercase letters (a, b, c, ...) */
 8    list-style-type: lower-alpha;
 9}
10
11ol.roman-list {
12    /* Number list items with uppercase roman numerals (I, II, III, ...) */
13    list-style-type: upper-roman;
14}
  • none: 不显示标记。
  • disc(默认):一个小黑点。
  • circle:一个小空心圆(空心环)。
  • square:一个小方块。
  • decimal:编号列表,例如 1, 2, 3, ...。
  • lower-alpha:小写字母,例如 a, b, c, ...。
  • upper-alpha:大写字母,例如 A, B, C, ...。
  • lower-roman:小写罗马数字,例如 i, ii, iii, ...。
  • upper-roman:大写罗马数字,例如 I, II, III, ...。
list-style-position
1ul {
2    list-style-position: inside;
3}

list-style-position 属性指定标记(项目符号)是放在列表项的外部还是内部。list-style-position 可以具有以下值:。

  • outside:标记放在列表项的外部,项目在标记之后开始。这是默认值。
  • inside:标记放在列表项的内部,并作为文本的一部分显示。
list-style-image
1ul {
2    list-style-image: url('bullet.png'); /* Use an image as the list marker */
3}

当使用图像作为列表标记时,设置 list-style-image 属性。使用 url() 指定图像,如果图像无法加载,则显示由 list-style-type 指定的标记。

list-style 简写属性

1ul {
2    list-style: square inside url('bullet.png');
3}

list-style 属性是一个简写属性,可同时设置 list-style-typelist-style-positionlist-style-image。顺序是灵活的,但通常按照示例所示书写。在这种情况下,在列表项内部显示一个方形标记,并使用图像作为标记显示。

总结

  • list-style 是一个简写属性,可以一次性指定列表的外观(标记类型、位置、自定义图像)。
  • 还可以单独设置 list-style-typelist-style-positionlist-style-image
  • 您可以根据布局和设计灵活自定义列表标记。

CSS 计数器 (counter())

 1/* Reset the counter */
 2dl {
 3    counter-reset: item;
 4}
 5
 6/* Apply the counter to list items */
 7dl dt::before {
 8    counter-increment: item; /* Increment the counter */
 9    content: counter(item) ". "; /* Display the counter */
10}

您可以使用 CSS 计数器来自动给列表项或特定元素编号。

创建和初始化计数器

1/* Create and initialize the counter */
2ol {
3  counter-reset: section; /* Set the counter name to 'section' */
4}

您可以通过 counter-reset 属性创建并重置计数器。

递增计数器

1/* Increment the counter and display it */
2li::before {
3  counter-increment: section; /* Increment the counter by 1 */
4  content: counter(section) ". "; /* Display the counter value */
5}

您可以通过 counter-increment 属性递增计数器,并通过 counter 函数显示计数器的值。

counters()

CSS 中的 counters 函数对管理自定义计数器(如给列表项编号或排列段落顺序)非常有用。该函数可以用字符串连接多个计数器的值,并在 CSS 内容中显示。在这里,我们将详细解释 counters 函数的基本用法到实际应用示例。

countercounters 的区别

countercounters 函数都用于显示计数器的值,但它们有以下区别。

  • counter:获取单个计数器的值。
  • counters:使用指定分隔符连接多个计数器的值并显示。

例如,如果您希望在嵌套列表项中使用计数器,可以使用 counters 函数将父子计数器连接起来显示。

counters 函数的语法

counters(<counter-name>, <string>);

counters 函数使用以下语法。

  • <counter-name>:指定要使用的计数器名称。
  • <string>:指定插入每个计数器之间的字符串(通常是 .- 这样的分隔符)。

counters 函数示例

接下来,让我们看一个使用 counters 函数的示例。

 1ol {
 2    list-style: none;
 3    counter-reset: list-counter;
 4}
 5
 6li {
 7    counter-increment: list-counter;
 8}
 9
10li::before {
11    content: counters(list-counter, ".") " ";
12}
  • 在这个示例中,父计数器和子计数器被连接用于一个两级嵌套列表。
    • 正在定义 list-counter 计数器。
    • counters 函数用于连接并显示父列表计数器和子列表计数器。

使用多级计数器的高级示例

通过使用 counters 函数,可以灵活管理多级计数器,例如自定义编号或段落编号。例如,在创建包含章节和小节的文档时非常有用。

 1article {
 2    counter-reset: chapter;
 3}
 4
 5h1.chapter {
 6    font-size: 1.2rem;
 7    counter-increment: chapter;
 8    counter-reset: section;
 9}
10
11h1.chapter::before {
12    content: counter(chapter) " ";
13}
14
15h2.section {
16    font-size: 1.1rem;
17    counter-increment: section;
18    counter-reset: sub-section;
19}
20
21h2.section::before {
22    content: counters(chapter, ".") "." counter(section) " ";
23}
24
25h3.sub-section {
26    font-size: 1rem;
27    counter-increment: sub-section;
28}
29
30h3.sub-section::before {
31    content: counters(chapter, ".") "." counter(section) "." counter(sub-section) " ";
32}

在这段代码中,章节计数器(h1)、小节计数器(h2)和子小节计数器(h3)都会被重置,并使用 counters 函数将每一级计数器连接起来。

总结

当您想要自定义并层级式显示多个计数器时,counters 函数非常有用。通过使用 CSS 计数器,您可以自由定制列表和标题的编号,为网页提供高级的信息结构。

您可以在我们的YouTube频道上使用Visual Studio Code跟随上述文章进行学习。 请也查看我们的YouTube频道。

YouTube Video