css - 为什么 css 不允许元素改变大小来填满屏幕?

标签 css

<分区>

我之前问过以下关于堆栈溢出的问题: create a scroll bar in a sidebar

基本上我是在尝试创建一个侧边栏。在那个侧边栏中,我想要一个未知大小的页眉和一个未知大小的页脚。在侧边栏的页脚和页眉之间,我想要一个包含一长串内容的滚动 div。在上面的问题中,我问的是如何使用 css 使滚动的 div 填充页眉和页脚之间的空间。

我得到了很多答案,比如: “选择器如何知道另一个元素的高度?这不是 CSS 的用途。”

现在我的问题是,为什么你不能这样做是 css?为什么 css 不允许你设置两个 div 占用尽可能多的空间,而中间的 div 填充剩余的空间?这不是一个需要解决的常见问题吗?

最佳答案

可以在 CSS 中做到这一点,只是没有像您希望的那样得到支持。使用 CSS calc 函数,您可以按照您描述的方式分配动态值。

您将从#sidebar 中删除overflow: hidden,并在#main 中使用calc 函数分配高度,类似于:

高度:计算(100% - 30px);

最大的缺点是 calc 不受所有浏览器的支持,最重要的是,当前稳定版本的 Chrome。但是,它在 webkit 前缀下的 Chrome 19 中可用(因此很快就会可用)。同样,它在 Firefox 上位于 moz 前缀下。 IE9 也支持它。

示例:http://jsfiddle.net/XGyHP/

关于css - 为什么 css 不允许元素改变大小来填满屏幕?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10120868/

上一篇:javascript - CSS 全局类问题与 child

下一篇:css - drupal,OM Maximenu 使用相同的 css 类包装所有内容 div

相关文章:

css - 无法将元素 (div) 定位到左侧

javascript - jQuery masonry 插件 - 在 IE7 中让 div 正确堆叠时遇到问题

css - 需要将 Pinterest 板向右浮动

jQuery CSS 属性

javascript - 是否可以更改 HTML 5 所需功能的文本颜色?

css - 将 Primefaces Jar 3.3 替换为 4.0 后,primefaces 计划事件颜色不起作用

css - 如何使用 webpack 将字体加载到我的元素中?

html - 如何解决 BOOTSTRAP 中背景图片和文字环绕图片的问题

jquery - 流体网站中的动画 div 位置

javascript - 使用 Jquery 切换菜单不起作用