我想在Firefox上使用HTML5 summary element。默认情况下,该元素的样式为三角形箭头(请参见示例here)。我想更改此箭头的颜色。 This question解释了如何在Chrome浏览器上完成此操作,但经过测试后,该功能不适用于Firefox。
是否可以使用Firefox更改摘要元素箭头的颜色?
答案 0 :(得分:11)
在Firefox和Chrome中删除插入符号:
details summary { list-style-type: none; } /* Firefox */
details summary::-webkit-details-marker { display: none; } /* Chrome */
details summary::marker { display: none; }
<details>
<summary>Open/Close</summary>
Lorem ipsum dolor sit.
</details>
答案 1 :(得分:4)
当前在FF 68上,我可以通过以下操作来自定义标记:
summary::marker {
color: red;
}
请确保尝试以通用方式应用样式(也请避免嵌套类,以确保遍历不是问题)
此外,由于您可能正在跨浏览器添加样式,因此以下代码段无法正常工作
summary::marker,
summary::-webkit-details-marker {
color: $primary;
}
相反,我必须单独定义它,例如:
summary::marker {
color: $primary;
}
summary::-webkit-details-marker {
color: $primary;
}
答案 2 :(得分:2)
您可以在Firefox(也许还有Edge / Safari)中使用list-style-type
来设置箭头[css-tricks]的样式。
/* replace with custom image */
summary {
list-style-image: url(right-arrow.svg);
}
/* hide arrow */
summary {
list-style-image: none;
}
答案 3 :(得分:1)
/* Hide default arrow */
summary::-moz-list-bullet {
list-style-type: none;
display: block;
}
/* Create customizable arrow */
summary:before {
content: ' ';
border: solid #939faa;
border-width: 0 2px 2px 0;
display: inline-block;
padding: 0 5px 5px 0;
transform: rotate(-45deg);
}
答案 4 :(得分:0)
它适用于Chrome,因为在CSS样式中,有一个“ -webkit”前缀。根据{{3}},主流浏览器使用以下前缀:
请尝试以下示例,其中添加了Firefox CSS。
details summary::-webkit-details-marker {
background: red;
color: #fff;
font-size: 500%;
}
/* Firefox */
details summary::-moz-details-marker {
background: red;
color: #fff;
font-size: 500%;
}
答案 5 :(得分:0)
details > summary:first-of-type {
color: blue;
}
此CSS可以在Firefox上运行,但是您仍然需要使用Chrome的原始方法。
答案 6 :(得分:0)
在Firefox中更改summary
箭头颜色的简单解决方法是简单地更改整个summary
元素的颜色,并将元素的内容放入span
样式不同。
例如:
<style type="text/css">
summary {
color: red;
}
.summary_contents {
color: black;
}
</style>
并且:
<details>
<summary>
<span class="summary_contents">foobar</span>
</summary>
[...]
</details>
答案 7 :(得分:0)
陷阱:如果您使用规范化工具(normalize.css
等)或类似工具,则要在{strong> macOS 的Firefox中隐藏::marker
,则必须同时设置{ {1}}和<summary>
:
::marker
否则, summary {
display: block;
}
summary::marker {
display: none;
}
将从其他地方(规范化器等)获得其样式,并且可能类似于<summary>
,这将阻止您隐藏标记。