我有一个包含两列的布局,一个侧边栏和主要内容,需要拉伸浏览器的高度。所以,100%
减去我的 Twitter Bootstrapnavbar
最初40px
的高度。40px
如果您在狭窄的浏览器(例如在移动设备上)查看页面,这将通过 Twitter Bootstrap CSS 进行更改。新高度基于 中的链接数navbar
,因此它是动态的。
我知道我可以想出一些 JavaScript 来调整top
属性以“缩小”列的高度。但如果可以的话,我真的很想用 CSS 来做。
请注意,我不能通过更改z-index
.
在此处查看实际模型:http: //jsfiddle.net/flackend/mu4Ey/3/
布局
+ - - - - - - - - - - - - - - - - - - - - +
| navbar |
+ - - - + - - - - - - - - - - - - - - - - +
| | |
|< 20% >|<-- 80% ------------------------>|
| | |
| | Google Maps API map contained |
| | here. |
| | |
| | |
| | |
| | |
+ - - - + - - - - - - - - - - - - - - - - +
CSS
.sidebar, .content {
position: absolute;
top: 40px;
bottom: 0;
}
.sidebar {
left: 0;
right: 80%;
}
.content {
left: 20%;
right: 0;
}
谢谢你的帮助!
编辑
在此处查看 Twitter 引导程序的示例:http navbar
: //jsfiddle.net/flackend/MDZaG/
增加浏览器或“结果”框架的大小以查看未折叠的navbar
.
另一个示例和文档:http: //twitter.github.com/bootstrap/components.html#navbar
编辑 2
两列的内容不会影响列的高度;它们总是100%
减去 的高度navbar
:
编辑 3
我更改了上面的 CSS 和 jsfiddle 链接,以便定位是absolute
为了防止混淆。
最后编辑:选择的解决方案
由于似乎没有 CSS3 之外的 CSS 解决方案calc
,我写了一些 js 来解决这个问题......
在这里看到它:http: //jsfiddle.net/flackend/mu4Ey/5/
我搜索了 Twitter Bootstrap js 源代码,发现他们正在计算新的navbar
高度scrollHeight
。top
我的 js 做同样的事情,并且稍微滞后地为CSS 属性设置动画以隐藏正文。这是一个可怕的解决方案,因为 Twitter Bootstrap 可能会改变动画速度并破坏我的 js。
我应该做的是找出如何定位支持 CSS3 的浏览器calc
并让他们使用它并让所有其他浏览器使用 js。