2010-06-23 69 views

回答

4

首先,JSF在这里是无关紧要的。现在全部是关于其生成的HTML代码。在网页浏览器中打开页面,右键单击并查看源代码。集中你 HTML源码。这就是CSS(和JS)可以看到并应用的全部内容。

我假定你的意思是100%的高度,完整的视口高度(“可见”高度)。现在,要在CSS中实现完整的视口高度,只需在所需的HTML元素上设置height: 100%是不够的。它将相对于其父元素,所有链直到<html>元素。所以,如果你基本上有:

<!DOCTYPE html> 
<html lang="en"> 
    <head> 
     <title>100% viewport height demo - FAIL</title> 
     <style> 
      .mytable { height: 100%; background: yellow; } 
     </style> 
    </head> 
    <body> 
     <table class="mytable"><tr><td>cell</td></tr></table> 
    </body> 
</html> 

这将是<body>元素的高度的100%。 <body>本身的高度依次相对于<html>元素的高度。但是这两个元素没有100%的高度。 Copy'n'paste'n'run它。你会看到,它不包括完整的视口。

如果要实现完整的视区高度,则需要在<body><html>元素上同时应用height: 100%(您当然也需要重设边距)。

<!DOCTYPE html> 
<html lang="en"> 
    <head> 
     <title>100% viewport height demo - GOOD</title> 
     <style> 
      html, body { margin: 0; height: 100%; } 
      .mytable { height: 100%; background: yellow; } 
     </style> 
    </head> 
    <body> 
     <table class="mytable"><tr><td>cell</td></tr></table> 
    </body> 
</html> 

将这些知识应用于JSF。 h:panelGrid只是呈现<table>元素。其styleClass将呈现为HTML class属性。