xml css htc 的综合运用

王朝html/css/js·作者佚名  2006-11-24
窄屏简体版  字體: |||超大  

这几个技术都不是很新了,现在还拿出来说也就是为了教教新手了呵呵,各位大虾多多指正.

css之所以出现就是为了实现数据与数据的表现形式的分离, xml则是为了无限扩展数据结构本身的限制, htc(更准确的说是behavior)进一步的把代码与表现形式分离开了

之所以要把这些已经出现了若干年的东西重新翻出来说,是因为看到最近的xHTML验证似乎比较热,其实xHTML的目的也就是更好的向XML过渡,形成一种标准化的数据形式.数据与数据表达方式,数据表达方式中的行为与样式的分离正是为了更有效率的组织数据.

让我们来看一些例子

下面的代码来自:

www.blueidea.com/bbs/NewsDetail.asp?&id=2440917

用层模拟小窗口的代码:

运行代码框

<html>

<head>

<title>_xWin</title>

<meta http-equiv="Content-Type" content="text/html; charset=gb2312">

<META NAME="Description" CONTENT="http://www.51windows.Net">

<style type='text/css'>

<!--

body{font-size:12px;}

a:visited{text-decoration:none;color:slategray;}

a:hover{text-decoration:underline;color:slategray;}

a:link{text-decoration:none;color:slategray;}

-->

</style>

<script language=JScript>

<!--

//可以打包为js文件;

var x0=0,y0=0,x1=0,y1=0;

var offx=6,offy=6;

var moveable=false;

var hover='orange',normal='#336699';//color;

var index=10000;//z-index;

//开始拖动;

function startDrag(obj)

{

if(event.button==1)

{

//锁定标题栏;

obj.setCapture();

//定义对象;

var win = obj.parentNode;

var sha = win.nextSibling;

//记录鼠标和层位置;

x0 = event.clientX;

y0 = event.clientY;

x1 = parseInt(win.style.left);

y1 = parseInt(win.style.top);

//记录颜色;

normal = obj.style.backgroundColor;

//改变风格;

obj.style.backgroundColor = hover;

win.style.borderColor = hover;

obj.nextSibling.style.color = hover;

sha.style.left = x1 + offx;

sha.style.top = y1 + offy;

moveable = true;

}

}

//拖动;

function drag(obj)

{

if(moveable)

{

var win = obj.parentNode;

var sha = win.nextSibling;

win.style.left = x1 + event.clientX - x0;

win.style.top = y1 + event.clientY - y0;

sha.style.left = parseInt(win.style.left) + offx;

sha.style.top = parseInt(win.style.top) + offy;

}

}

//停止拖动;

function stopDrag(obj)

{

if(moveable)

{

var win = obj.parentNode;

var sha = win.nextSibling;

var msg = obj.nextSibling;

win.style.borderColor = normal;

obj.style.backgroundColor = normal;

msg.style.color = normal;

sha.style.left = obj.parentNode.style.left;

sha.style.top = obj.parentNode.style.top;

obj.releaseCapture();

moveable = false;

}

}

//获得焦点;

function getFocus(obj)

{

if(obj.style.zIndex!=index)

{

index = index + 2;

var idx = index;

obj.style.zIndex=idx;

obj.nextSibling.style.zIndex=idx-1;

}

}

//最小化;

function min(obj)

{

var win = obj.parentNode.parentNode;

var sha = win.nextSibling;

var tit = obj.parentNode;

var msg = tit.nextSibling;

var flg = msg.style.display=="none";

if(flg)

{

win.style.height = parseInt(msg.style.height) + parseInt(tit.style.height) + 2*2;

sha.style.height = win.style.height;

msg.style.display = "block";

obj.innerHTML = "0";

}

else

{

win.style.height = parseInt(tit.style.height) + 2*2;

sha.style.height = win.style.height;

obj.innerHTML = "2";

msg.style.display = "none";

}

}

//创建一个对象;

function xWin(id,w,h,l,t,tit,msg)

{

index = index+2;

this.id = id;

this.width = w;

this.height = h;

this.left = l;

this.top = t;

this.zIndex = index;

this.title = tit;

this.message = msg;

this.obj = null;

this.bulid = bulid;

this.bulid();

}

//初始化;

function bulid()

