使用JS的100%页面高度在某些页面上不起作用

100% page height using JS not working on certain pages

本文关键字:不起作用 高度 100% JS 使用      更新时间:2023-09-26

我遇到了一个奇怪的问题,某些页面的中间部分没有拉伸到 100% 的页面高度,这导致没有完整的左手边框。

例如(请单击"布伦特伍德"链接并转到顶部菜单上的"登录"(https://www.inside-guides.co.uk/advertiseradmin/default.asp?。

而"联系"页面很好(再次通过"布伦特伍德"网站(:https://www.inside-guides.co.uk/feedback.asp。

它们都使用javascript和CSS使用相同的模板,但是当我查看代码检查器时,它会为 #left 导航和"联系人"页面上的 #middle 提供整页高度值。

javascript是使每列的高度=相同,即到页脚的顶部,但它在登录页面上不起作用。

我真的不明白为什么,所以使用代码检查器的任何帮助将不胜感激。

JS代码放置在每页的头部.css

<script type="text/javascript">
matchColumns=function(){ 
     var divs,contDivs,maxHeight,divHeight,d; 
     divs=document.getElementsByTagName('div'); 
     contDivs=[]; 
     maxHeight=0;  
     for(var i=0;i<divs.length;i++){  
          // make collection with <div> elements with class attribute "equal"
          if(/'bequal'b/.test(divs[i].className)){ 
                d=divs[i]; 
                contDivs[contDivs.length]=d;  
                if(d.offsetHeight){ 
                     divHeight=d.offsetHeight;                  
                } 
                else if(d.style.pixelHeight){ 
                     divHeight=d.style.pixelHeight;                  
                } 
                maxHeight=Math.max(maxHeight,divHeight); 
          } 
     } 
     for(var i=0;i<contDivs.length;i++){ 
          contDivs[i].style.height=maxHeight + "px"; 
     } 
}  
window.onload=function(){ 
     if(document.getElementsByTagName){ 
          matchColumns();            
     } 
} 
</script>

100% JS 页面高度不起作用的登录页面代码:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<!--#include virtual="/System/Startup_FranchiseClient.asp"-->
<html xmlns="http://www.w3.org/1999/xhtml">
<%
EnsurePageIsHTTPS
If IsFranchiseClientLoggedIn = True then
Response.Redirect GetAdvertiserAdminHomePage
End if
%>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Inside-Guides.co.uk - Advertiser Login</title>
<!--#include virtual="/Assets/Templates/Public/Franchise/HeadCSS.asp"-->
<script type="text/javascript" src="/js/common.js"></script>
<script type="text/javascript" src="/js/jquery-1.2.6.min.js"></script>
<script type="text/javascript" src="/js/jquery.cycle.min.js"></script>
</head>
<body class="login" onload="javascript:document.getElementById('strUsername').focus();">
<!--#include virtual="/Assets/Templates/Public/Franchise/TemplateStart_https.asp"-->
<div class="content clearfix">
<div id="form" class="form">
<h1>Advertiser Login</h1>
<p>Welcome to the advertiser area.  Please enter your login details below:</p>
<span class="ErrorText"><% = strSecurity_LoginError %></span>
<form id="form" name="LoginForm" method="post" action="Default.asp">
<input type="hidden" name="ValidateLogin" value="1" />
<label>Email
<span class="small">Email used to register</span>
</label>
<input type="text" id="strUsername" name="strUsername" value="" />
<br />
<label>Password
<span class="small">Password used to register</span>
</label>
<input type="password" name="strPassword" value="" />
<button type="submit">Log-in</button>
<div class="spacer"></div>
</form>
</div>
<p> * If you have forgotten your password, please <a href="ForgotPassword.asp">click here</a></p>
</div>
<!--#include virtual="/Assets/Templates/Public/Franchise/TemplateEnd.asp"-->
</body>
</html>
<!--#include virtual="/System/Shutdown.asp"-->

.CSS:

#middle {padding-top:7px;float:left;width:60%;border-right:1px solid #edeaec;border-left:1px solid #ede9e8;}
#middle.dir {width:78.5%;border-right:0;}

非常感谢。

JS代码放置在头部.css每页上

不确定这是否是拼写错误,但如果不是,则无法将js放在css文件中。此外,html文档的头部似乎也没有链接css文件。但是,在进一步检查时,您似乎指的是 headCSS.asp模板包含,在这种情况下,上述要点无关紧要。

对于高度100%或任何基于百分比的高度,父级必须具有定义的高度,这使得它基本上不是很有用,因为无论如何您都需要知道高度值。因此,如果您可以将其设置为固定高度,那将是我的建议。

但是,我建议<table>使用单行和多列来执行您正在寻找的操作,使用一个将避免很多笨拙的 css 和/或 js。