以前のすべてのソリューションは、何らかの方法で 40 ピクセルを html または CSS に具体的にハードコーディングしていました。navbar に異なるフォントサイズまたは画像が含まれている場合はどうなりますか? そもそも体のパディングを台無しにしない正当な理由がある場合はどうなりますか? 私はこの問題の解決策を探していましたが、ここに私が思いついたものがあります:
$(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 関数です。user-top、admin-top、および contentwrap の 3 つの html クラス (または ID を使用できます) が必要です。
$(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'
});
});