简体   繁体   English

将负边距添加到导航后,为什么我的链接不起作用?

[英]Why do my link not work after adding negative margin to nav?

I was make a Jquery function to make the navigation bar stick to the top of the page when scrolled past the header. 我当时做了一个Jquery函数,以使导航栏滚动到标题上方时仍停留在页面顶部。

To make it look smooth I had to add padding-top:110px to the content div and margin-bottom: -80px to the nav div. 为了使其看起来平滑,我必须在内容div中添加padding-top:110px ,在导航div中添加margin-bottom: -80px Now my links do not work. 现在我的链接不起作用。

Any guesses to why? 有什么猜测吗? And how can I fix this to get everything in order? 我该如何解决这个问题,使一切井井有条?

 $(document).ready(function() { var stickyNavTop = $('.nav').offset(); var stickyNav = function() { var scrollTop = $(window).scrollTop(); if (scrollTop > stickyNavTop.top) { $('.nav').addClass('sticky'); } else { $('.nav').removeClass('sticky'); } }; stickyNav(); $(window).scroll(function() { stickyNav(); }); }); 
 html, body { height: 100%; position: relative; } #body { width: 80%; min-height: 100%; border: 1pxcenter; margin: 0 auto; } #header { width: 100%; height: 40%; border: 1px dotted blue; margin: auto; } .nav { margin-bottom: -80px; border: 1px solid black; width: 100%; height: 80px; z-index: 1; position: -webkit-sticky; } a:visited { color: black; } a:hover { color: yellow; } a:active { color: green; } #link { height: 100%; width: 20%; display: inline-block; float: left; border: 1px dotted green; text-decoration: none; text-align: center; padding: none; } .sticky { border: 1px solid black; position: fixed; width: 80%; top: 0; z-index: 100; border-top: 0; } .nav div p { padding-top: 10px; font-size: 1em; } #content { border: 1px solid green; position: relative; padding-top: 110px; padding-bottom: 100px; display: block; width: 100%; max-height: 100%; margin: none; text-align: left; } 
 <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <header id="header"> <h1>FrontYard Fairways</h1> <h2>"Fairways at a fair price"</h2> </header> <nav class="nav"> <a href="FYFHome.html"> <div id="link"> <p>Home</p> </div> </a> <a href="Services.html"> <div id="link"> <p>Services</p> </div> </a> <a href="Customers.html"> <div id="link"> <p>Our Customers</p> </div> </a> <a href="About.html"> <div id="link"> <p>About</p> </div> </a> <a href="Contact.html"> <div id="link"> <p>Contact</p> </div> </a> </nav> <main id="content"> <div> <p> Blahblahablahahlahablhablahablhaab lahablhablahablahabla hablahBlahblahablaha hlahablhablahablhaablahablhablahablahablahablahBlahb lahablahahlahablhablahablhaablahablhablahablahablahablahBlahblahablahahlahablhablahabl haablahablhab lahablahablahablahBlahblahablahahlahablhablahab lhaablahablhablahabl ahablahablahBlahblahabl ahahlaha hablahablhaablahablhablahabla blahablahablah Blahblahablahahlahablhabl ahablhaablahablhablahablahablahablahBlahblahablahahlahablhablahablhaab lahablhablahablahablah ablahBlahbl hablahahlahablhablahablhaablahablha blahablahablahablahBlahblahablahahlahablhablahablhaab lahablhablahab lahablahBl ahblahablahahla hablhablahablh aablahablhablahablahablahablahBlahblahablahah lahablhablahablhaablahablhablahablaha blahablahBlahbla hablahahlahablhablahablhaablahablhablahablahablahablahBla hblahablahahlahablhablah ablhaablahablhablahablahablahablahBlahblahab ahahlahablhablahablh aablahablhablahablahablahablahBla hblahablaha hlahablhablahablhaablahablhablahab lahablahablahBlahblahablahahlahablhablahablhaa blahablhablahablahablahablahBlahblahablahahlahablhablahablhaablahablhabl ahablahablahablahBlahblahablahahlahablhablahablhaablahablhablaha blahablahablahB lahblahablahahlahablhablahablhaablahablhablahablahablahablahBlahblahablahahlahablhablahablhaablahablhablahablahablah ablahBlahblahablahahlah abl ha lahablh aablahablhablahablahablahablahBlahblaha blahahlahablhablahablh aablahablhablahablahablahablahBla hblahablahahlahablhablahablhaablahablhablahablahablahablah Blahblahablahahlahablhablahablhaab lahablhablahablahabla hablahBlahblahablaha hlahablhablahablhaablahablhablahablahablahablahBlahb lahablahahlahablhablahablhaablahablhablahablahablahablahBlahblahablahahlahablhablahabl haablahablhab lahablahablahablahBlahblahablahahlahablhablahab lhaablahablhablahabl ahablahablahBlahblahabl ahahlaha hablahablhaablahablhablahabla blahablahablah Blahblahablahahlahablhabl ahablhaablahablhablahablahablahablahBlahblahablahahlahablhablahablhaab lahablhablahablahablah ablahBlahbl hablahahlahablhablahablhaablahablha blahablahablahablahBlahblahablahahlahablhablahablhaab lahablhablahab lahablahBl ahblahablahahla hablhablahablh aablahablhablahablahablahablahBlahblahablahah lahablhablahablhaablahablhablahablaha blahablahBlahbla hablahahlahablhablahablhaablahablhablahablahablahablahBla hblahablahahlahablhablah ablhaablahablhablahablahablahablahBlahblahab ahahlahablhablahablh aablahablhablahablahablahablahBla hblahablaha hlahablhablahablhaablahablhablahab lahablahablahBlahblahablahahlahablhablahablhaa blahablhablahablahablahablahBlahblahablahahlahablhablahablhaablahablhabl ahablahablahablahBlahblahablahahlahablhablahablhaablahablhablaha blahablahablahB lahblahablahahlahablhablahablhaablahablhablahablahablahablahBlahblahablahahlahablhablahablhaablahablhablahablahablah ablahBlahblahablahahlah abl ha lahablh aablahablhablahablahablahablahBlahblaha blahahlahablhablahablh aablahablhablahablahablahablahBla hblahablahahlahablhablahablhaablahablhablahablahablahablah </p> </div> </main> 

