CSS::marker 自定义点和数字的某些样式
使用 或 键自定义数字或点的颜色、大小或类型。很简单。
感谢CSS ::marker我们可以更改内容以及一些项目符号和数字样式。
浏览器兼容性
当 Chromium 86 发布时,::marker 桌面版和 Android 版 Firefox、桌面版 Safari 和 Chromium Safari、桌面版 iOS Safari 将在 MDN 的浏览器兼容性矩阵上获得更新支持。
伪元素
考虑以下简单的 HTML 无序列表:
<ul>
<li>深网|美团的头号创业项目:王兴发话“这场仗一定要打赢”</li>
<li>外媒:华为受美国制裁出现转折,美国或允许部分公司提供非5G零件</li>
<li>iPhone12不到一周就破发 经销商:办5G套餐能降1300多元</li>
<li>威马汽车自燃事件续:官方承认缺陷电池并召回,占总销量3.6%</li>
<li>iPhone 背后的浓浓塑料情:富士康薅苹果羊毛,库克偷偷找备胎</li>
</ul>
复制代码我们知道它将像这样渲染
每个 今天我们很高兴谈论伪元素 关键术语:伪元素表示不在文档树中的文档元素。例如,您可以使用伪元素 ,位于实际内容和 eee.: 之前。 列表项通常是 在使用 很方便,但我们还需要更多。更改颜色、大小、间距等等!这就是 警告:如果上面的列表中没有粉红点,则您的浏览器不支持 这意味着 List 点都以 ♹♹ 类型。在以下示例中,第一个项目的样式为 开头。 创建列表。 仅使用一行 CSS 即可更改列表项符号。 ::marker,浏览器样式为您创建的点元素创建。 p::first-line 选择段落的第一行,即使该行文本不会破坏 HTML 元素。 在每个列表项元素内自动生成的
::marker 伪元素标记框中创建标记li::before {
content: "::before";
background: lightgray;
border-radius: 1ch;
padding-inline: 1ch;
margin-inline-end: 1ch;
}
复制代码 HTML 元素,但其他元素也可以通过 display:list-item 成为列表项。 <dl>
<dt>深网|美团的头号创业项目:王兴发话“这场仗一定要打赢”</dt>
<dd>L外媒:华为受美国制裁出现转折,美国或允许部分公司提供非5G零件</dd>
<dd>iPhone12不到一周就破发 经销商:办5G套餐能降1300多元</dd>
<dt>威马汽车自燃事件续:官方承认缺陷电池并召回,占总销量3.6%</dt>
<dd>iPhone 背后的浓浓塑料情:富士康薅苹果羊毛,库克偷偷找备胎</dd>
</dl>
复制代码dd {
display: list-item;
list-style-type: "?";
padding-inline-start: 1ch;
}
复制代码标记样式
::marker之前,可以使用list-style-type和li {
list-style-image: url(/right-arrow.svg);
/* OR */
list-style-type: '?';
padding-inline-start: 1ch;
}
复制代码::marker 的用武之地,它允许这些伪元素独立于 CSS 或全局定位。 li::marker {
color: hotpink;
}
li:first-child::marker {
font-size: 5rem;
}
复制代码::marker。list-style-type 属性提供非常有限的样式选项。 ::marker 伪元素意味着您可以定位标记本身并直接对其应用样式,从而实现更多控制。 ::marker 无法使用所有 CSS 属性。规范中明确规定了允许和禁止的属性列表。如果您尝试使用此伪元素进行一些有趣的操作但不起作用,下面的列表提供了有关 CSS 允许和不允许的内容的指导。做。 允许的 CSS::标记属性
动画-*过渡-*颜色方向字体-*字体-*竞价时-*❙ ni it - space::marker 内容可以通过 content 更改,而不是 list-style-type,第二个项目的样式为 ::marker。在第一种情况下,属性适用于整个列表项,而不仅仅是标记,这意味着文本和标记都是动画的。当使用 ::marker 时,我们只能定位标记框而不是文本。
另请注意,禁用的属性不会影响背景。
列表样式
li:nth-child(1) {
list-style-type: '?';
font-size: 2rem;
background: hsl(200 20% 88%);
animation: color-change 3s ease-in-out infinite;
}
复制代码标记样式
li:nth-child(2)::marker {
content: '!';
font-size: 2rem;
background: hsl(200 20% 88%);
animation: color-change 3s ease-in-out infinite;
}
复制代码更改标记内容
以下是设置标记样式的一些方法。
编辑所有列表项
li {
list-style-type: "?";
}
/* OR */
li::marker {
content: "?";
}
复制代码仅编辑一项列表项
li:last-child::marker {
content: "?";
}
复制代码将列表项编辑为 SVG
li::marker {
content: url(/heart.svg);
content: url(#heart);
content: url("data:image/svg+xml;charset=UTF-8,<svg xmlns='http://www.w3.org/2000/svg' version='1.1' height='24' width='24'><path d='M12 21.35l-1.45-1.32C5.4 15.36 2 12.28 2 8.5 2 5.42 4.42 3 7.5 3c1.74 0 3.41.81 4.5 2.09C13.09 3.81 14.76 3 16.5 3 19.58 3 22 5.42 22 8.5c0 3.78-3.4 6.86-8.55 11.54L12 21.35z' fill='none' stroke='hotpink' stroke-width='3'/></svg>");
}
复制代码编辑编号列表
但是 ♷❀> 默认情况下,有序列表项的标记是数字点。在CSS中,这些函数被称为计数器,它们的功能非常强大。它们甚至具有设置和重置数字开头和结尾或交换罗马数字的属性。我们可以设计它吗?是的,我们甚至可以使用标记的内容值来创建我们自己的编号表示。
li::marker {
content: counter(list-item) "› ";
color: hotpink;
}
复制代码调试
Chrome DevTools 已准备好帮助您检查、调试和修改应用于 ::marker 伪元素的样式。
未来的伪元素样式
了解有关::marker的更多信息,请访问:
- 来自 Smass 和计数器、Countering 的 CSS 列表♿来自 CSS-Tricks 的 CSS 计数器和 CSS 网格
- 使用MDN 的 CSS 计数器
能够访问一直难以设计样式的东西真是太好了。您可能想要设置其他自动生成的元素的样式。您可能会对 或在不同浏览器中实现不同的搜索输入自动完成指示器感到沮丧。
作者:杭州程序员张章
链接:https://juejin.im/post/6894890214330908679
来源:版权所有来源:掘金。商业转载请联系作者获取授权。非商业转载请注明出处。
版权声明
本文仅代表作者观点,不代表Code前端网立场。
本文系作者Code前端网发表,如需转载,请注明页面地址。
code前端网