我对 YUI 对话框(又名 Overlay)进行了子类化,使其包含标题、可选工具栏、正文和可选页脚。用户也可以调整对话框的大小。
这是一个演示这一点的小提琴,但它的内容如下:
<div class="outer">
<div class="hd"></div>
<div class="tb"></div>
<div class="bd"></div>
<div class="ft"></div>
</div>
我遵循的规则是:
- 外部最小高度与 hd.height 相同
- 高清高度是固定的
- tb、bd 和 ft 高度可变
- tb 和 ft 应该换行
- 如果可能,tb 和 ft 应该以 bd 为代价完全可见
- 如果没有足够的空间来完全显示 tb 和 ft,则在两者之间平均分配剩余空间并隐藏 bd
- 如果 bd 大于包含它的 div,x/y 溢出应该滚动
我已经以编程方式完成了此操作,但在 IE 7 和 8 中存在一些问题(所有这些问题都比此处描述的要复杂一些,填充、边距和边框使问题进一步复杂化)并且只有在最新版本的 Chrome 中才能干净地工作, FF 和 IE。
但不知何故,我觉得我错过了一些东西:浏览器拥有强大的布局引擎,所以我可能只是对 CSS 和 HTML 了解不足,无法编写代码以使布局引擎能够完成其工作。
这可以使用一些 CSS/HTML 魔法来完成吗?