如何设置 div 根据可用的浏览器高度自动调整其高度
我有一个 div (position:fixed),其高度根据其中的内容而变化。为了实现自动滚动,我添加了 overflow-y:auto
并分配了固定高度。
有没有办法自动设置div的高度,以便当浏览器空间发生变化时,div的高度也会相应变化,如果没有足够的空间,则出现滚动条,当有足够的可用空间时,则出现滚动条消失。
I have a div ( position :fixed ) with varying height depending on the content in it. To have an auto scroll for that i have added overflow-y:auto
and assigned a fixed height.
Is there a way to auto set the height of the div so that when the browser space gets changed, the height of the div changes accordingly, and if there is not enough space the scroll bar appears and when there is enough available space the scroll bar disappears.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
使用
position:absolute
而不是position:fixed
并使用左上角、右下角坐标并将滚动设置为自动;示例HTML:
CSS:
工作示例:此处
use
position:absolute
instead ofposition: fixed
and use the top left, right and bottom co-ordinates and set the scroll to auto;example HTML:
CSS:
Working Example : Here
使用两个 DIV,一个嵌套在另一个内部。
外部 DIV 应设置为
position:fixed;max-height:100%;overflow-y:auto
内部 DIV 将包含您的内容。据我所知,它不需要任何特定的样式。
应该发生的情况(以及当我在浏览器中测试此修复时发生的情况)是外部 DIV 应该收缩包裹以适合内部 DIV - 但它不会超过窗口的高度。如果内部 DIV 超过窗口的高度,它也会超过外部 DIV 的高度,从而产生滚动条。
编辑:示例标记:
和CSS:
Use two DIVs, one nested inside of the other.
The outer DIV should be set to
position:fixed;max-height:100%;overflow-y:auto
The inner DIV will contain your contents. So far as I can tell, it won't require any specific styles.
What should happen (and what's happening when I test this fix in my browser) is that the outer DIV should shrink-wrap to fit the inner DIV -- but it will not exceed the height of the window. If the inner DIV exceeds the height of the window, it will also exceed the height of the outer DIV, producing a scrollbar.
EDIT: Sample markup:
And the CSS:
您可以监听窗口上的调整大小事件并相应地更新宽度。
http://api.jquery.com/resize/
或者,根据页面的布局,您也许可以只使用
height: 100%
(或其他适合您的百分比)。You can listen to the resize event on the window and update the width accordingly.
http://api.jquery.com/resize/
Alternatively, depending on the layout of your page, you might be able to just use
height: 100%
(or another % that works for you).