diff options
| author | Matthias Krüger <matthias.krueger@famsik.de> | 2022-01-20 23:37:34 +0100 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2022-01-20 23:37:34 +0100 |
| commit | 35a53b229f383db60eac08b19338424c45f4206a (patch) | |
| tree | be0b501a0a107d97ec2948acf1a2e74e97b89d33 /src/librustdoc/html/static/css | |
| parent | dc393b2eccedb985cdba5d451b2df41ef422cd78 (diff) | |
| parent | 801ac0e24ff6269fe71d22d29b8482e2117b2f82 (diff) | |
| download | rust-35a53b229f383db60eac08b19338424c45f4206a.tar.gz rust-35a53b229f383db60eac08b19338424c45f4206a.zip | |
Rollup merge of #93067 - jsha:fix-scroll-padding-top, r=GuillaumeGomez
rustdoc mobile: fix scroll offset when jumping to internal id Followup to #92692. The semantics of `scroll-margin-top` are a little surprising - the attribute needs to be applied to the element that gets scrolled into the viewport, not the scrolling element. This fixes an issue where clicking on a method (or other item) from the sidebar takes you to a scroll position where the topbar covers up the method name. I'm interested in ideas for how to test this with browser-ui-test, but I think it doesn't yet have what I need. What I need is an assert that `<element>.getBoundingClientRect().y` is > 45. Demo: https://rustdoc.crud.net/jsha/fix-scroll-padding-top/std/string/struct.String.html#method.extend_from_within r? `@GuillaumeGomez`
Diffstat (limited to 'src/librustdoc/html/static/css')
| -rw-r--r-- | src/librustdoc/html/static/css/rustdoc.css | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/src/librustdoc/html/static/css/rustdoc.css b/src/librustdoc/html/static/css/rustdoc.css index 44a9a571fa1..aacbbeee249 100644 --- a/src/librustdoc/html/static/css/rustdoc.css +++ b/src/librustdoc/html/static/css/rustdoc.css @@ -1735,12 +1735,19 @@ details.rustdoc-toggle[open] > summary.hideme::after { } @media (max-width: 700px) { + /* When linking to an item with an `id` (for instance, by clicking a link in the sidebar, + or visiting a URL with a fragment like `#method.new`, we don't want the item to be obscured + by the topbar. Anything with an `id` gets scroll-margin-top equal to .mobile-topbar's size. + */ + *[id] { + scroll-margin-top: 45px; + } + .rustdoc { padding-top: 0px; /* Sidebar should overlay main content, rather than pushing main content to the right. Turn off `display: flex` on the body element. */ display: block; - scroll-margin-top: 45px; } main { |
