2011-04-11 60 views
0

不是另一个CSS滚动问题。是的,但请相信我,我对所有平常的事情都很满意,但是这让我感到疯狂。如果你看看http://mailwarriors.co.uk/vocab/csstest.htm,你会看到一个带有典型固定高度页眉和页脚的裸露布局,其余的则分成几个百分比大小的区域。在左边,有一个固定宽度的div,包含两个其他div,每个高度为50%,分别称为Panel1和Panel2。如果浏览器窗口太小而无法显示其所有内容,则面板1和面板2将获得垂直滚动条。但这是事情。您会看到滚动条适用于整个面板,包括每个顶部的固定高度的“标题”和“工具栏”div,而需要的是仅在每个实际的“内容”div上获取滚动条面板。如果只有一个面板,我就知道该怎么做。但是如图所示,其中有两个,我只是没有看到它。任何人都可以建议吗?下面是为裸机页面的HTML/CSS:CSS滚动挑战案例


<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml"> 
<head> 
    <title>title </title> 
    <style media="screen" type="text/css"> 

html{overflow:hidden} 
#header{position:absolute;top:0;right:0;bottom:84px;left:0;height:82px;padding:2px} 
#menuctr{position:absolute;top:84px;bottom:16px;left:0;width:200px;border:solid 1px #000} 
#panel1{height:50%;left:0;width:200px;overflow:auto} 
#panel2{height:50%;left:0;width:200px;overflow:auto} 

#main{position:absolute;top:84px;right:0;bottom:16px;left:204px;border:solid 1px #000} 
#mainWrapper{position:absolute;top:84px;right:0px;bottom:16px;left:204px} 
#mainTop{position:absolute;top:0;right:0;left:0;height:70%;} 
#mainTopLeft{position:absolute;top:0;right:0;left:0;width:50%;height:100%} 
#mainTopRight{position:absolute;right:0;top:0;width:50%;height:100%} 
#mainTopRightTop{position:absolute;top:0;right:0;left:0;height:70%} 
#mainTopRightBottom{position:absolute;bottom:0;left:0;right:0;height:30%} 
#mainImage{position:absolute;top:0;right:0;bottom:0px;left:0;border:solid 1px #000} 
#mainBottom{position:absolute;bottom:0;left:0;height:30%;width:100%;overflow:auto} 
#mainSubImage{position:absolute;top:0px;right:0px;bottom:0;left:0;border:solid 1px #000} 
#mainInformation{position:absolute;top:0px;right:0;bottom:0;left:0px;border:solid 1px #000; } 

#footer{position:absolute;right:0;bottom:0;left:0;height:12px;padding:2px} 

