创建CSS和溢出的菜单:汽车

问题描述:

页面的主要结构是这样的:创建CSS和溢出的菜单:汽车

<html> 
    <body> 
     <div id="Menu"> 
      <h1>Menu</h1> 
      <ul id="MenuList><!-- some LI elements --></ul> 
      <h1>Submenu 1</h1> 
      <ul id="Submenu1List"><!-- many LI elements --></ul> 
      <h1>Submenu 2</h1> 
      <ul id="Submenu2List"><!-- many LI elements --></ul> 
      <h1>Submenu 3</h1> 
      <ul id="Submenu3List"><!-- some more LI elements --></ul> 
     </div> 
     <div id="Main"><!-- long content --></div> 
    </body> 
</html> 

我使用jQuery使#Menu可点击的H1元素,使所有其他UL的卷起以及H1下线后的UL。我想滚动#主要是#Menu,如果需要,我希望在#Menu的每个UL中都有滚动条。这里是相关的CSS:

 
    html { height: 100%; overflow: hidden; font-size: .8em; } 
    body { height: 100%; overflow: hidden; } 
    div#Main { position: absolute; right: 0px; top: 0px; bottom: 0px; width: 79.9%; } 
    div#Menu { position: absolute; left: 0px; top: 0px; bottom: 0px; width: 20%; } 

    div#Main { overflow: auto; } 
    div#Menu h1 { font-size: 1.5em; } 
    div#Menu ul { max-height: 87%; overflow: auto; } 

这种方式正是我想要的方式。 #Main区域是可滚动的,并且每个UL展开时,如果存在比包含的#Menu DIV可包含的内容更多的内容,则获得滚动条。

唯一的问题是,我必须指定包含#Menu DIV的87%的高度,该高度仅适用于我的屏幕大小,窗口大小和字体大小的组合。没有硬编码每个UL的高度,是否有办法达到相同的效果?

如果你愿意,你可以看到the page。我会发布链接到CSS(/musicdb.css)和JS代码(/musicdb.js),但我不允许。如果您想查看源代码,可以通过将?mode = xml或?mode = html添加到URL中来切换内容类型,并在IE或Firefox中查看它。

我正在用Firebug玩你的网站页面。除了这个之外,你真的不能真的有一个快速的解决方案:

将“div#Menu”设置为100%和“div#Menu H1”为百分比例如5%的高度。

你有“菜单”,“艺术家”,“标签”和“格式”= 4 h1项目。这是5 X 4 = 20%。

将“div#Menu ul”设置为100-20 = 80%。

玩弄数字,并调整垂直对齐,你应该很好去。不足之处在于,您无法在极小或大屏幕上欣赏到美景。

我的2美分。

+0

在H1上设置高度是个好主意,试试吧,谢谢! – JoostM 2009-10-18 12:51:40