控制Web对象显示不同实现方法

实现HTML页面中对象的隐藏有两种实现方法:其一是通过style对象的display属性;另外一个是通过visibility属性。二者却存在着微秒的差异,visibility属性规定了元素是否可见,即使不可见的元素也会占据页面的空间,恰好相反,display属性设置的不可见元素则不会占据页面的空间。

(原始图)

(设置visibility属性)

(设置display属性)

从上面可以清楚看出,两者属性之间的布局差异,但是在设置display属性之后,出现了页面显示错位(IE下正常,Chrome与FF下显示错位)的情况,到底是什么原因造成的呢,经过一番查找,原来跟display所设置的值有关,先来看看display可能的值有哪些:

在测试代码中,我们设置的display的值设置成block,这样导致不同的浏览器出现了不同的显示结果,根据捕捉分析,IE中设置block与table-row之后的显示结果一样,但是Chrome与FF则出现很大的差异,以Chrome为例,根据下图,对于tr,chrome则给了它一个内部样式值,即table-row,设置成block,出现了显示错误,因此我们只需要保持默认值即可,那就是只需要删除display属性,保证它们均处于默认值之下,就不会出现浏览器的不兼容问题了。

【测试代码】

<html>
   <head>
      <meta HTTP-EQUIV='Pragma' CONTENT='no-cache'>
            <script language="javascript" src="util.js"></script>
            <script language="javascript">

function showhide(element, sh)
{
    var status;
    if (sh == 1) {
        status = "block";
    }
    else {
        status = "none";
    }

	if (document.getElementById)
	{
		// standard
		document.getElementById(element).style.display = status;
	//  document.getElementById(element).style.visibility = status;
	}
	else if (document.all)
	{
		// old IE
		document.all[element].style.display = status;
	//	document.all[element].style.visibility = status;
	}
	else if (document.layers)
	{
		// Netscape 4
		document.layers[element].display = status;
	//	document.layers[element].visibility = status;
	}
}

function setDisable(item, value)
{
    if ( value == 1 || value == '1' ) {
         item.disabled = true;
    } else {
         item.disabled = false;
    }
}

function clearStyle(element)
{
    var value="";

	if (document.getElementById)
	{
		// standard
		document.getElementById(element).style.cssText  = value;
	}
	else if (document.all)
	{
		// old IE
		document.all[element].style.cssText = value;
	}
	else if (document.layers)
	{
		// Netscape 4
		document.layers[element].cssText = value;
	}
}

function changeDuidType() {
	with ( document.forms[0] ) {
          if (DUIDType.options[DUIDType.selectedIndex].value == "1")//DUID-LLT
          {
 			  clearStyle("dhcpcOp61HwType");
			//   showhide("dhcpcOp61HwType", 1)
    		   setDisable(dhcpcOp61HwTypeValue, 0);
   			   clearStyle("dhcpcOp61LinkAddr");
			//   showhide("dhcpcOp61LinkAddr", 1)
			   setDisable(dhcpcOp61LinkAddrValue, 0);
               showhide("dhcpcOp61Other", 0);
			   clearStyle("dhcpcOp61Time");
			//   showhide("dhcpcOp61Time", 1)
			   setDisable(dhcpcOp61TimeValue, 0);
    		   showhide("dhcpcOp61En", 0);
    		   showhide("dhcpcOp61Id", 0);
		  }
		  else if (DUIDType.options[DUIDType.selectedIndex].value == "2") //DUID_EN
		  {
    	       showhide("dhcpcOp61HwType", 0);
    		   showhide("dhcpcOp61LinkAddr", 0);
               showhide("dhcpcOp61Other", 0);
    		   showhide("dhcpcOp61Time", 0);
			   clearStyle("dhcpcOp61En");
			   setDisable(dhcpcOp61EnValue, 0);
			   clearStyle("dhcpcOp61Id");
			   setDisable(dhcpcOp61IdValue, 0);
		  }
		  else if (DUIDType.options[DUIDType.selectedIndex].value == "3") //DUID_LL
		  {
			   clearStyle("dhcpcOp61HwType");
			   setDisable(dhcpcOp61HwTypeValue, 0);
			   clearStyle("dhcpcOp61LinkAddr");
			   setDisable(dhcpcOp61LinkAddrValue, 0);
               showhide("dhcpcOp61Other", 0);
    		   showhide("dhcpcOp61Time", 0);
    		   showhide("dhcpcOp61En", 0);
    		   showhide("dhcpcOp61Id", 0);
		  }
		  else
		  {
        	   showhide("dhcpcOp61HwType",0);
    		   showhide("dhcpcOp61LinkAddr", 0);
			   clearStyle("dhcpcOp61Other");
			   setDisable(dhcpcOp61OtherValue, 0);
    		   showhide("dhcpcOp61Time", 0);
    		   showhide("dhcpcOp61En", 0);
    		   showhide("dhcpcOp61Id", 0);
		  }
	}
}

