设置列表样式
大部分与其他文本相同,但仍然有一些特殊的 CSS 属性需要了解,以及一些可供参考的最佳实践,本文将探讨所有这些。
前提:
计算机基础知识、HTML基础知识(学过的HTML简介)、CSS基础知识(学过的CSS基础知识)、基础CSS文本和字体样式。
目标:
熟悉与列表相关的样式和最佳实践
首先,让我们看一个简单的列表示例。 在文章中我们将看到无序、有序和描述性列表——它们都有相似的风格特征,但个体特征不同。 Github 上是否有其他样式的反例(另请参阅源代码)。
示例列表的 HTML 代码如下:
html
<h2>Shopping (unordered) list</h2>
<p>
Paragraph for reference, paragraph for reference, paragraph for reference,
paragraph for reference, paragraph for reference, paragraph for reference.
</p>
<ul>
<li>Hummus</li>
<li>Pita</li>
<li>Green salad</li>
<li>Halloumi</li>
</ul>
<h2>Recipe (ordered) list</h2>
<p>
Paragraph for reference, paragraph for reference, paragraph for reference,
paragraph for reference, paragraph for reference, paragraph for reference.
</p>
<ol>
<li>Toast pita, leave to cool, then slice down the edge.</li>
<li>
Fry the halloumi in a shallow, non-stick pan, until browned on both sides.
</li>
<li>Wash and chop the salad.</li>
<li>Fill pita with salad, hummus, and fried halloumi.</li>
</ol>
<h2>Ingredient description list</h2>
<p>
Paragraph for reference, paragraph for reference, paragraph for reference,
paragraph for reference, paragraph for reference, paragraph for reference.
</p>
<dl>
<dt>Hummus</dt>
<dd>
A thick dip/sauce generally made from chick peas blended with tahini, lemon
juice, salt, garlic, and other ingredients.
</dd>
<dt>Pita</dt>
<dd>A soft, slightly leavened flatbread.</dd>
<dt>Halloumi</dt>
<dd>
A semi-hard, unripened, brined cheese with a higher-than-usual melting
point, usually made from goat/sheep milk.
</dd>
<dt>Green salad</dt>
<dd>That green healthy stuff that many of us just use to garnish kebabs.</dd>
</dl>
现在,如果您转到示例的演示页面,并使用浏览器开发人员工具查看这些列表元素,您会注意到几个默认样式预设:
在设计列表样式时,需要调整样式,使其保持与周围元素(例如段落和图像,有时称为垂直节奏)相同的垂直宽度以及彼此相对的水平宽度(可以参考 Github 上的这个)完成添加样式的例子css 文本间距,源代码也可以找到)。
文本样式和宽度的 CSS 如下所示:
CSS
/* 通用样式 */
html {
font-family: Helvetica, Arial, sans-serif;
font-size: 10px;
}
h2 {
font-size: 2rem;
}
ul,
ol,
dl,
p {
font-size: 1.5rem;
}
li,
p {
line-height: 1.5;
}
/* 描述列表样式 */
dd,
dt {
line-height: 1.5;
}
dt {
font-weight: bold;
}
现在我们了解了列表的一般宽度,让我们检查一下列表具有的一些特定属性。我们从三个属性开始,这些属性可以在
如前所述,list-style-type 属性允许您设置项目符号的类型,在我们的示例中,我们在有序列表上设置小写罗马数字:
CSS
ol {
list-style-type: upper-roman;
}
显示效果如下:
您可以在列表样式类型参考页面上找到更多选项。
list-style-position 设置项目符号在每个项目开始之前是出现在列表项的内部还是外部。 如上所示,默认为outside,将项目符号放置在列表项之外。
如果该值设置为 inside,则项目符号将放置在线条内部。
CSS
ol {
list-style-type: upper-roman;
list-style-position: inside;
}
list-style-image 属性允许将自定义图像用于项目符号。 它的语法非常简单:
CSS
ul {
list-style-image: url(star.svg);
}
但是css 文本间距,此属性在控制项目符号位置、大小等方面受到限制。最好使用背景属性系列,您将在背景和边框一文中了解更多信息。 在这里我们只是尝试一下!
在我们的示例中,我们的无序列表最终看起来像这样(如之前所示位于底部):
CSS
ul {
padding-left: 2rem;
list-style-type: none;
}
ul li {
padding-left: 2rem;
background-image: url(star.svg);
background-position: 0 0;
background-size: 1.6rem 1.6rem;
background-repeat: no-repeat;
}
我们做这样的事情:
显示效果如下:
可以使用单个缩写属性列表样式来设置上述三个属性。 例如,以下 CSS:
CSS
ul {
list-style-type: square;
list-style-image: url(example.png);
list-style-position: inside;
}
可以替换为:
ul { list-style: square url(example.png) inside; }
属性值可以任意顺序,可以设置一个、两个或全部三个值(排除属性使用disc、none和outside的默认值),如果指定了type和image,如果由于某种原因如果图像加载失败,将使用类型作为后备。
有时,您可能想对排序列表执行不同的计数方法。 例如:从 1 以外的数字开始,或者从侧面倒数,或者以小于 1 的步数进行计数。HTML 和 CSS 有一些工具可以帮助您:
属性允许您从 1 以外的数字开始计数。以下示例:
html
<ol start="4">
<li>Toast pita, leave to cool, then slice down the edge.</li>
<li>
Fry the halloumi in a shallow, non-stick pan, until browned on both sides.
</li>
<li>Wash and chop the salad.</li>
<li>Fill pita with salad, hummus, and fried halloumi.</li>
</ol>
输出结果如下:
属性将反转列表的计数。 下面的例子:
html
<ol start="4" reversed>
<li>Toast pita, leave to cool, then slice down the edge.</li>
<li>
Fry the halloumi in a shallow, non-stick pan, until browned on both sides.
</li>
<li>Wash and chop the salad.</li>
<li>Fill pita with salad, hummus, and fried halloumi.</li>
</ol>
输出结果如下:
注意:如果向后计数的列表项数量大于start属性的值,则计数将继续归零并正向减少。
属性允许设置列表项指定值,如下示例:
html
<ol>
<li value="2">Toast pita, leave to cool, then slice down the edge.</li>
<li value="4">
Fry the halloumi in a shallow, non-stick pan, until browned on both sides.
</li>
<li value="6">Wash and chop the salad.</li>
<li value="8">Fill pita with salad, hummus, and fried halloumi.</li>
</ol>
输出结果如下:
注意:即使您使用非数字列表样式类型,您仍然需要在 value 属性中使用等效的数字值。
在本次学习课程中,我们希望您尝试使用上面学到的内容来设计嵌套列表的样式。 我们已经提供了 HTML 代码,请在其基础上完成以下任务:
为这个无序列表提供圆形项目符号。 为无序列表和有序列表项指定的列宽为其字体大小的 1.5 倍。 为有序列表提供小写项目符号。 请随意使用该列表,尝试不同的项目符号类型、间距和各种其他属性。
如果您犯了错误,您可以随时单击重置按钮来重置。 如果您确实遇到困难并且无法继续,请单击“显示解决方案”按钮以查看可能的解决方案。
一旦掌握了一些基本原则和所涉及的特定属性,列表样式就相对容易理解。 在上一篇文章中,我们将转向另一个主题 - 设置链接样式的各种方法。
CSS 计数器提供了用于自定义列表计数和样式的中级工具,但它们相当复杂。 如果您想更深入地了解,请查看以下资源:
发现此页面内容有问题? 想更多地参与吗? 了解如何做出贡献。
本页面最后一次修改是由 MDN 贡献者于 2023 年 7 月 9 日进行的。
发表评论