Reputation: 411
I have a question about navbar-fixed-top. Well, I have a simple problem with it. My fixed navbar covers content, for example in "About us" page, it covers row with "About us" title.
I have no idea how can I fix it, because when I resize website (mobile devices size) the header is visible.
Of course I have this kind of problem with headers in other pages (Full Width and 404).
Also, in Index page, it covers some of carousel slider.
Information:
bootstrap 2.3.2
Let me know, how can I fix it on all resolutions.
Upvotes: 25
Views: 50647
Reputation: 77
This might be old but this one is a workaround. Adding scroll-padding-top do the trick.
https://css-tricks.com/fixed-headers-on-page-links-and-overlapping-content-oh-my/
Upvotes: 0
Reputation: 37
Try it out. It will retain the fixed property of navbar
.navbar{
top:0;
position:fixed;
}
Upvotes: 0
Reputation: 11
var navHeight = $("#menu").height();
$("body").css({paddingTop: (navHeight+12)+'px'});
Try this easy way.
Upvotes: 1
Reputation: 91
It's possible setting a variable for the paddingTop of the body to the height of the navbar could also work and is subsequently a bit more responsive than a fixed 60/65px value.
let padding = $("nav").height() + "px";
A practical example is the Bootstrap .navbar-toogler button and adding a click event to it and setTimeout function which allows the height to change then apply the new value as paddingTop to the body.
jQuery:
$(".navbar-toggler").click(function(){
setTimeout(function(){
let padding = $("nav").height() + "px";
$("body").css("paddingTop", padding)
}, 500)
})
vanillaJS:
document.querySelector(".navbar-toggler").onclick = function(){
setTimeout(function(){
let padding = document.querySelector("nav").offsetHeight + "px";
document.body.style.paddingTop=padding;
}, 500)
};
Upvotes: 0
Reputation: 1
Just add an id or class to the content, and then give it a margin top enough to make the content show without the static navbar hindering it and add the "!important" attribute to make it work.....
Upvotes: 0
Reputation: 1500
I would do this:
// add appropriate media query if required to target mobile nav only
.nav { overflow-y: hidden !important }
This should make sure the nav block doesn't stretch downpage and covers the page content.
Upvotes: 0
Reputation: 1697
the response is in the page:
Twitter Bootstrap - top nav bar blocking top content of the page
Add to your CSS:
body {
padding-top: 65px;
}
or a more complex solution but responsive, if your navbar change the height( ex in tablets appears in more to 60px; or is different ) use a mixed solution with css and javascript
CSS:
#godown{
height: 60px;
}
HTML (resumen)
<body>
<nav class="navbar navbar-fixed-top " role="navigation" id="navMenu">
...
</nav>
<!-- This div make the magic :) -->
<div class="godown-60" id="godown"></div>
<!-- the rest of your site -->
...
JAVASCRIPT:
<script>
//insert this in your jquery
//control the resizing of menu and go down the content in the correct position
$("#navMenu").resize(function () {
$('#godown').height($("#navMenu").height() + 10);
});
if ($("#navMenu").height() > $('#godown').height()) $('#godown').height($("#navMenu").height() + 10);
</script>
Upvotes: 22
Reputation: 1309
Try class="navbar-static-top". It still allows navigation bar to be stay on the top but doesn't block content.
Upvotes: 11