// done hiding -->
</script>
   </head>
   <body >
      <blockquote>
         <form>
              <table border="0" cellpadding="0" cellspacing="0">

                 <tr>
                    <td width="160">        DUID Type:</td>
                    <td>
                        <select id='DUIDType' size="1" onchange="changeDuidType()">
                            <option value="1">DUID-LLT</option>
                            <option value="2">DUID-EN</option>
                            <option value="3">DUID-LL</option>
                            <option value="4">Other</option>
                        </select>
                    </td>
                 </tr>
                     <tr id='dhcpcOp61Other'>
                        <td>        DUID:</td>
                        <td><input type='text' id='dhcpcOp61OtherValue'></input></td>
                     </tr>

                     <tr id='dhcpcOp61HwType'>
                        <td>        Hardware Type:</td>
                        <td><input type='text' id='dhcpcOp61HwTypeValue' maxlength='5'></input></td>
                     </tr>

                     <tr id='dhcpcOp61LinkAddr'>
                        <td>        Link-layer Address:</td>
                        <td><input type='text' id='dhcpcOp61LinkAddrValue' maxlength='17'></input></td>
                     </tr>
                     <tr id='dhcpcOp61Time'>
                        <td>        Time:</td>
                        <td><input type='text' id='dhcpcOp61TimeValue' maxlength='10'></input></td>
                     </tr>
                     <tr id='dhcpcOp61En'>
                        <td>        Enterprise Number:</td>
                        <td><input type='text' id='dhcpcOp61EnValue' maxlength='10'></input></td>
                     </tr>
                     <tr id='dhcpcOp61Id'>
                        <td>        Identify:</td>
                        <td><input type='text' id='dhcpcOp61IdValue'></input></td>
                     </tr>
              </table><br><br>

         </form>
      </blockquote>
   </body>
</html>

控制Web对象显示不同实现方法

时间: 2024-11-02 20:46:31

控制Web对象显示不同实现方法的相关文章

