list-style
Baseline 广泛可用 *
试一试
list-style: square;
list-style: inside;
list-style: url("/shared-assets/images/examples/rocket.svg");
list-style: none;
list-style: georgian inside url("/shared-assets/images/examples/rocket.svg");
list-style: georgian outside url("/non-existent.svg");
<section class="default-example" id="default-example">
<div>
<p>NASA Notable Missions</p>
<ul class="transition-all" id="example-element">
<li>Apollo</li>
<li>Hubble</li>
<li>Chandra</li>
<li>Cassini-Huygens</li>
<li>Spitzer</li>
</ul>
</div>
</section>
.default-example {
font-size: 1.2rem;
}
#example-element {
width: 100%;
background: #be094b;
color: white;
}
section {
text-align: left;
flex-direction: column;
}
hr {
width: 50%;
color: lightgray;
margin: 0.5em;
}
.note {
font-size: 0.8rem;
}
.note a {
color: #009e5f;
}
@counter-style space-counter {
symbols: "\1F680" "\1F6F8" "\1F6F0" "\1F52D";
suffix: " ";
}
此属性的值应用于列表项,包括 <li> 元素和具有 的元素。由于此属性是继承的,因此可以在父元素(通常是 display: list-item;<ol> 或 <ul>)上设置,以使相同的列表样式应用于所有嵌套项。
构成属性
此属性是以下 CSS 属性的简写:
语法
/* type */
list-style: square;
/* image */
list-style: url("../img/shape.png");
/* position */
list-style: inside;
/* two values */
list-style: georgian outside;
list-style: url("img/pip.svg") inside;
/* three values */
list-style: lower-roman url("img/shape.png") outside;
/* Keyword value */
list-style: none;
/* Global values */
list-style: inherit;
list-style: initial;
list-style: revert;
list-style: revert-layer;
list-style: unset;
list-style 属性以一个、两个或三个值指定,顺序不限。如果同时设置了 list-style-type 和 list-style-image,则在图像不可用时,list-style-type 将用作备用。
值
list-style-type-
一个
<counter-style>、<string>或none。如果在简写中省略,则使用默认的disc值。参阅list-style-type。 list-style-image-
一个
<image>或none。如果省略,则使用默认的none值。参阅list-style-image。 list-style-position-
inside或outside。如果省略,则使用默认的outside值。参阅list-style-position。 none-
不使用列表样式。
正式定义
| 初始值 | 作为简写中的每个属性
|
|---|---|
| 应用于 | 列表项 |
| 继承性 | 是 |
| 计算值 | 作为简写中的每个属性
|
| 动画类型 | 作为简写中的每个属性 |
正式语法
list-style =
<'list-style-position'> ||
<'list-style-image'> ||
<'list-style-type'>
<list-style-position> =
inside |
outside
<list-style-image> =
<image> |
none
<list-style-type> =
<counter-style> |
<string> |
none
<image> =
<url> |
<image()> |
<image-set()> |
<cross-fade()> |
<element()> |
<gradient>
<counter-style> =
<counter-style-name> |
<symbols()>
<image()> =
image( <image-tags>? [ <image-src>? , <color>? ]! )
<image-set()> =
image-set( <image-set-option># )
<cross-fade()> =
cross-fade( <cf-image># )
<element()> =
element( <id-selector> )
<symbols()> =
symbols( <symbols-type>? [ <string> | <image> ]+ )
<image-tags> =
ltr |
rtl
<image-src> =
<url> |
<string>
<image-set-option> =
[ <image> | <string> ] [ <resolution> || type( <string> ) ]?
<cf-image> =
[ <image> | <color> ] &&
<percentage [0,100]>?
<id-selector> =
<hash-token>
<symbols-type> =
cyclic |
numeric |
alphabetic |
symbolic |
fixed
无障碍
如果无序列表或有序列表的 list-style 值为 none,除非列表嵌套在 <nav> 导航元素中,否则 Safari 不会将它们识别为可访问性树中的列表。此行为是有意的,不被视为错误。
为确保列表被宣布为列表,请在 <ol> 和 <ul> 元素中添加 role="list",特别是当列表未嵌套在 <nav> 中时。这可以在不影响设计的情况下恢复列表语义。
<ul role="list">
<li>An item</li>
<li>Another item</li>
</ul>
如果 ARIA role 不适用于您的代码,可以使用 CSS 代替。在每个列表项之前添加非空伪内容(如文本或图像)可以恢复列表语义,但这会影响视觉外观。Safari 会判断添加的伪内容是否足以作为可访问内容,如果足够,则恢复列表语义。通常,Safari 认为文本和图像是足够的,这就是下面显示的 content: "+ "; 起作用的原因(但需要额外的样式以不影响设计)。
ul {
list-style: none;
}
ul li::before {
content: "+ ";
}
content: "";(空字符串)声明会被忽略,只包含空格的 content 值(例如 content: " ";)也会被忽略。
这些 CSS 变通方法仅应在无法使用 HTML 解决方案时使用,并且仅在测试以确保它们不会导致可能对用户体验产生负面影响的意外行为之后使用。
示例
设置列表样式类型和位置
HTML
List 1
<ul class="one">
<li>List Item1</li>
<li>List Item2</li>
<li>List Item3</li>
</ul>
List 2
<ul class="two">
<li>List Item A</li>
<li>List Item B</li>
<li>List Item C</li>
</ul>
CSS
.one {
list-style: circle;
}
.two {
list-style: square inside;
}
结果
规范
| 规范 |
|---|
| CSS 列表与计数器模块第 3 级 # list-style-property |
浏览器兼容性
加载中…
另见
- 组件属性:
list-style-type、list-style-image和list-style-position ::marker伪元素- CSS 列表和计数器模块
- CSS 计数器样式模块