html - 固定页眉与页内 anchor 重叠

标签 html url anchor

如果我在 HTML 页面中有一个非滚动标题,固定在顶部,具有定义的高度:

有没有办法使用 URL anchor (#fragment 部分)让浏览器滚动到页面中的某个点,但仍然尊重固定元素的高度 没有 JavaScript 的帮助

http://example.com/#bar
WRONG (but the common behavior):         CORRECT:
+---------------------------------+      +---------------------------------+
| BAR///////////////////// header |      | //////////////////////// header |
+---------------------------------+      +---------------------------------+
| Here is the rest of the Text    |      | BAR                             |
| ...                             |      |                                 |
| ...                             |      | Here is the rest of the Text    |
| ...                             |      | ...                             |
+---------------------------------+      +---------------------------------+

最佳答案

如果您不能或不想设置新类,请添加一个固定高度的 ::before :target 的伪元素CSS 中的伪类:

:target::before {
  content: "";
  display: block;
  height: 60px; /* fixed header height*/
  margin: -60px 0 0; /* negative fixed header height */
}

或者使用 jQuery 滚动相对于 :target 的页面:

var offset = $(':target').offset();
var scrollto = offset.top - 60; // minus fixed header height
$('html, body').animate({scrollTop:scrollto}, 0);

关于html - 固定页眉与页内 anchor 重叠,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58403068/

相关文章:

java - 链接到 Javadoc 中的外部 URL?

javascript - 年份制作模型 Javascript HTML 链接到 URL

angular - Routerlink 在没有 anchor 标记的情况下工作

javascript - 强制用户按 <ol> <li> 顺序单击 <a> 链接

javascript - 使用 jQuery 移动按钮

如果悬停表单或单击输入框,jQuery 应用动画

java - 如何使用java从网页的URL中提取查询字符串

javascript - 带有 anchor 元素的 jQuery mailto

jquery - 多个粘性元素 Jquery Sticky Float

html - 如何使文本溢出 float