如何隐藏Chrome中HTML5 <details>元素上默认显示的箭头?

DAD*_*ADU 44 css html5 google-chrome summary details

我现在还很早,但我也知道你们都是最重要的.

我想使用HTML5详细信息元素:

<details>
<summary>What's the HTML5 details element?</summary>
<p>The details element represents a disclosure widget from which the user can obtain additional information or controls.</p>
</details>
Run Code Online (Sandbox Code Playgroud)

在撰写本文时,Chrome 12 beta是实际提供详细信息元素功能的唯一浏览器(点击摘要切换详细信息内容).因此,要回答以下问题,您可能希望使用该浏览器.

您是否知道如何隐藏Chrome中详细信息元素上默认显示的箭头?

它有点像<input type="search" />Webkit中的默认样式(请参阅http://css-tricks.com/webkit-html5-search-inputs/).你可以改变它但不是那么明显.

编辑

尝试了以下CSS代码但没有成功:

details,
details summary {
padding-left:0;
background-image:none;
-webkit-appearance:none;
}
Run Code Online (Sandbox Code Playgroud)

可能我们需要用一些奇怪的伪选择器来定位它,details::-webkit-details-disclosure-widget或者目前根本没有办法改变它.

此外,我在规范中发现了这一点:

第一个容器应该包含至少一个行框,并且该行框应该包含一个公开小部件(通常是一个三角形),水平放置在details元素的左边框内.该小部件应允许用户请求显示或隐藏详细信息.

DAD*_*ADU 66

我不打算回答我自己的问题,但我有解决方案.

details summary::-webkit-details-marker {
  display:none;
}
Run Code Online (Sandbox Code Playgroud)

请注意,如果您未提供规范允许的摘要元素,则仍会显示公开窗口小部件.

  • 值得注意的是,现在这个元素有一个非 webkit 前缀选择器: ```:marker``` 为了实现这个,你需要 ```::marker{ display:none; } 摘要{ 列表样式:无 }``` (3认同)
  • 我看到的唯一问题是,一旦其他人开始支持"<DETAILS>",这将无法跨浏览器工作 (2认同)
  • 这适用于Chrome,但也需要支持Firefox:http://stackoverflow.com/a/6195588/1293492这两个答案应该合并。 (2认同)

Wil*_*kel 15

鉴于我当前的计算机无法运行Chrome而且我无法访问我通常使用的计算机,我不确定这是否有效,但请尝试将其添加到您的css文件中:

details > summary:first-of-type {
    list-style-type: none;
}
Run Code Online (Sandbox Code Playgroud)

请告诉我它是否有效,我只是在推荐中看到它,而不是官方规格.

  • 这适用于Firefox,但是为了支持Chrome,这也是必需的:http://stackoverflow.com/a/6202729/1293492这两个答案应该合并. (4认同)
  • 谢谢!这个不适用于Chrome. (2认同)

eye*_*hUp 12

在 2021 年重新审视,::-webkit-details-marker不再有效。您需要::marker像这样定位伪元素:

details > summary {
  list-style: none;
}
details > summary::marker {
  display: none;
}
Run Code Online (Sandbox Code Playgroud)


小智 7

我觉得这很有效.

:: - webkit-details-marker {display:none; }


小智 5

summary::-webkit-details-marker {
  font-size:0px
}
Run Code Online (Sandbox Code Playgroud)


Tau*_*man 5

我在 Firefox 65.0.1 上,可以通过这种方式删除箭头:

details > summary {display:block}
Run Code Online (Sandbox Code Playgroud)


小智 5

根据https://developer.mozilla.org/zh-CN/docs/Web/HTML/Element/details#Customizing_the_disclosure_widget

您可以使用以下方法实现此目的:

details > summary {
  list-style: none;
}
details > summary::-webkit-details-marker {
  display: none;
}

Run Code Online (Sandbox Code Playgroud)

  • 对我来说,这是最合适的答案,因为它在 Firefox、Safari 和 chrome 上都对我有用 (2认同)
  • 有人说 webkit 前缀已经过时,你只需要使用 ::marker 即可。我发现 iOS 15.4 中并非如此,因此我将两者都包含在内。 (2认同)
  • 我可以确认,在 iOS **15.5** 上,仍然需要 `summary::-webkit-details-marker` 来正确选择和隐藏三角形项目符号。 (2认同)