diff --git a/src/librustdoc/html/render.rs b/src/librustdoc/html/render.rs index 4e3181759f999..41700cbaae1ef 100644 --- a/src/librustdoc/html/render.rs +++ b/src/librustdoc/html/render.rs @@ -2925,7 +2925,13 @@ fn render_deref_methods(w: &mut fmt::Formatter, cx: &Context, impl_: &Impl, fn render_impl(w: &mut fmt::Formatter, cx: &Context, i: &Impl, link: AssocItemLink, render_mode: RenderMode, outer_version: Option<&str>) -> fmt::Result { if render_mode == RenderMode::Normal { - write!(w, "
{}
", i.inner_impl())?;
+ let id = derive_id(match i.inner_impl().trait_ {
+ Some(ref t) => format!("impl-{}", Escape(&format!("{:#}", t))),
+ None => "impl".to_string(),
+ });
+ write!(w, "{}
",
+ id, i.inner_impl())?;
+ write!(w, "", id)?;
write!(w, "")?;
let since = i.impl_item.stability.as_ref().map(|s| &s.since[..]);
if let Some(l) = (Item { item: &i.impl_item, cx: cx }).src_href() {
diff --git a/src/librustdoc/html/static/rustdoc.css b/src/librustdoc/html/static/rustdoc.css
index ee94f0baeb9a3..c3ac01bbe0c88 100644
--- a/src/librustdoc/html/static/rustdoc.css
+++ b/src/librustdoc/html/static/rustdoc.css
@@ -441,6 +441,10 @@ a {
.small-section-header:hover > .anchor {
display: initial;
}
+
+.in-band:hover > .anchor {
+ display: initial;
+}
.anchor {
display: none;
}
diff --git a/src/librustdoc/html/static/styles/main.css b/src/librustdoc/html/static/styles/main.css
index 08bf5a10fe9d9..c5f4272b932fc 100644
--- a/src/librustdoc/html/static/styles/main.css
+++ b/src/librustdoc/html/static/styles/main.css
@@ -26,6 +26,7 @@ h1.fqn {
h2, h3:not(.impl):not(.method):not(.type):not(.tymethod), h4:not(.method):not(.type):not(.tymethod) {
border-bottom-color: #DDDDDD;
}
+
.in-band {
background-color: white;
}
@@ -83,6 +84,11 @@ pre {
}
:target { background: #FDFFD3; }
+
+:target > .in-band {
+ background: #FDFFD3;
+}
+
.content .highlighted {
color: #000 !important;
background-color: #ccc;