You have overlapping (invisible) elements from your content that covers your links. 您的内容中有重叠(不可见)的元素覆盖了链接。

The following CSS: 以下CSS:

#content{ padding-top: 110px; }

forces your content to sit on top of your navigation links blocking them from being clicked. 强制您的内容位于导航链接的顶部,从而阻止其被单击。

There are several solutions to this. 有几种解决方案。 One way to confirm that this is the case is to remove 确认是这种情况的一种方法是删除

#content{ padding-top: 110px; }

and replace it with 并替换为

#content{ position:relative; top:110px; }

A better way to debug the issue is to open Chrome DevTools and inspecting the #content div to see where the box model overlaps your links and adjust accordingly. 调试此问题的更好方法是打开Chrome DevTools并检查#content div,以查看框模型与您的链接重叠的位置并进行相应调整。

I removed the negative margins applied to the main element, to your nav bar, and removed the height of your header. 我删除了应用于主元素和导航栏的负边距,并删除了标题的高度。 And also some little other things. 还有一些其他的东西。

 $(document).ready(function() { var stickyNavTop = $('.nav').offset(); var stickyNav = function() { var scrollTop = $(window).scrollTop(); if (scrollTop > stickyNavTop.top) { $('.nav').addClass('sticky'); } else { $('.nav').removeClass('sticky'); } }; stickyNav(); $(window).scroll(function() { stickyNav(); }); }); 
 html, body { height: 100%; position: relative; } #body { width: 80%; min-height: 100%; border: 1pxcenter; margin: 0 auto; } #header { width: 100%; /* height: 40%; => that makes your header overlapping with your nav bar*/ border: 1px dotted blue; margin: auto; } .nav { border: 1px solid black; width: 100%; height: 80px; z-index: 1; /* the support of position:sticky is bad: http://caniuse.com/#feat=css-sticky position: -webkit-sticky; */ background: rgba( 255,255,255,0.9); transition: width 0.5s; } a:visited { color: black; } a:hover { color: yellow; } a:active { color: green; } #link { height: 100%; width: calc(20% - 1px );; display: inline-block; float: left; border: 1px dotted green; border-right-width: 0; text-decoration: none; text-align: center; padding: none; } .sticky { border: 1px solid black; position: fixed; width: 80%; top: 0; border-top: 0; } .sticky + #content{ margin-top:80px } .nav div p { padding-top: 10px; font-size: 1em; } #content { border: 1px solid green; padding-top:1em; } 
 <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <header id="header"> <h1>FrontYard Fairways</h1> <h2>"Fairways at a fair price"</h2> </header> <nav class="nav"> <a href="FYFHome.html"> <div id="link"> <p>Home</p> </div> </a> <a href="Services.html"> <div id="link"> <p>Services</p> </div> </a> <a href="Customers.html"> <div id="link"> <p>Our Customers</p> </div> </a> <a href="About.html"> <div id="link"> <p>About</p> </div> </a> <a href="Contact.html"> <div id="link"> <p>Contact</p> </div> </a> </nav> <main id="content"> <div> <p> Blahblahablahahlahablhablahablhaab <br/><br/><br/><br/><br/><br/> lhablahablahabla hablahBlahblahablaha hlahablhablahablhaablahablhablahablahablahablahBlahb lahablahahlahablhablahablhaablahablhablahablahablahablahBlahblahablahahlahablhablahabl haablahablhab lahablahablahablahBlahblahablahahlahablhablahab lhaablahablhablahabl ahablahablahBlahblahabl ahahlaha hablahablhaablahablhablahabla blahablahablah Blahblahablahahlahablhabl ahablhaablahablhablahablahablahablahBlahblahablahahlahablhablahablhaab lahablhablahablahablah ablahBlahbl hablahahlahablhablahablhaablahablha blahablahablahablahBlahblahablahahlahablhablahablhaab lahablhablahab lahablahBl ahblahablahahla hablhablahablh aablahablhablahablahablahablahBlahblahablahah lahablhablahablhaablahablhablahablaha blahablahBlahbla hablahahlahablhablahablhaablahablhablahablahablahablahBla hblahablahahlahablhablah ablhaablahablhablahablahablahablahBlahblahab ahahlahablhablahablh aablahablhablahablahablahablahBla hblahablaha hlahablhablahablhaablahablhablahab lahablahablahBlahblahablahahlahablhablahablhaa blahablhablahablahablahablahBlahblahablahahlahablhablahablhaablahablhabl ahablahablahablahBlahblahablahahlahablhablahablhaablahablhablaha blahablahablahB lahblahablahahlahablhablahablhaablahablhablahablahablahablahBlahblahablahahlahablhablahablhaablahablhablahablahablah ablahBlahblahablahahlah abl ha lahablh aablahablhablahablahablahablahBlahblaha blahahlahablhablahablh aablahablhablahablahablahablahBla hblahablahahlahablhablahablhaablahablhablahablahablahablah Blahblahablahahlahablhablahablhaab lahablhablahablahabla hablahBlahblahablaha hlahablhablahablhaablahablhablahablahablahablahBlahb lahablahahlahablhablahablhaablahablhablahablahablahablahBlahblahablahahlahablhablahabl haablahablhab lahablahablahablahBlahblahablahahlahablhablahab lhaablahablhablahabl ahablahablahBlahblahabl ahahlaha hablahablhaablahablhablahabla blahablahablah Blahblahablahahlahablhabl ahablhaablahablhablahablahablahablahBlahblahablahahlahablhablahablhaab lahablhablahablahablah ablahBlahbl hablahahlahablhablahablhaablahablha blahablahablahablahBlahblahablahahlahablhablahablhaab lahablhablahab lahablahBl ahblahablahahla hablhablahablh aablahablhablahablahablahablahBlahblahablahah lahablhablahablhaablahablhablahablaha blahablahBlahbla hablahahlahablhablahablhaablahablhablahablahablahablahBla hblahablahahlahablhablah ablhaablahablhablahablahablahablahBlahblahab ahahlahablhablahablh aablahablhablahablahablahablahBla hblahablaha hlahablhablahablhaablahablhablahab lahablahablahBlahblahablahahlahablhablahablhaa blahablhablahablahablahablahBlahblahablahahlahablhablahablhaablahablhabl ahablahablahablahBlahblahablahahlahablhablahablhaablahablhablaha blahablahablahB lahblahablahahlahablhablahablhaablahablhablahablahablahablahBlahblahablahahlahablhablahablhaablahablhablahablahablah ablahBlahblahablahahlah abl ha lahablh aablahablhablahablahablahablahBlahblaha blahahlahablhablahablh aablahablhablahablahablahablahBla hblahablahahlahablhablahablhaablahablhablahablahablahablah </p> </div> </main> 

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

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