Twitterのbootstrap v2で、列とマップを使ってレスポンシブなレイアウトを作りたいです。
アイデアは、maps.google.com のような UI を構築することですが、bootstrap2 でレスポンシブ デザインを使用します。
デスクトップ用のスタイルが欲しい
- 上部のナビゲーションバー
- 左の 1 列 (サイドバーとして)
- 高さ: 100% マイナス navbarHeight、スクロールバーあり
- 幅: .span3
- 画面の残りの部分を満たすコンテンツ
それから、レスポンシブ モバイル デザインの場合、全高があるパーツは、コンテンツに応じて高さを持たせたいと考えています。
私はよりよく説明するためにスケッチを作りました
編集:このようなことをしようとしていますが、反応がよく、北(ナビゲーションバー)、西(サイドバー)、中央(コンテンツ)のみで
EDIT2:最終的にjqueryで作ったのですが、CSSで解決したいです。誰かが尋ねたら、解決策を答えにします。
EDIT3:わかりました、これがJQueryを使って見つけた解決策です(プレーンなjsで簡単にできると思います)
$(window).bind('resize', function() {
if ( $(window).width() > 980 ) {
$("#content").height(($(window).height()-40)+"px")
$("#sidebar").height(($(window).height()-58)+"px")
$("body").css("padding-top","40px")
}
else {
$("#content").height(($(window).height()-50)+"px")
$("#sidebar").height(($(window).height()-68)+"px")
$("body").css("padding-top","0px")
}
$("#sidebar").css("overflow", "auto")
$("body").css("padding-bottom","0px")
$(".navbar").css("margin-bottom","0px")
});
$(selector).css()
関数と条件if
は、プレーンな CSS と CSS3 http://twitter.github.com/bootstrap/scaffolding.html#responsiveのメディア クエリに置き換えることができます。
しかし問題は、それ$(window).height()
が計算された実行時間であることです。これはおそらく CSS の a のようなものに置き換える必要があり、それでheight:100%
うまくいく可能性がありますが、その100%
高さを配置する適切な場所が見つかりませんでした。
EDIT4:ここで、CSSのみのソリューションである可能性があるものを見つけました! 進展があれば、回答を投稿します! http://blog.stevensanderson.com/2011/10/05/full-height-app-layouts-a-css-trick-to-make-it-easier/