.caption{top:0;right:0;left:0;height:14px;border-bottom:solid 1px #000;font-weight:bold;padding:2px 1px 0 1px} 
.toolbar{top:17px;right:0;left:0;height:16px;border-bottom:solid 1px #000;padding:2px} 

    </style> 
</head> 
<body> 
    <div id="header"> 
     This is the title area 
    </div> 
    <div id="menuctr"> 
     <div id="panel1"> 
      <div class="caption"> 
       Panel 1 title 
      </div> 
      <div class="toolbar"> 
       [panel 1 toolbar] 
      </div> 
      <div> 
       panel 1 content<br /> 
       panel 1 content<br /> 
       panel 1 content<br /> 
       panel 1 content<br /> 
       panel 1 content<br /> 
       panel 1 content<br /> 
       panel 1 content<br /> 
       panel 1 content<br /> 
       panel 1 content<br /> 
       panel 1 content<br /> 
       panel 1 content<br /> 
       panel 1 content<br /> 
       panel 1 content<br /> 
       panel 1 content<br /> 
       panel 1 content<br /> 
       panel 1 content<br /> 
       panel 1 content<br /> 
       panel 1 content<br /> 
       panel 1 content<br /> 
       panel 1 content<br /> 
       panel 1 content<br /> 
       panel 1 content<br /> 
       panel 1 content<br /> 
       panel 1 content<br /> 
       panel 1 content<br /> 
      </div> 
     </div> 
     <div id="panel2"> 
      <div class="caption"> 
       Panel 2 caption 
      </div> 
      <div class="toolbar"> 
       [panel 2 toolbar] 
      </div> 
      <div > 
       panel 2 content<br /> 
       panel 2 content<br /> 
       panel 2 content<br /> 
       panel 2 content<br /> 
       panel 2 content<br /> 
       panel 2 content<br /> 
       panel 2 content<br /> 
       panel 2 content<br /> 
       panel 2 content<br /> 
       panel 2 content<br /> 
       panel 2 content<br /> 
       panel 2 content<br /> 
       panel 2 content<br /> 
       panel 2 content<br /> 
       panel 2 content<br /> 
       panel 2 content<br /> 
       panel 2 content<br /> 
       panel 2 content<br /> 
       panel 2 content<br /> 
       panel 2 content<br /> 
       panel 2 content<br /> 
       panel 2 content<br /> 
       panel 2 content<br /> 
       panel 2 content<br /> 
       panel 2 content<br /> 
       panel 2 content<br /> 
      </div> 
     </div> 
    </div> 
    <div id="footer"> 
     This is the footer 
    </div> 
    <div id="mainWrapper"> 
     <div id="mainTop"> 
      <div id="mainTopLeft"> 
       <div id="mainImage"> 
        <div class="caption"> 
         this is another caption 
        </div> 
        <div class="toolbar"> 
         this is another toolbar 
        </div> 
       </div> 
      </div> 
      <div id="mainTopRight"> 
       <div id="mainTopRightTop"> 
        <div id="mainSubImage"> 
         <div class="caption"> 
          Yet another caption 
         </div> 
         <div class="toolbar"> 
          Yet another toolbar 
         </div> 
        </div> 
       </div> 
       <div id="mainTopRightBottom"> 
        <div id="mainInformation"> 
         <div class="caption"> 
          A caption again 
         </div> 
         <div class="toolbar"> 
          A toolbar again 
         </div> 
        </div> 
       </div> 
      </div> 
     </div> 
     <div id="mainBottom"> 
      Some other stuff 
     </div> 
    </div> 
</body> 
</html> 

先感谢您的任何线索。

Peter。

回答

0

我会在CSS

#panel1{height:50%;left:0;width:200px;overflow:hidden} 
#panel1{height:50%;left:0;width:200px;overflow:hidden} 

改变这一点,添加这个

.inner {left:0;width:100%;overflow:auto; position:absolute;bottom:0;top:40px;} 

然后添加 “内部” 类内容的div

<div id="panel1"> 
      <div class="caption"> 
       Panel 1 title 
      </div> 
      <div class="toolbar"> 
       [panel 1 toolbar] 
      </div> 
      <div class="inner"> 
       panel 1 content<br /> 
       ..... 

经过只是在戏所以才来在其他浏览器上也可以安全检查

+0

是的,这就像Sajid的解决方案,至少与IE至少有关,我似乎需要panel1和panel2的'position:relative'来让它工作。谢谢你们俩! – 2011-04-12 20:04:47

0

您需要将面板设置为非滚动,并且只滚动内容。像这样:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml"> 
<head> 
    <title>title </title> 
    <style media="screen" type="text/css"> 

html{overflow:hidden} 
#header{position:absolute;top:0;right:0;bottom:84px;left:0;height:82px;padding:2px} 
#menuctr{position:absolute;top:84px;bottom:16px;left:0;width:200px;border:solid 1px #000} 
#panel1{height:50%;left:0;width:200px;overflow:hidden; position: relative;} 
#panel2{height:50%;left:0;width:200px;overflow:hidden; position: relative;} 
#panel1 .content, #panel2 .content { position: absolute; left: 0; top: 38px; bottom: 0; width: 100%; overflow: auto; } 

#main{position:absolute;top:84px;right:0;bottom:16px;left:204px;border:solid 1px #000} 
#mainWrapper{position:absolute;top:84px;right:0px;bottom:16px;left:204px} 
#mainTop{position:absolute;top:0;right:0;left:0;height:70%;} 
#mainTopLeft{position:absolute;top:0;right:0;left:0;width:50%;height:100%} 
#mainTopRight{position:absolute;right:0;top:0;width:50%;height:100%} 
#mainTopRightTop{position:absolute;top:0;right:0;left:0;height:70%} 
#mainTopRightBottom{position:absolute;bottom:0;left:0;right:0;height:30%} 
#mainImage{position:absolute;top:0;right:0;bottom:0px;left:0;border:solid 1px #000} 
#mainBottom{position:absolute;bottom:0;left:0;height:30%;width:100%;overflow:auto} 
#mainSubImage{position:absolute;top:0px;right:0px;bottom:0;left:0;border:solid 1px #000} 
#mainInformation{position:absolute;top:0px;right:0;bottom:0;left:0px;border:solid 1px #000; } 

#footer{position:absolute;right:0;bottom:0;left:0;height:12px;padding:2px} 

.caption{top:0;right:0;left:0;height:14px;border-bottom:solid 1px #000;font-weight:bold;padding:2px 1px 0 1px} 
.toolbar{top:17px;right:0;left:0;height:16px;border-bottom:solid 1px #000;padding:2px} 

    </style> 
</head> 
<body> 
    <div id="header"> 
     This is the title area 
    </div> 
    <div id="menuctr"> 
     <div id="panel1"> 
      <div class="caption"> 
       Panel 1 title 
      </div> 
      <div class="toolbar"> 
       [panel 1 toolbar] 
      </div> 
      <div class="content"> 
       panel 1 content<br /> 
       panel 1 content<br /> 
       panel 1 content<br /> 
       panel 1 content<br /> 
       panel 1 content<br /> 
       panel 1 content<br /> 
       panel 1 content<br /> 
       panel 1 content<br /> 
       panel 1 content<br /> 
       panel 1 content<br /> 
       panel 1 content<br /> 
       panel 1 content<br /> 
       panel 1 content<br /> 
       panel 1 content<br /> 
       panel 1 content<br /> 
       panel 1 content<br /> 
       panel 1 content<br /> 
       panel 1 content<br /> 
       panel 1 content<br /> 
       panel 1 content<br /> 
       panel 1 content<br /> 
       panel 1 content<br /> 
       panel 1 content<br /> 
       panel 1 content<br /> 
       panel 1 content<br /> 
      </div> 
     </div> 
     <div id="panel2"> 
      <div class="caption"> 
       Panel 2 caption 
      </div> 
      <div class="toolbar"> 
       [panel 2 toolbar] 
      </div> 
      <div class="content"> 
       panel 2 content<br /> 
       panel 2 content<br /> 
       panel 2 content<br /> 
       panel 2 content<br /> 
       panel 2 content<br /> 
       panel 2 content<br /> 
       panel 2 content<br /> 
       panel 2 content<br /> 
       panel 2 content<br /> 
       panel 2 content<br /> 
       panel 2 content<br /> 
       panel 2 content<br /> 
       panel 2 content<br /> 
       panel 2 content<br /> 
       panel 2 content<br /> 
       panel 2 content<br /> 
       panel 2 content<br /> 
       panel 2 content<br /> 
       panel 2 content<br /> 
       panel 2 content<br /> 
       panel 2 content<br /> 
       panel 2 content<br /> 
       panel 2 content<br /> 
       panel 2 content<br /> 
       panel 2 content<br /> 
       panel 2 content<br /> 
      </div> 
     </div> 
    </div> 
    <div id="footer"> 
     This is the footer 
    </div> 
    <div id="mainWrapper"> 
     <div id="mainTop"> 
      <div id="mainTopLeft"> 
       <div id="mainImage"> 
        <div class="caption"> 
         this is another caption 
        </div> 
        <div class="toolbar"> 
         this is another toolbar 
        </div> 
       </div> 
      </div> 
      <div id="mainTopRight"> 
       <div id="mainTopRightTop"> 
        <div id="mainSubImage"> 
         <div class="caption"> 
          Yet another caption 
         </div> 
         <div class="toolbar"> 
          Yet another toolbar 
         </div> 
        </div> 
       </div> 
       <div id="mainTopRightBottom"> 
        <div id="mainInformation"> 
         <div class="caption"> 
          A caption again 
         </div> 
         <div class="toolbar"> 
          A toolbar again 
         </div> 
        </div> 
       </div> 
      </div> 
     </div> 
     <div id="mainBottom"> 
      Some other stuff 
     </div> 
    </div> 
</body> 
</html> 

Test case here

+0

完美!谢谢。我以为我已经尝试了很多,但我一定会一直围绕着它。你的工作。 – 2011-04-12 20:03:37