{

var str = ""

+ "<div id=xMsg" + this.id + " "

+ "style='"

+ "z-index:" + this.zIndex + ";"

+ "width:" + this.width + ";"

+ "height:" + this.height + ";"

+ "left:" + this.left + ";"

+ "top:" + this.top + ";"

+ "background-color:" + normal + ";"

+ "color:" + normal + ";"

+ "font-size:8pt;"

+ "font-family:Tahoma;"

+ "position:absolute;"

+ "cursor:default;"

+ "border:2px solid " + normal + ";"

+ "' "

+ "onmousedown='getFocus(this)'>"

+ "<div "

+ "style='"

+ "background-color:" + normal + ";"

+ "width:" + (this.width-2*2) + ";"

+ "height:20;"

+ "color:white;"

+ "' "

+ "onmousedown='startDrag(this)' "

+ "onmouseup='stopDrag(this)' "

+ "onmousemove='drag(this)' "

+ "ondblclick='min(this.childNodes[1])'"

+ ">"

+ "<span style='width:" + (this.width-2*12-4) + ";padding-left:3px;'>" + this.title + "</span>"

+ "<span style='width:12;border-width:0px;color:white;font-family:webdings;' onclick='min(this)'>0</span>"

+ "<span style='width:12;border-width:0px;color:white;font-family:webdings;' onclick='ShowHide(\""+this.id+"\",null)'>r</span>"

+ "</div>"

+ "<div style='"

+ "width:100%;"

+ "height:" + (this.height-20-4) + ";"

+ "background-color:white;"

+ "line-height:14px;"

+ "word-break:break-all;"

+ "padding:3px;"

+ "'>" + this.message + "</div>"

+ "</div>"

+ "<div id=xMsg" + this.id + "bg style='"

+ "width:" + this.width + ";"

+ "height:" + this.height + ";"

+ "top:" + this.top + ";"

+ "left:" + this.left + ";"

+ "z-index:" + (this.zIndex-1) + ";"

+ "position:absolute;"

+ "background-color:black;"

+ "filter:alpha(opacity=40);"

+ "'></div>";

document.body.insertAdjacentHTML("beforeEnd",str);

}

//显示隐藏窗口

function ShowHide(id,dis){

var bdisplay = (dis==null)?((document.getElementById("xMsg"+id).style.display=="")?"none":""):dis

document.getElementById("xMsg"+id).style.display = bdisplay;

document.getElementById("xMsg"+id+"bg").style.display = bdisplay;

}

//modify by haiwa @ 2005-7-14

//http://www.51windows.Net

//-->

</script>

<script language='JScript'>

<!--

function initialize()

{

var a = new xWin("1",160,200,200,200,"窗口1","xWin <br> A Cool Pop Div Window<br>Version:1.0<br>2002-8-13");

var b = new xWin("2",240,200,100,100,"窗口2","Welcome to visited my personal website:<br><a href=http://www14.brinkster.com/wildcity target=_blank>http://wildcity.126.com</a><br>and u can also sign my guestbook at:<br><a href=http://www14.brinkster.com/wildcity/gbook target=_blank>http://wildcity.126.com/gbook</a><br><br>thx!!! =)...");

var c = new xWin("3",200,160,250,50,"窗口3","Copyright by <a href='mailto:wildwind_zz@21cn.com'>Wildwind</a>!");

ShowHide("1","none");//隐藏窗口1

}

window.onload = initialize;

//-->

</script>

</head>

<base target="_blank">

<body onselectstart='return false' oncontextmenu='return false' >

<a onclick="ShowHide('1',null);return false;" href="">窗口1</a>

<a onclick="ShowHide('2',null);return false;" href="">窗口2</a>

<a onclick="ShowHide('3',null);return false;" href="">窗口3</a>

</body>

</html>

[Ctrl+A 全部选择 提示:你可先修改部分代码,再按运行]

可以看到,这段内容里同时有需要表达的数据,数据样式和样式的行为模式,对于只关心数据本身的修改者来说,如此多的代码会造成阅读上的困扰.让我们用前面提到的技术重整一下

//抱歉这段代码不能直接执行,因为我没有地方放置需要引用的CSS和HTC文件

<html xmlns:x >

<head>

<meta http-equiv="content-type" content="text/html; charset=gb2312">

<title>xWin HTC Demo

</title>

<link rel="stylesheet" type="text/css" href="sp/css/global.css">

</head>

[1] [2] [3] 下一页

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航