定义一个复数(z=x+iy)类Complex,包含: 两个属性:实部x和虚部y 默认构造函数 Complex(),设置x=0,y=0 构造函数:Complex(int i,int j) 显示复数的方法:showComp()将其显示为如: 5+8i或5-8i 的形式。 求两个复数的和的方法:(参数是两个复数类对象,返回值是复数类对象)public Complex addComp(Compl

因标题框有限,题目未显示完整,以下再放一份: 定义一个复数(z=x+iy)类Complex,包含: 两个属性:实部x和虚部y 默认构造函数 Complex(),设置x=0,y=0 构造函数:Complex(int i,int j) 显示复数的方法:showComp()将其显示为如: 5+8i或5-8i 的形式. 求两个复数的和的方法:(参数是两个复数类对象,返回值是复数类对象)public Complex addComp(Complex C1,Complex C2) 求两个复数的差的方法:(参数

WIN7+IE8环境QTP11不能录制和识别web对象的解决方法

在项目稍微空闲的时间,在办公电脑上面装上QTP11来学习.但是发现在录制脚本时无法录制web对象,在网上找解决方法说以管理员的身份运行QTP就可以解决无法录制的问题,用这方法证明是ok的.后来用Object spy工具识别web对象还是不行的,网上大部分解决方法是说BHOManager Class加载引起的,但是我查看我的IE浏览器是正常加载的,还有的说是系统配置之类的问题,在这里就不再具体转述了.在百度下面查看了多篇文章后终于找到有效的解决方法,需要安装QTP11补丁文件QTPWEB_0007

Java web 常见对象的取值方法整理

一.从request中取值: 1.取param: servlet:  request.getParameter() request.getParameterValues() jsp脚本:request.getParameter() request.getParameterValues() jstl/el:  ${param.name} ${paramaValues.names[0]} struts ognl:<s:property value="#parameters.ParamName[

java web 程序---内置对象application的log方法的使用

application的主要方法里,有log方法,是日志文件里可以查看到信息的. 当老师写好代码后,他发现在tomact里的log目录下找不到信息,原因是:我们用myeclipse这个客户端软件,应该把服务器关闭,而是去bin目录下,手动开启服务器 即startup.bat.这个文件,然后在log目录下查到了信息: 这里有截图,我输入的用户名,这里当程序运行后是个空白页面,只有到log目录下才可以查看到信息. 代码: login.jsp ? 1 2 3 4 5 6 7 <body>     &

S实现控制图片显示大小的方法【图片等比例缩放功能】

S实现控制图片显示大小的方法[图片等比例缩放功能] [需求]:读取磁盘中的图片,展示在弹出框中,等比例缩放图片,使图片显示完全. (读取磁盘中的图片展示在前台,请参照我的另一篇文章:) [开发]: 调用说明: 直接调用js函数即可. 我测试是一个image 标签中直接调用,如下: <div> <img id="showImageimg"  src="/sirdifoa/applycorrection/getImage.do?imgName=2017001.j

定义一个类Point,代表一个点,public属性有x和y,方法有显示点坐标 show(),构造函数有两个参数分别给x,y赋值,在main方法中构造两个对象,再创建一方法(getMiddle)为取两个点构成线段的中点的坐标,参数为2个点对象,调用此方法后得到一个新的点,编写Application,显示该对象的坐标值。

这个题让我更加明白了类创建对象的实质 代码中用到:1.对象作形参;2.对象作返回值 以下用代码具体分析: 1 class Point1{ 2 public double x; 3 public double y; 4 Point1(){} 5 6 public Point1(double x,double y){ 7 this.x=x; 8 this.y=y; 9 } 10 11 public void show(){ 12 System.out.println("x="+x+&quo

Javascript常用对象的属性和方法

javascript为我们提供了一些非常有用的常用内部对象和方法.用户不需要用脚本来实现这些功能.这正是基于对象编程的真正目的. 在javascript提供了string(字符串).math(数值计算)和Date(日期)三种对象和其它一些相关的方法.从而为编程人员快速开发强大的脚本程序提供了非常有利的条件. 1.常用内部对象 在javascript中对于对象属性与方法的引用,有两种情况:其一是说该对象是静态对象,即在引用该对象的属性或方法时不需要为它创建实例:而另一种对象则在引用它的对象或方法是

SAP Web Service简介与配置方法

p.MsoNormal { margin: 0pt; margin-bottom: .0001pt; text-align: justify; font-family: Calibri; font-size: 10.5000pt } h1 { margin-top: 17.0000pt; margin-bottom: 16.5000pt; margin-left: 0.0000pt; text-indent: 21.0000pt; page-break-after: avoid; text-al

Objective-C语言介绍 、 Objc与C语言 、 面向对象编程 、 类和对象 、 属性和方法 、 属性和实例变量

Objective-C语言介绍 . Objc与C语言 . 面向对象编程 . 类和对象 . 属性和方法 . 属性和实例变量 1 第一个OC控制台程序 1.1 问题 Xcode是苹果公司向开发人员提供的集成开发环境(非开源),用于开发Mac OS X,iOS的应用程序.其运行于苹果公司的Mac操作系统下. 本案例要求使用集成开发工具Xcode编写OC的HelloWorld程序,在Xcode的控制台中, 1.2 方案 首先,启动集成开发工具Xcode. 然后,创建OC语言的工程. 最后,运行所创建的工