所有以前的解决方案都以一种或另一种方式将 40 像素专门硬编码到 html 或 CSS 中。如果导航栏包含不同的字体大小或图像怎么办?如果我有充分的理由不首先弄乱身体填充物怎么办?我一直在寻找解决这个问题的方法,这就是我想出的:
$(document).ready(function(){
$('.contentwrap') .css({'margin-top': (($('.navbar-fixed-top').height()) + 1 )+'px'});
$(window).resize(function(){
$('.contentwrap') .css({'margin-top': (($('.navbar-fixed-top').height()) + 1 )+'px'});
});
您可以通过调整“1”来向上或向下移动它。无论导航栏中内容的大小,在调整大小之前和之后,它似乎都对我有用。
我很好奇其他人对此有何看法:请分享您的想法。(顺便说一句,它将被重构为不重复。)除了使用 jQuery 之外,还有其他理由不以这种方式解决问题吗?我什至可以使用这样的辅助导航栏:
$('.contentwrap') .css({'margin-top': (($('.navbar-fixed-top').height())
+ $('.admin-nav').height() + 1 )+'px'});
PS:以上是在 Bootstrap 2.3.2 上 - 它会在 3.x 中工作,只要通用类名仍然存在......事实上,它应该独立于引导程序工作,对吗?
编辑:这是一个完整的 jquery 函数,它处理两个堆叠的、响应式的动态大小的固定导航栏。它需要 3 个 html 类(或者可以使用 id):user-top、admin-top 和 contentwrap:
$(document).ready(function(){
$('.admin-top').css({'margin-top':($('.user-top').height()+0)+'px'});
$('.contentwrap') .css({'padding-top': (
$('.user-top').height()
+ $('.admin-top').height()
+ 0 )+'px'
});
$(window).resize(function(){
$('.admin-top').css({'margin-top':($('.user-top').height()+0)+'px'});
$('.contentwrap') .css({'padding-top': (
$('.user-top').height()
+ $('.admin-top').height()
+ 0 )+'px'
});
});