现在的位置: 首页 > 综合 > 正文

天乙社区社区首页分析(一)

2018年02月21日 ⁄ 综合 ⁄ 共 2597字 ⁄ 字号 评论关闭

社区首页的界面文件是main.jsp(可以从action-servlet.xmllogin请求结果为success时的跳转和login.javatoUrl的设置得知)。

粗看代码和界面,很显然,main.jsp显示的代码主要有两个iframe组成,前一个iframe显示左边的导航栏,链接是nag.jspurl。后一个iframe显示右边论坛主界面,链接是in.jspurl。这里我们先不管导航栏和主界面是如何实现的,先看一下main.jsp这个文件是如何实现布局的。

下面的代码,是我修改main.jsp而成的,是为了方便研究界面代码而做的小实验,可以粘贴到记事本里,后缀改名html,用浏览器直接打开。

<html>
	<head>
		<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
		<title>社区首页小实验</title>
	</head>
	<body>
		<script language="JavaScript" type="text/javascript">
			if(self!=top){
			  top.location=self.location;
			}
			function switchSysBar(){
			  if (switchPoint.innerHTML=='<'){
				switchPoint.innerHTML='>'
				document.getElementById("frmTitle").style.display="none";
			  }
			  else{
				switchPoint.innerHTML='<'
				document.getElementById("frmTitle").style.display="block";
			  }
			}
		</script>
		<style type="text/css">
			.td2 { width: 10pt;background-color:#ABBCDC}
			.switchbarfont { font-family: Tahoma, Verdana; font-size:12px; color:#ffffff; }
			.navPoint { color: #000000; cursor: hand;font-family: "宋体",Tahoma, Verdana; font-size: 9pt }
			.div1{background-color:Red;}
			.div2{background-color:green;}
		</style>
		<table border="0" cellPadding="0" cellSpacing="0" height="100%" width="100%">
		  <tr>
			<td align="middle" noWrap vAlign="center" id="frmTitle" height="100%" width="20%">
			  <div class="div1">侧边导航栏</div>
			</td>
			<td class="td2">
			  <table border="0" cellPadding="0" cellSpacing="0" height="100%">
				<tr>
				  <td onclick="switchSysBar()">
					<font class="switchbarfont">
					  <br>
					  <br>
					  <br>
					  <br>
					  <br>
					  <br>
					  <br>
					  <br>
					  <br>
					  <br>
					  <span class="navPoint" id="switchPoint" title="关闭/打开左栏"><</span>
					  <br>
					  <br>
					  <br>
					  <br>
					  <br>
					  <br>
					  <br>
					  <br>
					  屏幕切换
					</font>
				  </td>
				</tr>
			  </table>
			</td>
			<td align="middle">
				<div class="div2">主界面</div>
			</td>
		  </tr>
		</table>
	</body>
</html>

main.jsp的主体部分就是一个一行三列的表格构成,其中中间的一列又嵌套了一个表格。

 问题:<span class="navPoint" id="switchPoint" title="关闭/打开左栏">&lt;</span>中&lt;是什么意思?

“<”html代码中是特殊字符(尖括号),在html代码中要打&lt;在网页中会相应地显示为”<”这里spantitle属性指的是鼠标在标签体内时显示的提示内容。

 问题:为什么中间那条那么窄,而且字还是竖着显示的?

<td class="td2">,中间这一列的样式定义在叫td2class。.td2
{ width: 10pt;background-color:#ABBCDC}
,其中规定了宽度会10pt,所以中间这列会这么窄。由于太窄了,一行只能放下一个字,所以文字会竖着显示,td2中同时规定了这一列的背景色。

 问题:下面这段javascript代码的作用?

if(self!=top){

top.location=self.location;

}

HTML DOM top
属性:top 属性返回最顶层的先辈窗口。该属性返回对一个顶级(在最上层的)窗口的只读引用。如果窗口本身就是一个顶级窗口,top属性存放对窗口自身的引用。如果窗口是一个框架,那么 top属性引用包含框架的顶层窗口。
所以这两句代码的意思就是如果当前的窗口不是顶层窗口,则把当前窗口设为顶层窗口。

问题:侧边栏打开/关闭效果是如何实现的?

switchSysBar()这个javascript函数:先会调换<span>标签中显示的箭头方向,&lt;表示”<”&gt表示”>”,然后设置最左边导航栏这一列的style.display属性。

display属性设为none,则元素隐藏(不显示),由此实现了侧边栏的关闭效果;设为block,则此元素将显示为块级元素,此元素前后会带有换行符,由此实现了侧边栏的打开效果(此处其实也可以用inline);inlinedisplay属性的默认值,此时元素会被显示为内联元素,元素前后没有换行符。

 其他:

.navPoint { color: #000000; cursor: hand;font-family: "宋体",Tahoma, Verdana; font-size: 9pt },在样式表中可以通过cursor属性来设置鼠标放在元素上时所显示的样式。

 main.jsp的分析到此

 

 

抱歉!评论已关闭.