diff --git a/src/librustdoc/html/static/css/rustdoc.css b/src/librustdoc/html/static/css/rustdoc.css
index d0229bdb5f23c..c7e1330e86acf 100644
--- a/src/librustdoc/html/static/css/rustdoc.css
+++ b/src/librustdoc/html/static/css/rustdoc.css
@@ -158,8 +158,8 @@ h1.fqn {
Underlines elsewhere in the documentation break up visual flow and tend to invert
section hierarchies. */
h2,
-.top-doc h3,
-.top-doc h4 {
+.top-doc .docblock > h3,
+.top-doc .docblock > h4 {
border-bottom: 1px solid;
}
h3.code-header {
@@ -1669,6 +1669,11 @@ details.rustdoc-toggle[open] > summary.hideme::after {
content: "Collapse";
}
+/* This is needed in docblocks to have the "▶" element to be on the same line. */
+.docblock summary > * {
+ display: inline-block;
+}
+
/* Media Queries */
@media (min-width: 701px) {
diff --git a/src/test/rustdoc-gui/docblock-details.goml b/src/test/rustdoc-gui/docblock-details.goml
new file mode 100644
index 0000000000000..2edbf1e4e2d8c
--- /dev/null
+++ b/src/test/rustdoc-gui/docblock-details.goml
@@ -0,0 +1,23 @@
+// This ensures that the ``/`` elements are displayed as expected.
+goto: file://|DOC_PATH|/test_docs/details/struct.Details.html
+show-text: true
+local-storage: {"rustdoc-theme": "dark", "rustdoc-use-system-theme": "false"}
+reload:
+
+// We first check that the headers in the `.top-doc` doc block still have their
+// bottom border.
+assert-text: (".top-doc .docblock > h3", "Hello")
+assert-css: (
+ ".top-doc .docblock > h3",
+ {"border-bottom": "1px solid rgb(221, 221, 221)"},
+)
+// We now check that the `` doesn't have a bottom border and has the correct display.
+assert-css: (
+ ".top-doc .docblock summary h4",
+ {"border-bottom": "0px none rgb(221, 221, 221)"},
+)
+// This allows to ensure that summary is on one line only!
+assert-property: (".top-doc .docblock summary h4", {"offsetHeight": "33"})
+assert-css: (".top-doc .docblock summary h4", {"margin-top": "15px", "margin-bottom": "5px"})
+// So `33 + 15 + 5` == `53`
+assert-property: (".top-doc .docblock summary", {"offsetHeight": "53"})
diff --git a/src/test/rustdoc-gui/src/test_docs/lib.rs b/src/test/rustdoc-gui/src/test_docs/lib.rs
index b6fe9eb2565bd..aa2f78289bea2 100644
--- a/src/test/rustdoc-gui/src/test_docs/lib.rs
+++ b/src/test/rustdoc-gui/src/test_docs/lib.rs
@@ -277,3 +277,15 @@ pub use macros::*;
#[doc(alias = "AliasForTheStdReexport")]
pub use ::std as TheStdReexport;
+
+pub mod details {
+ /// We check the appearance of the ``/`` in here.
+ ///
+ /// ## Hello
+ ///
+ ///
+ ///