CSS中的滚动材质设计对话框

Posted

技术标签:

【中文标题】CSS中的滚动材质设计对话框【英文标题】:Scrolling material design dialog box in CSS 【发布时间】:2015-06-22 05:42:36 【问题描述】:

我正在尝试在 CSS 中实现以下 Material Design 对话框。这是直接来自Material Design Specifications:

对话框应该响应式展开以适应屏幕,但不会溢出屏幕(它应该滚动)。


我找不到合适的响应式 CSS 解决方案

这是我尝试过的(点击展开):

此对话框会展开以正确适应不同的屏幕尺寸而不会溢出,并且在content 溢出dialog frame 时还提供滚动条。

但是,topbar 和 bottombar 不会粘在对话框框架的顶部和底部(它们会滚动)。

由于对话框的content 不确定,我不能只使用固定的页眉和页脚,因为对话框本身可能会根据内容展开或缩小。

有没有办法在 CSS 中创建这个响应式对话框?

【问题讨论】:

【参考方案1】:

与其将顶部栏和底部栏放在内容之上,不如将它们放在内容的上方/下方,如下所示:

Dialog topbar
/* remove styles */

Dialog bottombar
/* remove styles */

Dialog content
max-height: 50%
overflow: auto

Dialog frame
position: absolute
top: 20%

【讨论】:

感谢您的快速回复。这似乎不起作用,因为max-height: 50% 实际上在绝对框架内不起作用。看到这个 jsfiddle:jsfiddle.net/vto0k91m/2 哦,是的,你是对的。我认为您的框架需要一些默认高度。 不幸的是,它没有响应,所以我想我需要一个不同的解决方案。还是谢谢! 我只能用 javascript 通过手动设置内容最大高度来解决这个问题:$('.content').css('max-height', $('.modal-background').height() *.6 - 90); 我很好奇是否有人可以在没有 javascript 的情况下解决它。

以上是关于CSS中的滚动材质设计对话框的主要内容,如果未能解决你的问题,请参考以下文章

Angular 5 / Material,如何在 Mat Dialog 中删除垂直滚动?

如何正确更改材质设计的对话框正面按钮背景

Angular 材质:Shake MatDialog

css 打开模式对话框窗口时禁用Body上的滚动

如何根据对话框组件中的取消和是按钮更新父组件的材质幻灯片切换值?

如何从 Angular 材质对话框中获取数据?