【发布时间】:2012-04-06 20:36:23
【问题描述】:
我想用 twitter 的 bootstrap v2 制作一个响应式布局,带有一个列和一个地图。
我们的想法是构建一个类似于 maps.google.com 的 UI,但使用带有 bootstrap2 的响应式设计。
我想拥有一种桌面风格
- 顶部导航栏
- 1 左栏(作为侧边栏)
- 高度:100% 减去 navbarHeight,带有滚动条
- 宽度:.span3
- 填满屏幕其余部分的内容
然后对于响应式移动设计,我希望具有完整高度的部分具有取决于内容的高度。
我做了一个草图来更好地解释
编辑:希望做类似this 但响应式的操作,并且仅使用北(导航栏)、西(侧边栏)和中心(内容)
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 中的 height:100% 之类的东西来代替它,这样可以解决问题,但我找不到合适的位置来放置 100% 高度。
EDIT4: 在这里,我发现了它可能是纯 CSS 的解决方案!如果我取得进展,我会发布答案! http://blog.stevensanderson.com/2011/10/05/full-height-app-layouts-a-css-trick-to-make-it-easier/
【问题讨论】:
-
谢谢这很好用。点赞!
标签: mobile desktop twitter-bootstrap responsive-design