これまでのすべてのソリューションでは、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でも機能しますか?総称クラス名が残っている限り...実際、ブートストラップとは関係なく機能するはずですよね?
編集:動的なサイズの2つの積み重ねられた応答性のある固定ナビゲーションバーを処理する完全な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'
});
});