网页编程的学习笔记
一、JavaScript
二、ASP
一般情况下超链接打开的目标网页是在本网页之内打开的,但是利用上面的代码可以在新窗口中打开目标网页,再重新打开时仍然在已经开启的目标网页中显示.
上面的网页框架中,点击下面的产生随机数时,上面的数字会随着刷新
框架代码
上部的网页代码
document.writeln(Math.random());
下部网页代码
Document.formName.submit();
去掉frameBorder=0,则IFRAME带上边框
scrolling="no"则没有了调整位置的滚动条
把Iframe中添到层中可以随着层改变位置
点击按钮更改Iframe的网页内容
pdfshow.document.location='url'; "> frameBorder=1width="100%"height="100%" >
第二个例子程序 src=""frameBorder=1width=300scrolling=yes height=200>
注意修改目标地址的时候,不能随便写,如写程sohu和csdn则会报错,”权限拒绝”,要在自己目录下的(好象同一个网站下的也应该行吧) functionpushbutton() { v=confirm("完全删除后将无法恢复,请您确认是否继续?"); if(v) alert('yesclicked'); else alert('noclicked'); } window.document.getElementById('nodeName').readOnly=false; window.document.getElementById('nodeTops').readOnly=false; window.document.getElementById('nodeName').select(); : 下拉选择框的名字是D1 <1>获得D1中有几个元素:alert(D1.options.length); <2>追加一个新元素,cctv functionAddNew() { varMycat=document.createElement("OPTION"); Mycat.text=Mycat.value="cctv"; document.forms[0].D1.add(Mycat); document.forms[0].D1.selectedIndex=document.forms[0].D1.length-1; document.refresh; } if(this.name!='fullscreen'){ setTimeout("window.opener=null;window.close();",500); window.open(location.href,'fullscreen','fullscreen,scrollbars'); } <bodyonLoad="scroll()"> 在网页刷新,启动时调用指定的函数. <bodyonload="scroll()"onunload="alert('关闭')"> οnclick=pushbutton("你好")//单击调用函数Click οnblur=Message(this.value)//丢失焦点LostFocus οnmοuseοver="window.status='Justanotherstupidlink...';returntrue"//鼠标移过MouseMove JavaScript代码可以直接写在Html的<>内,如: <Aonmouseover="vara;a=30;alert('我'+a+'岁');document.writeln('abc');"href="00Readme.htm">连结A> 这将显示一个超链接,连接的目标是00Readme.htm,当鼠标移动到该超链接上时,则执行JavaScript代码. <inputtype="button"value="按钮"name="B3"onMouseOut="alert('c');"> <bodyonmousemove="move();"> <bodyonSelect="window.status=Math.random();"> 反白选择网页上一个元素或文字时执行本事件,每多反白一个则执行一遍. 对象得到焦点: dateForm.select() text框内容发生变化时激发 说明,本节使用的代码都是设置按钮或图片等元素的外观或动作的 如<inputstyle="CURSOR:hand"type="button"value="按钮"name="B3"ID="Button1"> 可以把移动到按钮上的鼠标形状为手指形状 多个状态设置时用;分开 style="CURSOR:hand" style="display:none;CURSOR:hand" 可见是style="display:inline;CURSOR:hand" functionpromptOnClose(e){ //e=e?e:windowevent; varpromptString='你要关闭浏览器吗?'; //event.returnValue=promptString; returnpromptString; } if(window!=top){ top.location.href="http://www.baidu.com"; }else{ if(window.Event){ window.οnbefοreunlοad=function(event){ returnpromptOnClose(event); } }else{ window.οnbefοreunlοad=function(){ returnpromptOnClose(event); } } } 关于浏览器检测浏览器关闭事件(二)
a=5 alert(a>3?"111":"111no")//显示:111 alert(a<3?"222":"222no")//显示:222no
把函数卸载module目录下的images.js(也可以是其它扩展名)文件中,便可以在本文件中使用,相当于把那段代码写在这个地方一样. 如images.js的内容可以这么写 functionX() { alert("a"); } 把这些函数写上就可以了, window.status="显示在状态条上"; alert("cctv";或alert('cctv'); document.writeln("abc"); document.writeln()在网页初始加载时,输出的文字会产生在源代码中,但是加载网页后再执行某些函数内执行的document.writeln();则会将整个网页的代码全部替换为输出的文字,所以document.writeln最好只在加载时执行一遍,它也可以创建元素,在网页中使用过程中最好不要执行document.writeln, <html> <head> head> <bodybgcolor="pink"> <script>document.writeln("abc");script> <inputonclick="document.writeln('abc');"type="button"value="按钮"name="B3"style="CURSOR:hand"ID="Button1"> body> html> 第一次会显示abc并且有按钮,当点击按钮时,源代码就只剩下了abc其它文字全没有了 vari; i=Math.random(); Math的都是数学方面的运算,包括sin,cos等等 <html> <head> <script> functionMyOpen(url) { msg=open(url,"xzy"); } script> head> <body> <inputtype="button"name="Button2"value="按钮"onclick="MyOpen('00Readme.htm')"ID="Button1"> body> html> <script> location="http://www.sohu.com"; script> 只要网页一执行这个代码,就会把网页引导到指定的目标上,若像这样写在body之间,只要一打开网页就去了sohu上,不会显示本网页的内容 也可以把location=””放在onclick中或其它事件中,则可以导引网页到sohu上. 网页a1.htm和a2.htm,在a2上编制了一个通用的过程,只要按照一定的规则打开a2,则a2可以再返回到a1上 a1.htma2.htm <script> vara=newArray("cctv","sxtv","tytv"); vara=newArray(3); vara=newArray(); a[0]="cctv"; a[1]="sxtv"; a[2]="tytv"; a[3]="xzy"; for(i=0;i document.writeln(a[i]); script> 数组的join(stringval)可以将数组元素连接起来,并且用中间插入val, 当在网页上交互显示下拉框内容的时候可以将内容加载到数组内,再利用innerHTML将内容显示在出来
vara=newArray("cctv","sxtv","tytv"); vara=newArray(3); vara=newArray(); a[0]="cctv"; a[1]="sxtv"; a[2]="tytv"; a[3]="xzy"; document.writeln(a.join('
显示: cctv vararr=newArray(1000) arr[0]="xbc1"; arr[1]="bcx2"; arr[2]="cctv3"; arr[5]="xctv4"; arr.sort(); for(i=0;i { if(arr[i]!=null) document.writeln(arr[i]); } history.back() history.forward() history.go(1)go(-1)go(-2) vara1; a1=parseInt(”88”); document.first.text1.focus(); document.bgColor=255; varD=newDate();返回的是当前日期 varD=newDate(1995,10,11); D.setHours(15); 给日期类型赋值
vars; //这里测试用的地址是http://192.168.1.169:81/test.asp s=location.hostname;//192.168.1.169 s=location.host;//192.168.1.169:81 s=location.href;//http://192.168.1.169:81/test.asp若带参数,则连参数也可以读出,它会把地址栏内的数据完整的读出来 s=location.pathname;///test.asp s=location.port;//81 s=location.protocol;//http: document.writeln(s); if(window.location.search)alert(window.location.search);//如果打开时设置了参数,如E:\01_XZY\02_Java\01_练习\test8.htm?name=xzy&age=32,则会显示?name=xzy&age=32 script> window.location="http://192.168.1.169:81/postinfo.html"; window就是打开的IE浏览器,windows有很多属性,可以通过.看出 window.close();可以直接将页面关闭了,但是在直接打开的网页上有确认关闭的提示,如果是通过超连接到新窗口打开的网页,则关闭时没有提示。 无提示框的(好像不能用) <html> <head> <objectid=closestype="application/x-oleobject"classid="clsid:adb880a6-d8ff-11cf-9377-00aa003b7a11"VIEWASTEXT> <paramname="Command"value="Close"> object> head> <bodybgcolor="pink"> <inputonclick="closes.Click();"type="button"value="关闭"name="B3"style="CURSOR:hand"ID="Button1"> body> html> 可以直接关闭,没有任何提示 用下面的设置可以把超链接的下划线去掉,当鼠标移动上去的时候是红颜色. 在 n(4)YesNo提示框
n设置文本输入框的读写属性
n选取文本框中的文本函数
n(5)在超链接中执行函数
n(6)下拉选择框的几个属性
n(7)网页打开时加载另外一个内容
n(8)避免重复open窗体
n(9)加入CSS
n(10)加入js文件
000各种事件
n(1)onLoad
n(2)onunload
n(3)onClick
n(4)onblur也就是LostFocus
n(5)OnMouseOver:当鼠标移进区域时执行,MouseIn
n(6)onMouseOut鼠标移出
n(7)onMouseMove鼠标在区域内移动
n(8)onSelect:反白选择其上的文字或元素时
n(9)onChange
000_1常用的元素状态设置
n(1)设置鼠标的外观
n(2)设置为不可见
关于js检测浏览器关闭事件(-)
001常用JavaScript代码
n三目运算(?:)
n(0)把函数写在其它文件中(类似C中的include,或inline)
n(1)在状态条上书写字符串
n(2)Alert
n(3)输出文字
n(4)数学运算
n(5)打开一个网页
Ø①在新窗口中打开
Ø②在当前网页打开
n(5_01)可以互相打开的地址函数
n(6)使用数组
Ø基本操作
Øjoin:利用数组的join方法,连接所有的数组内容
'));
sxtv
tytv
xzy Ø数组排序
n(7)网页的后退和前进
n(8)类型转换
Ø①字符串转为整数
n(9)设置焦点
n(10)设置背景色
n(11)日期函数
n(12)使用网页地址的一些信息
n(13)打开新链接
n(14)关闭IE浏览器
n(15)链接的颜色控制
Ø<1>设置1
A:link{FONT-SIZE:9pt;COLOR:blue;FONT-FAMILY:'宋体';TEXT-DECORATION:none}
A:visited{FONT-SIZE:9pt;COLOR:blue;FONT-FAMILY:'宋体';TEXT-DECORATION:none}
A:active{FONT-SIZE:9pt;FONT-FAMILY:'宋体';TEXT-DECORATION:none}
A:hover{FONT-SIZE:9pt;COLOR:red;FONT-FAMILY:'宋体';TEXT-DECORATION:none}
TD{FONT-SIZE:9pt;COLOR:black;LINE-HEIGHT:14pt;FONT-FAMILY:'宋体';TEXT-DECORATION:none}
P{FONT-SIZE:9pt;LINE-HEIGHT:14pt;FONT-FAMILY:'宋体'}
BODY{FONT-SIZE:9pt;LINE-HEIGHT:14pt;FONT-FAMILY:'宋体'}
<Html>
<head>
<script>
document.linkColor="#FFFF00";//未使用的连接的颜色
document.alinkColor=65280;//点击连接时连接的颜色
document.vlinkColor=0;//一经点击过的连接的颜色
document.fgColor="#FF00FF";//默认文字的颜色
document.bgColor="#505050";//网页的背景色
script>
head>
<body>
我是邢志云
<ahref="http://www.sohu.com"target=_blank>cctva>
<ahref="http://ddd"target=_blank>cctva>
body>
html>
<Html>
<head>
head>
<body>
<script>
vartest=window.prompt("请输入数据:","你好");
document.write(test+":是JavaScript输入输出的例子");
script>
body>
<Html>
<head>
<script>
document.linkColor="#FFFF00";//未使用的连接的颜色
document.alinkColor=65280;//点击连接时连接的颜色
document.vlinkColor=0;//一经点击过的连接的颜色
document.fgColor="#FF00FF";//默认文字的颜色
document.bgColor="#505050";//网页的背景色
script>
head>
<body>
我是邢志云
<ahref="http://www.sohu.com"target=_blank>cctva>
<ahref="http://ddd"target=_blank>cctva>
body>
html>
display:none时不显示文字
完整的代码
functionMake()
{
if(document.all.text1.style.display=="none")
document.all.text1.style.display="inline";
else
document.all.text1.style.display="none"
}
name=text1style="display:inline;color=#FF0000;font=32">真有趣!
"Make();"type="button"value="按钮"name="B3"style="CURSOR:hand"ID="Button1">
functionJHshNumberText()
{
if(!(((window.event.keyCode>=48)&&(window.event.keyCode<=57))
||(window.event.keyCode==13)||(window.event.keyCode==46)
||(window.event.keyCode==45)))
{
window.event.keyCode=0;
}
}
switch(j)
{
case0:
wtab.rows[iRow].cells(j).innerHTML=xuhao+"";wtab.rows[iRow].cells(j).align="right";
break;
case1:
wtab.rows[iRow].cells(j).innerHTML=""+mc;wtab.rows[iRow].cells(j).align="left";
break;
case2:
wtab.rows[iRow].cells(j).innerHTML=""+shifou;wtab.rows[iRow].cells(j).align="left";
break;
case3:
wtab.rows[iRow].cells(j).innerHTML=czuo;wtab.rows[iRow].cells(j).align="center";
wtab.rows[iRow].cells(j).attachEvent('onmouseover',SetColor_1);
wtab.rows[iRow].cells(j).attachEvent('onmouseout',SetColor_2);
break;
}
我们知道,HTML的文本框元素可以使用type,name,value,size,maxlength,style,id等固有属性,但你可曾想到,我们还可以自定义一些属性呢。笔者是在一个极其偶然的机会里发现这个小秘密的,并且没有想到的是,这个小秘密竟然可以帮我们很大的忙----实现客户端数据的通用校验,自此客户端校验工作容易做了,不用再为每个FORM表单劳神又费力地写Javascript校验代码了。
请看下面的测试网页univerify_test.html:
οnsubmit="returnverifyAll(form1);"> cellPadding="1"cellSpacing="0"width="580"> size="10"maxlength="10"maxsize="10"nullable="no" datatype="text"onBlur="verifyInput(this);"> | 年龄: | size="3"maxlength="3"maxsize="3"nullable="no" datatype="number"onBlur="verifyInput(this);"> | ||||
住址: | size="40"maxlength="100"maxsize="100"nullable="yes" datatype="text"onBlur="verifyInput(this);"> |
上述网页的表单form1中有三个文本框,姓名(NAME)、年龄(AGE)和住址(ADDRESS)。笔者为这三个文本框中自行定义了四个新属性,分别是:
1、chname:表示该数据的中文名称,用于校验出错时显示用。
2、maxsize:表示允许输入的最大长度,这个长度是以节字计算的。
3、nullable:表示输入值是否允许为空。为yes时允许为空。
4、datatype:表示输入值的数据类型。这个数据类型用户可以根据需要自行定义,需要注意的是,对于每一个新的数据类型,均需要在下面将要讲述的Javascript文件univerify.js中添加相应的校验函数,从而实现统一校验。
三个文本框都对失去焦点事件进行捕获:onBlur="verifyInput(this);"。在失去焦点时用verifyInput校验一下此文本框的值是否合法。
form1表单对onsubmit事件进行了捕获:οnsubmit="returnverifyAll(this);"。在用户提交表单时,用verifyAll对此表单的元素的值统一进行检测,验证其合法性,保证存入数据库时不出现异常。
上述网页引用的Javascript函数库univerify.js内容如下:
/******************************************************/ /*文件名:univerify.js*/ /*功能:基于自定义属性的统一检测用Javascript函数库*/ /*作者:纵横软件制作中心雨亦奇([email protected])*/ /******************************************************/ /*取得字符串的字节长度*/ functionstrlen(str) {vari; varlen; len=0; for(i=0;i { if(str.charCodeAt(i)>255)len+=2;elselen++; } returnlen; } /*检测字符串是否为空*/ functionisnull(str) { vari; for(i=0;i { if(str.charAt(i)!='')returnfalse; } returntrue; } /*检测字符串是否全为数字*/ functionisnumber(str) { varnumber_chars="1234567890"; vari; for(i=0;i { if(number_chars.indexOf(str.charAt(i))==-1)returnfalse; } returntrue; } /*检测指定文本框输入是否合法*/ functionverifyInput(input) { varimage; vari; varerror=false; /*长度校验*/ if(strlen(input.value)>parseInt(input.maxsize)) { alert(input.chname+"超出最大长度"+input.maxsize); error=true; } else /*非空校验*/ if(input.nullable=="no"&&isnull(input.value)) { alert(input.chname+"不能为空"); error=true; } else { /*数据类型校验*/ switch(input.datatype) { case"number":if(isnumber(input.value)==false) { alert(input.chname+"值应该全为数字"); error=true; } break; /*在这里可以添加多个自定义数据类型的校验判断*/ /*casedatatype1:...;break;*/ /*casedatatype2:...;break;*/ /*....................................*/ default :break; } } /*根据有无错误设置或取消警示标志*/ if(error) { image=document.getElementById("img_"+input.name); image.src="img/warning.gif"; returnfalse; } else { image=document.getElementById("img_"+input.name); image.src="img/space.gif"; returntrue; } } /*检测指定FORM表单所有应被检测的元素 (那些具有自定义属性的元素)是否合法,此函数用于表单的onsubmit事件*/ functionverifyAll(myform) { vari; for(i=0;i { /*非自定义属性的元素不予理睬*/ if(myform.elements[i].chname+""=="undefined")continue; /*校验当前元素*/ if(verifyInput(myform.elements[i])==false) { myform.elements[i].focus(); returnfalse; } } returntrue; } |
在univerify.js中,verifyAll用来校验指定表单的数据,它是逐个提取表单中的元素的,不用特别指定表单元素的名字,所以具有通用性。verifyInput是用来实际执行数据校验的函数,如果有新的数据类型datatype需要检测,用户可在此函数中添加,可扩充性好。
下面是浏览univerify_test.html网页的画面:
使用基于自定义属性的客户端统一检测方法,需要做的工作很简单:
1、在网页文件中嵌入统一检测用Javascript函数库:
2、对所用表单添加onsubmit事件处理程序:οnsubmit="returnverifyAll(this);"。其中的this指定为当前表单对象,勿需提供表单具体名字,极具通用性。
3、对每个需要检测的文本框添加chname,maxsize,nullable和datatype四个自定义属性。如果想在文本框失去焦点时对数据进行一下校验,请添加事件处理程序:onBlur="verifyInput(this);"。
怎么样?使用基于自定义属性的客户端统一检测方法后,不用再为每个表单写类似的检测代码了吧,统一检测足够了。
小结:自定义属性是非常有用的属性,基于自定义属性的客户端数据统一检测方法,在B/S开发中极其有用,使用方便,可扩充性强。相信读者经过实践,自能体会到个中妙处。
在调用网页的时候地址写入:http://localhost:8080/jsp1.jsp?st=d&xzy=cctv,则点击按钮会显示cctv.
//从url字符串中提取变量的值
functionGetQueryValue(sorStr,panStr)
{
varvStr="";
if(sorStr==null||sorStr==""||panStr==null||panStr=="")returnvStr;
sorStr=sorStr.toLowerCase();
panStr+="=";
varitmp=sorStr.indexOf(panStr);
if(itmp<0){returnvStr;}
sorStr=sorStr.substr(itmp+panStr.length);
itmp=sorStr.indexOf("&");
if(itmp<0)
{
returnsorStr;
}
else
{
sorStr=sorStr.substr(0,itmp);
returnsorStr;
}
}
functiongetcookieval(offset)
{
varendstr=document.cookie.indexOf(';',offset);
if(endstr==-1)endstr=document.cookie.length;
returnunescape(document.cookie.substring(offset,endstr));
}
//从cookcie中获得
functiongetcookie(name)
{
vararg=name+'=';
varalen=arg.length;
varclen=document.cookie.length;
varj=0;
while(j
{
vark=j+alen;
if(document.cookie.substring(j,k)==arg)returngetcookieval(k);
j=document.cookie.indexOf('',j)+1;
if(j==0)break;
}
returnnull;
}
jsp2
你好中央电视台a
在html中直接输入下面的代码,就可以把文字输出来
document.write("
还可以循环,显示10行红色的文字
<html>
<head>
head>
<body>
<script>
for(a=0;a<10;a++)
document.write("
"
script>
body>
html>
这可以生成动态的Html代码,用这种方法可以动态地创建Html元素,如层的动态创建用的就是这种方法。
先显示一个提示框,再显示10行文字
<html>
<head>
<script>
functionpushbutton(str)
{
alert(str);
}
script>
head>
<body>
<script>
pushbutton("我们都是大好人");
for(a=0;a<10;a++)
document.write("
"
script>
body>
html>
if(isNaN(Date.parse(document.forms[0].startdatetime.value)))
{
document.forms[0].startdatetime.value=Date.parse(document.forms[0].startdatetime.value);
alert("请正确输入会议开始时间.");
return;
}
<html>
<head>
<script>
functionpushbutton(str)
{
alert(str);
}
script>
head>
<body>
<p><inputtype="button"value="按钮"name="B3"onclick=pushbutton("你好")>p>
body>
html>
<html>
<head>
<script>
functionMessage(str)
{
alert(str);
}
script>
head>
<body>
<p><inputtype="text"onblur=Message(this.value)name="T1"size="20"ID="Text1">p>
body>
html>
this.value是引发事件的实体的值,在按钮中也可以这么用.
直接写成
也可以,即在html语言内也可以直接写JavaScript代码。
用以下的代码可以自动获取本网页的最后更新日期.
<html>
<head>
head>
<body>
<script>
document.writeln(document.lastModified);
script>
body>
html>
<html>
<head>
head>
<body>
<script>
vartoday=newDate();
vars=newString();
//02/20/200316:07:16
s=document.lastModified;
//最后更新日期:02/20/200316:17:22
document.writeln("最后更新日期:"+s+"
");
//最后更新日期:2003年02月20日
document.writeln("最后更新日期:"+s.substring(6,10)+"年"+s.substring(0,2)+"月"+s.substring(3,5)+"日");
document.writeln("
");
s="今天是:"+today.getYear()+"年"+(today.getMonth()+1)+"月"+today.getDate()+"日";
//今天是:2003年2月20日
document.writeln(s);
script>
body>
html>
<Aonmouseover="window.status='Justanotherstupidlink...';returntrue"
href="00Readme.htm">连结A>
<script>
vari;
vartoday=newDate();
i=Math.random();//Math.abs(Math.sin(today.getTime()));
document.write("Thisisarandomnumber:"+i);
script>
<html>
<head>
<script>
functionNewWindow()
{
//msg=open("","DisplayWindow","toolbar=no,directories=no,menubar=no");
msg=open("","xzy");
msg.document.write("
msg.document.write("
}
script>
head>
<body>
<inputtype="button"value="按钮"name="B3"onclick=NewWindow()ID="Button1">
body>
html>
window.open("./GoodType.jsp?backid="+nn,null,"height=405,width=620,status=no,scrollbars=yes,toolbar=no,menubar=no,location=no")
利用open可以打开一个新窗体
语法:oNewDoc=open(sUrl[,sName][,sFeatures][,bReplace])
sUrl |
显示在新窗体地址栏内,如果为空则显示为about:blank 若填写x.htm则显示G:\Xzy\JavaScript\Test\x.htm 若这个sUrl是一个存在的文件则显示这个网页 |
sName |
新打开网页的名字,若有名字,则打开以后再重新打开时会在原先打开的网页上再次打开,不会开辟新窗体. 若为空,则每次都新开一个窗体 |
sFeatures |
窗体外观控制: channelmode=no/yesyes时显示一个全屏的窗体 directories=yes/nono时,显示的窗体没有工具条,不能调整大小,只能关闭 fullscreen=no/yesyes时,显示一个真正的全屏界面,没有任何操作按钮,只能用alt+f4来关闭窗体, height=400,width=400,left=200,top=50:位置大小调整 menubar=yes/no是否显示菜单条 resizable=no/yes是否可以调整窗体的大小 scrollbars=yes/no是否显示滚动条 status=no/yes是否显示状态条 titlebar=yes/no是否显示标题栏 |
以下是MSDN的帮助
Syntax
oNewDoc=document.open(sUrl[,sName][,sFeatures][,bReplace])
Parameters
sUrl |
Required.Whenopeninganewdocument,sUrlisaStringthatspecifiesaMultipurposeInternetMailExtensions(MIME)typeforthedocument.Whenopeninganewwindow,sUrlisaStringthatspecifiestheURLtorenderinthenewwindow.IfasUrlisnotspecified,anewwindowwithabout:blankisdisplayed.
|
||||||||||||||||||||||||||||
sName |
Optional.Whenopeningupanewdocument,specifyingtheStringreplaceforsNamedesignatesthatthenewdocumentistoreplacethecurrentdocumentinthehistorylist.Ifthevaluereplaceisnotspecifiedwhenopeningupadocument,anewentrywillsimplybeaddedtothehistorylist.Whenopeningawindow,thisisaStringthatspecifiesthenameofthewindow.ThevalueofthisparametermaybespecifiedasthevalueoftheTARGETattributeforaformoraelement.Thisvaluewillthenwilldefinethisnewwindowastheplacetoloadadocument.
|
||||||||||||||||||||||||||||
sFeatures |
Optional.ThisStringisonlyusedwhenopeninganewwindowandspecifiesthesettingsofthewindow'sdisplayfeatures.Thisparameterisalistofitemsseparatedbycommas.Eachitemconsistsofanoptionandavalue,separatedbyanequalssign(forexample,"fullscreen=yes,toolbar=yes").Thefollowingfeaturesaresupported.
|
||||||||||||||||||||||||||||
bReplace |
Optional.WhenthesUrlisloadedintothesamewindow,thisBooleanparameterspecifieswhetherthesUrlcreatesanewentryorreplacesthecurrententryinthewindow'shistorylist.
|
ReturnValue
Returnsareferencetothenewdocumentorwindowobject.Usethisreferencetoaccesspropertiesandmethodsofthenewdocumentorwindow.
Window.open(“”,””,”scrollbars=yes,status=yes,toolbar=no,menu=no,resizable=1”)
vararr=showModalDialog("index.jsp","","dialogWidth:18.5em;dialogHeight:11.5em;status:0");
alert('cctv');
showModalDialog:是一个模式对话框,显示后下面的窗体便不能操作了,除非将模式窗体关闭,相当于vb中的from1.show1
showModelessDialog:下面的窗体还可以操作,但下面的窗体无法覆盖上面的窗体,上面的总是在上面,相当于vb中的form1.show,me
status:0表示没有底边的状态条
help:no表示没有窗体右上角的问号按钮
dialogWidth:对话框宽度。
dialogLeft:距离桌面左的距离。
dialogTop:离桌面上的距离。
center:{yes|no|1|0}:窗口是否居中,默认yes,但仍可以指定高度和宽度。
help:{yes|no|1|0}:是否显示帮助按钮,默认yes。
resizable:{yes|no|1|0}[IE5+]:是否可被改变大小。默认no。
status:{yes|no|1|0}[IE5+]:是否显示状态栏。默认为yes[Modeless]或no[Modal]。
scroll:{yes|no|1|0|on|off}:指明对话框是否显示滚动条。默认为yes。
还有几个属性是用在HTA中的,在一般的网页中一般不使用。
dialogHide:{yes|no|1|0|on|off}:在打印或者打印预览时对话框是否隐藏。默认为no。
edge:{sunken|raised}:指明对话框的边框样式。默认为raised。
unadorned:{yes|no|1|0|on|off}:默认为no。
先打开一个新网页index.jsp,关闭后显示msgbox的内容。
帮助说明,里面有更多的东西,还可以传递参数
Javascript有许多内建的方法来产生对话框,如:window.alert(),window.confirm(),window.prompt().等。然而IE提供更多的方法支持对话框。如:
showModalDialog()(IE4+支持)
showModelessDialog()(IE5+支持)
window.showModalDialog()方法用来创建一个显示HTML内容的模态对话框,由于是对话框,因此它并没有一般用window.open()打开的窗口的所有属性。
window.showModelessDialog()方法用来创建一个显示HTML内容的非模态对话框。
当我们用showModelessDialog()打开窗口时,不必用window.close()去关闭它,当以非模态方式[IE5]打开时,打开对话框的窗口仍可以进行其他的操作,即对话框不总是最上面的焦点,当打开它的窗口URL改变时,它自动关闭。而模态[IE4]方式的对话框始终有焦点(焦点不可移走,直到它关闭)。模态对话框和打开它的窗口相联系,因此我们打开另外的窗口时,他们的链接关系依然保存,并且隐藏在活动窗口的下面。
使用方法如下:
vReturnValue=window.showModalDialog(sURL[,vArguments][,sFeatures])
vReturnValue=window.showModelessDialog(sURL[,vArguments][,sFeatures])
参数说明:
sURL
必选参数,类型:字符串。用来指定对话框要显示的文档的URL。
vArguments
可选参数,类型:变体。用来向对话框传递参数。传递的参数类型不限,包括数组等。对话框通过window.dialogArguments来取得传递进来的参数。
sFeatures
可选参数,类型:字符串。用来描述对话框的外观等信息,可以使用以下的一个或几个,用分号“;”隔开。
dialogHeight对话框高度,不小于100px,IE4中dialogHeight和dialogWidth默认的单位是em,而IE5中是px,为方便其见,在定义modal方式的对话框时,用px做单位。
dialogWidth:对话框宽度。
dialogLeft:距离桌面左的距离。
dialogTop:离桌面上的距离。
center:{yes|no|1|0}:窗口是否居中,默认yes,但仍可以指定高度和宽度。
help:{yes|no|1|0}:是否显示帮助按钮,默认yes。
resizable:{yes|no|1|0}[IE5+]:是否可被改变大小。默认no。
status:{yes|no|1|0}[IE5+]:是否显示状态栏。默认为yes[Modeless]或no[Modal]。
scroll:{yes|no|1|0|on|off}:指明对话框是否显示滚动条。默认为yes。
还有几个属性是用在HTA中的,在一般的网页中一般不使用。
dialogHide:{yes|no|1|0|on|off}:在打印或者打印预览时对话框是否隐藏。默认为no。
edge:{sunken|raised}:指明对话框的边框样式。默认为raised。
unadorned:{yes|no|1|0|on|off}:默认为no。
传入参数:
要想对话框传递参数,是通过vArguments来进行传递的。类型不限制,对于字符串类型,最大为4096个字符。也可以传递对象,例如
test1.htm
====================
test2.htm
====================
test3.htm
====================
可以通过window.returnValue向打开对话框的窗口返回信息,当然也可以是对象。例如:
test4.htm
===================
test5.htm
===================
可以向用showModalDialog和showModelessDialog打开的窗体传递参数,参数可以是字符串,也可以是对象,如数组或窗体对象
例子:test1.htm打开test2.htm,并向test2.htm传递一个数组对象作为参数
test1.htm
varxzy=newArray(3);
xzy[0]="孙悟空";
xzy[1]="猪八戒";
xzy[2]="唐僧";
//向对话框传递数组
window.showModelessDialog("test2.htm",xzy)
test2.htm
vara=window.dialogArguments//读出传递过来的参数
alert("您传递的参数为:"+a.join("[和]"));
下面是传递document对象的例子
test1.htm
functiont()
{
alert('被调用了');
}
test2.htm
varlastwindow=window.dialogArguments
下面是个传递窗体对象的代码
varmxh2=window.open("about:blank","window_mxh")
//向对话框传递window对象
window.showModalDialog("test3.htm",mxh2)
上面网页中使用了框架,点击下边超链接时上边的网页显示一个随机数,点击按钮时,调用上边网页内的一个函数,onclick="parent.xzy1.Print('这是由按钮产生的文字')",,上边网页将传入的参数显示出来.
框架 |
|
上部网页 |
<html> <head> <script> functionPrint(Str) { alert(Str); } script> head> <body> <script> document.writeln(Math.random()); script> body> html> |
下部网页 |
<html> <head> head> <body> <Ahref="a1.html"target="xzy1">产生新随机数A> <inputtype="button"value="按钮"name="B3"onclick="parent.xzy1.Print('这是由按钮产生的文字')"> body> html> 当超链接使用<Ahref="a1.html"TARGET="_top">产生新随机数A> 时,目标网页可以充满整个frame. |
window.opener.document.form1.text1.value=””;
JavaScript中的定时器是利用一个函数,setTimeout(调用函数,延时),下面的程序会在显示网页的状态栏中不停地显示一个随机数
<html>
<head>
<script>
functionscroll()
{
window.status=Math.random();
setTimeout("scroll()",300);//300ms
}
script>
head>
<bodyonLoad="scroll()">
body>
html>
这里以一个网页的加法器来示范,如何读取和设置,Text框的文字.
<html>
<head>
<script>
functionMake()
{
vara1;
vara2
vara3;
a1=parseInt(document.first.text1.value);//first就是Form的名称
a2=parseInt(document.first.text2.value);
a3=a1+a2;
document.first.text3.value=a3;
}
script>
head>
<body>
<FORMname=first>
<INPUTname=text1value="0"size=5>+
<INPUTname=text2value="0"size=5>
<INPUTonclick="Make()"type=buttonvalue="输入测试"name=button1size=5>
<INPUTname=text3size=5>
FORM>
body>
html>
本例的功能:2个text框的内容保持一致,当一个改变时,另外一个也相应的改变.
窗体和上面的元素都是可以通过数组来访问的.
<Html>
<head>
head>
<body>
<formName="Form1">
--Form2的第一个元素的值和本元素的值相同-->
1:<inputtype=textonChange="document.Form2.elements[0].value=this.value;"ID="Text1"NAME="Text1">
form>
--网页上第一个窗体的第一个元素的值和本元素的值相同-->
<formNAME="Form2">
2:<inputtype=textonChange="document.forms[0].elements[0].value=this.value;"ID="Text2"NAME="Text2">
form>
body>
html>
本例实现的功能,当点中全选按钮时,所有的信件全被选中,并显示删除图片,且图片的鼠标是手(hand)形状的
初始点击全选时
完整的代码
<html>
<head>
<script>
functiont()
{
vari;
for(i=0;i
{
if(document.forms[0].elements[i].name.substring(0,1)=="C")
document.forms[0].elements[i].checked=document.forms[0].All.checked;
}
/*
也可以这么写,效果是一样的,只不过将所有的元素都放置在了数组elems中,代码可以短些
varelems=window.document.forms[0].elements;
for(vari=0;i
{
if(elems[i].name.substring(0,1)=="C")
{
elems[i].checked=document.forms[0].All.checked;
}
}
*/
if(document.forms[0].All.checked)
document.forms[0].PicButton.style.display="inline"//显示图片
else
document.forms[0].PicButton.style.display="none"//隐藏图片
}
script>
head>
<bodybgcolor="pink">
<formname="f1">
<p><inputtype="checkbox"name="C1"value="ON">信件1p>
<P><inputtype="checkbox"name="C2"value="ON">信件2P>
<P><inputtype="checkbox"name="C3"value="ON">信件3P>
<p><inputtype="checkbox"name="C4"value="ON">信件4p>
<p><inputtype="checkbox"name="All"value="ON"onclick="t()">全选p>
<p>
<IMG
src="人事档案.files/rb_erase_up.gif"border=0
name="PicButton"width="60"height="18"
style="DISPLAY:none;CURSOR:hand"onclick=DelCode();
>
p>
form>
body>
html>
完整代码
层的声明:
下面是一个简单的层,上面显示着2行文字
<divid="Layer1"style="position:absolute;left:217px;top:63px;width:60px;height:72px;background-color:#FFFF99;z-index:1">
<p>abcp>
<p>cctvp>
div>
移动层的代码
<script>
functionmove(x)
{
if(x>100)x=0;
x=x+1;
Layer1.style.posTop=x;
Layer1.style.posLeft=x;
window.status=x;//Math.random();
setTimeout("move("+x+")",100);
}
script>
在网页上移动鼠标时,鼠标移动到那里,层便跟随到那里。
<html>
<head>
<SCRIPTlanguage="javascript">
SCRIPT>
head>
<bodyonmousemove="move();">
<divid="div1"style="position:absolute;left:250px;top:118px;background-color:#FFFF99;width:60px;height:37px;z-index:"50">
这是测试的层
div>
body>
html>
设图层上有一个层,名字叫Layer1,可以用下面的代码利用字符串型的层名字来指向实际的层.
varl; vars; s="Layer1"; l=eval(s); l.style.posTop=200; |
varl; vari; i=1; l=eval("Layer"+i); l.style.posTop=200; |
上面的代码都会使层Layer1移动位置.
需要注意的是:document.write只能第一次有效,再次写的write的源代码就变了,所以程序中第一次创建好层后,再次移动时采用的是改变已有层的位置.
解释:层一经创建,便存在于网页中,再创建会重复的.
代码
thisdiv=eval("Layer"+(x)+".style");
thisdiv.posTop=y;
thisdiv.posLeft=x;
是将字符串的变量转为实际的变量,使用的函数是eval,好像fox的宏一样
thisdiv.posTop等价于Layeri.style.posTop
设层的名字是Layer1
显示:Layer1.style.visibility="visible";
隐藏:Layer1.style.visibility="hidden";
利用显示和隐藏层可以制作菜单
functiona()
{
varstr="你好B.,#ccsldfk";
vars2=EnCode(str);
alert(UnCode(s2));
}
//将str转换为编码用x分割如:20320x65x66x67x
functionEnCode(str)
{
vars;
varn;
s="";
for(n=0;n
s=s+str.charCodeAt(n)+"x";
returns;
}
//将EnCode转换出的编码串再转为字符串
functionUnCode(str)
{
vari;
varscode;
varrs;
if(str=="")return"";
i=str.indexOf("x",0);
rs=""
while(i>0)
{
scode=str.substring(0,i)
rs=rs+String.fromCharCode(scode);
str=str.substring(i+1);
i=str.indexOf("x",0);
}
returnrs;
}
点击添加后文字显示到
functionInsert()
{
vars;
s=document.all.ShowArea.innerHTML;
document.all.ShowArea.innerHTML=s+'
'+document.all.text1.value;
//innerHTML可以写入html控制,如果用innerText则html控制也会被显示出来,被作为普通的字符处理.
document.all.text1.value='';
document.all.text1.focus();
}
邢志云的测试
这是非常好的性能,可以在网页上显示出任意的动态代码.
Span和div都可以作为嵌入式代码的载体,如可以在span的首尾写上表格的控制,然后在span内填写表体的代码.
functionInsert()
{
varrow;
varcell;
vartbody=表格.childNodes[0];
表格.appendChild(tbody);
for(vari=0;i<10;i++)//10行
{
row=document.createElement("TR");
tbody.appendChild(row);
for(varj=0;j<5;j++)//5列
{
cell=document.createElement("TD");
row.appendChild(cell);
cell.innerText="Row"+i+",Cell"+j;
}
}
}
删除表格节点
表格.removeNode(true);
functionInsert()
{
node=document.createElement("SPAN");//创建一个span元素
node.innerText="使用innerText属性
";//这里的
不会表示为回车,因为用的是innerText所以
会被当作普通的文本显示出来.
divUpdate.appendChild(node);
}
functionInsert()
{
node=document.createElement("input");//创建一个span元素
node.type="text";
node.id="text1";
node.fi="dd";
node.οnclick=function(){alert('dd');}
divquery.appendChild(node);
}
卡片信息维护
varIDNumber=0;
functionInsert()
{
node=document.createElement("SPAN");//创建一个span元素
node.id=IDNumber;
click="
row=" ";"+IDNumber+" 填写内容 "+click+"
//node.innerHTML=IDNumber+"使用innerHTML属性:
";
node.innerHTML=row;
node.邢志云="XZY"+IDNumber;//可以给对象定义一个自己的属性
divUpdate.appendChild(node);
IDNumber++;
}
//可以删除Div或span上的node
functionDeleteNode(P,CID)
{
varattas=P.childNodes;
vari;
for(i=0;i
varoChild=P.children(i);
//alert(oChild.innerHTML);
//alert(oChild.邢志云);//显示自定义的属性
if(oChild.id==CID){
P.removeChild(oChild);
}
}
}
这里的代码给一个文本框添加了一个属性,字段名
可以给各种元素添加自定义的属性,如下给div添加
divUpdate.FieldName="姓名";
Microsoft.XMLDOM是IE5.0以上浏览器自带的。
从客户端网页上利用控件Microsoft.XMLDOM,可以读取服务器上xml格式的文件,要求客户端的IE浏览器上设置,win2000中默认是开启的,win2003中默认是关闭的.csdn上的论坛列表就是用这种方式实现的,如果禁用了ActiveX,则进入论坛的时候会报错.
这个控件很有用,可以实现不刷新网页而直接加载信息,有时我们在网页上选取相关下拉列表时,可以不刷新而动态改变下拉列表的内容.
下面的例子,从硬盘或Internet上读取一个xml文件,并把这个文件完整的显示在客户端
functionShow()
{
varXsldom;
Xsldom=newActiveXObject("Microsoft.XMLDOM");
Xsldom.async=false;
Xsldom.load("http://fason.nease.net/samples/xmltree/xtree/files/test2.xml");
//loadXML可以加载字符串,要求是xml格式的
//Xsldom.loadXML(text);
alert(Xsldom.xml);
}
也可以读取本机的xml文件,如把如下的文字,保存到一个xml文件中
在上面的load中写上这个文件的路径即可,如下
Xsldom.load("E:\\Temp\\xtree\\xtree\\files\\exe.xml");
这个文件必须是xml格式的,下面好像是最简单的了
中国人民万岁
全世界大团结万岁
利用XMLDOM可以在IE上生成XML格式的信息串.
xml中若使用了特殊字符需要替换,如用<需要被替换为<
< |
< |
小于 |
> |
> |
大于 |
& |
& |
&符号 |
' |
' |
省略号 |
" |
" |
引号 |
如果数据中有大量的特殊字符,如<,则可以用来直接显示原始的内容.
ifa>8大于then
<99>
]]>
一个xml文件是有根、节点、节点的属性、值等元素构成的,其中,节点是有层次关系的,一个节点可以被另外的节点嵌套,并且可以嵌套许多层。
利用XMLDOM可以将页面上的信息生成为xml文件格式的字符串。
下面的代码可以产生以上格式的xml字符串:
functionShow()
{
varobjDom
varobjRoot
varobjNode
varobjNodeValue
varobjattID
varobjattTabOrder
varobjPI
varx
//实例化MicrosoftXMLDOM对象.
objDom=newActiveXObject("Microsoft.XMLDOM");
objDom.async=false;
objDom.preserveWhiteSpace=true;
//'创建XML文档的根元素contact,并追加到XML文档中。
objRoot=objDom.createElement("通讯录");
objDom.appendChild(objRoot);//添加根节点
for(x=1;x<5;x++)//循环产生4个下面内容的节点
{
objNode=objDom.createElement("Node");//创建节点Node
objattID=objDom.createAttribute("id");//创建属性id
objattID.text="字段"+x;//给属性id赋值
objNode.setAttributeNode(objattID);//把属性id加载到节点node中
objattTabOrder=objDom.createAttribute("taborder");//创建另外一个属性taborder
objattTabOrder.text=x;//给属性taborder赋值
objNode.setAttributeNode(objattTabOrder);//把属性taborder加载到节点node上
objNodeValue=objDom.createElement("Node_value");//创建另外一个节点Node_value
objNodeValue.text="值"+x;//给节点Node_value赋值
objNode.appendChild(objNodeValue);//把节点Node_value当作节点Node的子节点,这个操作可以一直进行下去,一个节点可以有许多子节点
objRoot.appendChild(objNode);//把节点Node作为根节点的一个子节点
}
//'创建xml声明
objPI=objDom.createProcessingInstruction("xml","version='1.0'encoding='gb2312'");
//'把xml生命追加到xml文档
objDom.insertBefore(objPI,objDom.childNodes(0));
//'保存xml文件
//objDom.savestrXMLFilePath&"\"&strFileName
alert(objDom.xml);
//document.write(objDom.xml);
//'释放所有对象所引用的值
objDom=null
objRoot=null
objNode=null
objNodeValue=null
objattID=null
objattTabOrder=null
objPI=null
}
数据可以从xml中被分离出来,可以实现这样的效果,通过xmldom,将数据提交个一个后台网页,该网页接收到信息后,进行操作,然后将操作结果生成一个xml文件,再通过xmldom读取并分离出数据,显示在本地,这样就实现了不提交,也不刷新而实现了数据和服务器的交互.
functionShow()
{
varXsldom;
vartext;
varNode;
text="";
text=text+"
text=text+"
text=text+"bthen\nprintf('完成');]]>\n";
text=text+"";
text=text+"
text=text+"
text=text+"
text=text+"";
Xsldom=newActiveXObject("Microsoft.XMLDOM");
Xsldom.async=false;
Xsldom.loadXML(text);
Node=Xsldom.documentElement.childNodes;
if(true)
{
for(i=0;i<1;i++)
{
alert(Node.item(i).text);
}
}
//alert(Xsldom.xml);
document.write(Xsldom.xml);
}
Node.item(0).childNodes(0).nodeName//只有一条记录时得到节点名
LoadXml(“”)加载字符串。
在HTML中可以将XML数据填写岛表格中
把一下2个文件放到同一个目录中,运行index.htm即可
文件:people.xml
<员工>
<姓名>周星驰姓名>
<性别>男性别>
<籍贯>上海籍贯>
<出生日期>1965.10出生日期>
员工>
<员工>
<姓名>张卫健姓名>
<性别>男性别>
<籍贯>山东籍贯>
<出生日期>1972.5出生日期>
员工>
<员工>
<姓名>Robot姓名>
<性别>maile性别>
<籍贯>USA籍贯>
<出生日期>1948.6出生日期>
员工>
文件:index.htm
src="people.xml"
id="xmldso"
async="false">
datasrc="#xmldso" width="100%" border="1">
员工姓名
员工性别
员工籍贯
生日
datafld="姓名">
datafld="性别">
datafld="籍贯">
datafld="出生日期">
显示效果
还是用刚才的people.xml,里面的span换成div也可以.
functionmovenext()
{
x=xmldso.recordset
if(x.absoluteposition
{
x.movenext()
}
}
functionmoveprevious()
{
x=xmldso.recordset
if(x.absoluteposition>1)
{
x.moveprevious()
}
}
name:
gender:
nation:
οnclick="moveprevious()"/>
οnclick="movenext()"/>
点击表格的行,上部内容随之刷新
functiontestclick(field)
{
varrow=field.rowIndex
xmldso_list.recordset.absoluteposition=row
td_姓名.innerHTML=xmldso_list.recordset("姓名")
td_性别.innerHTML=xmldso_list.recordset("性别")
td_籍贯.innerHTML=xmldso_list.recordset("籍贯")
td_出生日期.innerHTML=xmldso_list.recordset("出生日期")
}
姓名:
性别:
籍贯:
出生日期:
点击表格中的行:
姓名
性别
籍贯
出生日期
可以将网页的或xml的代码读回来.
functiongetPage()
{
varobjHTTP=newActiveXObject("Microsoft.XMLHTTP")
objHTTP.Open('GET','http://www.w3schools.com/xml/tryit.asp?filename=httprequest_js',false)
objHTTP.Send()
document.all['A1'].innerText=objHTTP.status
document.all['A2'].innerText=objHTTP.statusText
document.all['A3'].innerText=objHTTP.responseText//网页的查看源代码内容
document.all['A4'].innerHTML=objHTTP.responseText//网页的HTML显示效果
}
UsingtheHttpRequestObject
status:
statustext:
response:
response:
functionbol_chinese(str)//如果str全部都是中文则返回true,否则返回false
{
varpattern=/[^\u4E00-\u9FA5]/;
if(pattern.test(str))returnfalse;
elsereturntrue;
}
functionEscapeTest()
{
vars;
vars1;
vars2;
s="你好abc中国";
s1=escape(s);
alert(s1);
s2=unescape(s1);
alert(s2);
}
样式表的操作元素
background:yellow; |
背景色 |
|
background-image:url(http://news.sohu.com/nimages/news_logo_1.gif) |
背景图片 |
|
background-repeat:no-repeat; |
背景是否重复 |
|
H4{border-top-width:2px;border-bottom-width:5px;border-left-width:1px;border-right-width:1px} |
边框:IE不支持 |
|
background-attachment:fixed; |
作为body的背景时,不随滚动条移动 |
|
background-position:centerbottom |
背景的位置 |
|
color:green; color:rgb(255,0,0) |
文字颜色 |
|
font-family:宋体; |
||
font-weight:bold |
粗体 |
|
font-size:12px |
||
margin-top:20px;margin-bottom:5px;margin-left:100px;margin-right:55px |
边距 |
|
A{position:absolute;left:100px;top:15px} |
绝对定位 |
|
position:relative;left:40px;top:10px |
相对定位 |
|
text-align:center |
文字的对齐方式 |
|
text-indent:1cm; |
文字左边距,也可作为文字缩进的设置P{text-indent:26px} |
|
B{text-transform:uppercase} 以下为所有可用的参数: ·uppercase使所有字母大写显示, ·lowercase使所有字母小写显示, ·capitalize使每个单词的第1个字母大写显示, ·none使所有继承的文字变形参数被忽略,文字将以正常形式显示。 |
||
B{text-decoration:underline} 大部分的选项使得文字变得难以阅读: ·underline给文字下划线, ·overline给文字上划线, ·line-through给文字划出删除线, ·blink文字在闪烁,好心不起作用 ·none使得上述效果都不会发生。 |
||
word-spacing:50px;letter-spacing:5px |
文字间距和字符间距,每个汉字算一个字符,空格分开的算一个字. |
|
line-height:26px |
行高 |
|
vertical-align:top |
垂直对齐方式 ·top将要素顶部同最高的母体要素对齐。 ·bottom将要素的底部同最低的母体要素对齐。 ·text-top将要素的顶部同母体要素文字的顶部对齐。 ·text-bottom将要素的底部同母体要素文字的底部对齐。 ·baseline将要素的基准线同母体要素的基准线对齐。 ·middle将要素的中点同母体要素的中点对齐。 ·sub将要素以下标的形式显示。 ·super将要素以上标的形式显示。 |
|
visibility:hidden hidden使要素被隐藏 inherit指它将继承母体要素的可视性设置。 |
隐藏属性 |
|
H1{color:green;font-size:37px;font-family:impact}
P{text-indent:1cm;background:yellow;font-family:宋体;font-size:12px}
在H1之间的文字
^_^我们都是大坏蛋
在
H1,P,BLOCKQUOTE{font-family:arial}
可以一次对多个tag定义样式表
把样式表存储在一个文件中,然后许多网页都可以使用这个样式表
在H1之间的文字
^_^我们都是大坏蛋
其中mystyles.css的内容是
H1{color:green;font-size:37px;font-family:impact}
P{text-indent:1cm;background:yellow;font-family:宋体;font-size:12px}
可以同时引入多个外部样式表,还可以将外部样式表和本页样式表同时使用
TEXTAREA{background:yellow;color:red;}
在H1之间的文字
^_^我们都是大坏蛋
样式表中使用的标签必须是html中已经定义了的标签,如果要自定义样式,则需要在现有的标签上进行分类
a{color:#FF00FF}
a.xzy1{color:red}
a.xzy2{color:purple}
.通用分类{color:gray}
PB{color:red}/*在p内的并且是b的才变成红色*/
你好我们的地球
P{font-size:20px}
B{font-size:1.5em}/*母体字号的1.5倍,如果B用在P中则会是20px,B{font-size:200%}也能实现翻倍的效果*/
你好我们的地球
尺寸单位有许多
·in(英寸)
·cm(厘米)
·mm(毫米)
·pc(打字机字型尺寸单位)
·ex(x-height)
·px
·point
利用边框颜色可以实现彩色下划线
关于这次工程的报告,下次工程
的计划