在 Safari/Webkit 中设置 Details/Summary 标记的样式时出错
Error styling the Details/Summary marker in Safari/Webkit
使用 <details>
标签时,我想在 <summary>
元素的右侧显示翻转三角形。
所以,而不是默认值:
▶ My Cool List
(左对齐)
我想这样做:
My Cool list ▶
(右对齐)
它正在 Chrome:
中工作
帮助我编写了 CSS,它适用于 Chrome 和 Firefox:
// Right-align all summaries.
details > summary {
list-style: none; // Remove the default arrow.
display: flex;
align-items: center; // Vertically center the arrow.
}
details > summary::-webkit-details-marker {
display: none;
}
details > summary::after {
content: '▶';
}
details[open] > summary::after {
content: "▼";
}
然而,在 Safari 上(在桌面上测试 Mojave + iOS14 + iOS12),flippy 三角形被推到一个新行:
My Cool List
▶
在 Safari 中:
那么,如何让 Safari 像 Firefox + Chrome 一样在同一行显示翻转三角形?这个问题好像是display: flex
和::after
伪元素结合使用造成的,但是我对前端开发了解不多所以无从解决。
事实证明,Safari 不处理 <summary>
中的 <p>
标签;当我删除这些标签时,我什至不需要使用 flex 来右对齐伪元素。
您可以添加特定于浏览器的 CSS 来克服 display: flex;
for <summary>
问题。
对于CSS
@media not all and (min-resolution:.001dpcm) { @media {
details > summary {
display: block;
}
}}
对于小号CSS
@media not all and (min-resolution:.001dpcm)
{ @supports (-webkit-appearance:none) {
details > summary {
display: block;
}
}}
使用 <details>
标签时,我想在 <summary>
元素的右侧显示翻转三角形。
所以,而不是默认值:
▶ My Cool List
(左对齐)
我想这样做:
My Cool list ▶
(右对齐)
它正在 Chrome:
中工作// Right-align all summaries.
details > summary {
list-style: none; // Remove the default arrow.
display: flex;
align-items: center; // Vertically center the arrow.
}
details > summary::-webkit-details-marker {
display: none;
}
details > summary::after {
content: '▶';
}
details[open] > summary::after {
content: "▼";
}
然而,在 Safari 上(在桌面上测试 Mojave + iOS14 + iOS12),flippy 三角形被推到一个新行:
My Cool List
▶
在 Safari 中:
那么,如何让 Safari 像 Firefox + Chrome 一样在同一行显示翻转三角形?这个问题好像是display: flex
和::after
伪元素结合使用造成的,但是我对前端开发了解不多所以无从解决。
事实证明,Safari 不处理 <summary>
中的 <p>
标签;当我删除这些标签时,我什至不需要使用 flex 来右对齐伪元素。
您可以添加特定于浏览器的 CSS 来克服 display: flex;
for <summary>
问题。
对于CSS
@media not all and (min-resolution:.001dpcm) { @media {
details > summary {
display: block;
}
}}
对于小号CSS
@media not all and (min-resolution:.001dpcm)
{ @supports (-webkit-appearance:none) {
details > summary {
display: block;
}
}}