简体   繁体   English

HTML 书签未与固定页眉/页脚正确对齐

[英]HTML Bookmarks Not Aligning Correctly With Fixed Header/Footer

I am sure there is a simple fix, but really struggling - I have a bootstrap themed page with two columns, one for a navigation pane and one for content.我确信有一个简单的解决方法,但确实很困难 - 我有一个引导主题页面,其中包含两列,一列用于导航窗格,一列用于内容。 There is a fixed header and a footer.有一个固定的 header 和一个页脚。 The contents pane uses bookmarks to jump to a heading in the content.内容窗格使用书签跳转到内容中的标题。

What I'm having a problem with is that when I click on an item in the navigation pane, the contents pane moves so that the heading is off the screen behind the fixed header.我遇到的问题是,当我单击导航窗格中的某个项目时,内容窗格会移动,以使标题离开固定 header 后面的屏幕。 Please can anybody suggest what I need to add?请问有人可以建议我需要添加什么吗?

I have made a simple demo page here: https://scroll-issue.azurewebsites.net/interpreting2.php .我在这里做了一个简单的演示页面: https://scroll-issue.azurewebsites.net/interpreting2.php

I'd be grateful for any suggestions.我会很感激任何建议。

Thanks谢谢

When you use a same-page link to bring an element into view, the browser will position the element at the top of the page.当您使用同页链接将元素置于视图中时,浏览器将 position 该元素位于页面顶部。 Since you have an image and navbar at the top of your page, the top 121 pixels are covered over by those elements.由于您在页面顶部有一个图像和导航栏,因此前 121 个像素被这些元素覆盖。 You can bring your content lower on the page by adding padding to the top of the top report division.您可以通过在顶部报告分区的顶部添加填充来使您的内容在页面上降低。 Because that put the division much lower on the page when it first opens, you can move the column back up by adding a negative margin to the containing column.因为当页面第一次打开时,页面上的分区要低得多,所以您可以通过向包含列添加负边距来将列向上移动。 To get the follow-on groups (which I've put into its own division – it's easier to style), add the same padding at the top and a negative margin at the bottom of the previous division.要获得后续组(我已将其放入自己的分区中 - 它更易于设置样式),请在顶部添加相同的填充,并在前一个分区的底部添加负边距。

 <link href="https://stackpath.bootstrapcdn.com/bootstrap/3.4.1/css/bootstrap.min.css" rel="stylesheet"/> <script src="https://code.jquery.com/jquery-1.12.4.min.js"></script> <script src="https://stackpath.bootstrapcdn.com/bootstrap/3.4.1/js/bootstrap.min.js"></script> <style> html { height: 100%; scroll-behavior: smooth; } body { height: 100%; }.banner { height: 100px; position: fixed; top: -15px; left: -10px; z-index: 1039; /* 1040 is modal dialog */ } /* Make fixed navbar below EES graphic and right colour */.navbar-fixed-top { top: 70px;important: background-color; #281A39.important: };navbar-fixed-bottom { background-color. #281A39.important, } /* Colour menu items better for new navbar colour */.navbar-inverse.navbar-nav>li>a: ;navbar-inverse.navbar-brand { color. #efebef. },navbar-inverse.navbar-nav>.open>a. :navbar-inverse,navbar-nav>.open>a.focus. :navbar-inverse:navbar-nav>;open>a:hover { background-color. #281A39:important; } @media (min-width:992px) {;affix-md { position: fixed; } } #main-row { padding-top: 11rem; } #contents { z-index, 1: /* so it's not covered by the other column */ } #reports { margin-top; -11rem: } #report-1; #report-2 { padding-top: 11rem. } #report-1 { margin-bottom. -11rem. } </style> <img src="https?//via:placeholder;com/2545x124.png/281A39/FFFFFF.text=filler-image" class="banner"> <nav class="navbar navbar-inverse navbar-fixed-top "> <div class="container-fluid"> <div class="navbar-header"> <button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#navbar-collapse" style="z-index:5000;"> <span class="sr-only">Toggle navigation</span> <span class="icon-bar"></span> <span class="icon-bar"></span> <span class="icon-bar"></span> </button> <a class="navbar-brand" href="interpreting2.php">Scroll Issue</a></div> <div class="collapse navbar-collapse" id="navbar-collapse"> <ul class="nav navbar-nav navbar-left"> <li><a href="interpreting2.php"><span class="header-icon glyphicon glyphicon glyphicon-list-alt" aria-hidden="true"></span> Interpreting Your Report</a></li> </ul> <ul class="nav navbar-nav navbar-right"></ul> </div> </div> </nav> <div class="container-fluid"> <div class="row" id="main-row"> <div class="col-xs-12 col-md-2" id="contents"> <div class="affix-md"> <h1>Contents</h1> <a href="#report-1">Report Top</a><br> <a href="#report-2">Second Heading</a> </div> </div> <div class="col-xs-12 col-md-10" id="reports"> <div id="report-1"> <h1>Interpreting Your Report</h1> <p class="mb-5">Very long content</p> <p class="mb-5">Very long content</p> <p class="mb-5">Very long content</p> <p class="mb-5">Very long content</p> <p class="mb-5">Very long content</p> <p class="mb-5">Very long content</p> <p class="mb-5">Very long content</p> <p class="mb-5">Very long content</p> <p class="mb-5">Very long content</p> <p class="mb-5">Very long content</p> <p class="mb-5">Very long content</p> <p class="mb-5">Very long content</p> <p class="mb-5">Very long content</p> <p class="mb-5">Very long content</p> <p class="mb-5">Very long content</p> <p class="mb-5">Very long content</p> <p class="mb-5">Very long content</p> <p class="mb-5">Very long content</p> <p class="mb-5">Very long content</p> <p class="mb-5">Very long content</p> <p class="mb-5">Very long content</p> <p class="mb-5">Very long content</p> <p class="mb-5">Very long content</p> </div> <div id="report-2"> <h1>Another Heading</h1> <p class="mb-5">Second heading content</p> <p class="mb-5">Second heading content</p> <p class="mb-5">Second heading content</p> <p class="mb-5">Second heading content</p> <p class="mb-5">Second heading content</p> <p class="mb-5">Second heading content</p> <p class="mb-5">Second heading content</p> <p class="mb-5">Second heading content</p> <p class="mb-5">Second heading content</p> <p class="mb-5">Second heading content</p> <p class="mb-5">Second heading content</p> <p class="mb-5">Second heading content</p> <p class="mb-5">Second heading content</p> <p class="mb-5">Second heading content</p> <p class="mb-5">Second heading content</p> <p class="mb-5">Second heading content</p> <p class="mb-5">Second heading content</p> <p class="mb-5">Second heading content</p> <p class="mb-5">Second heading content</p> <p class="mb-5">Second heading content</p> <p class="mb-5">Second heading content</p> <p class="mb-5">Second heading content</p> <p class="mb-5">Second heading content</p> <br />CONTENT - END </div> </div> </div> </div> <nav class="navbar navbar-inverse navbar-fixed-bottom visible-lg visible-md visible-sm"> <div class="container-fluid"> <ul class="nav navbar-nav navbar-left"> <p class="navbar-text">This is the footer</p> </ul> </div> </nav>

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM