<HTML><HEAD><TITLE>New Document </TITLE><META NAME="Generator" CONTENT="EditPlus"><META NAME="Author" CONTENT=""><META NAME="Keywords" CONTENT=""><META NAME="Description" CONTENT=""></HEAD><BODY><SCRIPT LANGUAGE="JavaScript"><!-- //去掉字串中的空格 function NoSpace(txt){ return (txt.replace(/[\s]+/g,'')) } //判断<aaa>与</aaa>是配对的html
标签 function IsGood(txt1,txt2){ var txt='<'+'/'+txt1.substr(1)return (txt==txt2)?1:0} function chk(){ //s为模拟的html代码 //var s="d<html>fg<table>sdfg<img><tr>asdfg<td>6456</td>dfg</tr>dsfg</table>d</html>fg"var s=NoSpace(oT.value).toLowerCase()var arrMinus=new Array('<img>','<input>','<meta>','<hr>')for (var i=0i<arrMinus.lengthi++){ s=s.replace(arrMinus[i],'')} var arrElement=s.match(/<[/|A-Za-z]+>/ig)//取出所
有的<....>格式的字串 var stack=new Array()stack[0]='#'k=0//定义一个顺序栈,栈底放入#,k为栈顶指针 for (var j=0j<arrElement.lengthj++){ if (IsGood(stack[k],arrElement[j])) {k--stack.length--}//
如果配对,栈顶元素出栈 else {stack[++k]=arrElement[j]}//如果不配对,新标签入栈 alert(stack[k])//演示栈顶的内容 } (stack[k]=="#")?(document.write("所有的标签匹配")):(document.write("有的标签不匹配"))} //--></SCRIPT><TEXTAREA NAME="oT" ROWS="10" COLS="90"><HTML><META><HEAD><TITLE>New Document </TITLE></HEAD><BODY><img><input></BODY></HTML></TEXTAREA><BR><BR>原理:建一个栈,每次碰到一个新标签,就与栈顶的标签配对,如果配对,栈顶的标签就出栈,如果不配对,这个新标签就进栈,最终,栈如果是空的,说明所有的标签都是配对的,如果栈不空,说明有不配对的地方<BR>框中是模拟的html代码,你可以修改后,点下面的按钮,看是不是匹配。<BR>d出的对话框是演示栈顶的内容<BR>特点:<BR>1、还不能判断<...>哪些是合法的html标签,可以在代码中直接输入合法标签,工作量太大。<BR>2、有的标签是不需配对的,如&ltimg&gt,代码智能判断为匹配的。<BR>3、目前还不支持标签后加属性 <BR><BR><INPUT TYPE="button" value="Start" onclick="chk()"></BODY></HTML>[Ctrl+A 全部选择 提示:你可先修改部分代码,再按运行]在XHTML中要求HTML标签具有语义性,就是要用有意义的标签,比如段落用P标签,标题用H标签等,通常犯的最多的一个错误就是大量使用 div span标签,这时候的标签通常从语义上讲是没有任何意义的,可以用更合适的标签来替换。判断HTML标签使用是否合理的最好方式就是把所有的CSS文件全部去掉,看看HTML页面的可读性还高不高,可读性越高说明你的标签用的就越合理。比如h1标签即使没有CSS样式表也能正确的显示一个标题的效果。想Firefox的插件webdeveloper就可以很方便禁用CSS和JavaScript。
所以写HTML的时候应该注意以下几点:
1. 尽量少用div标签和span标签,大部分时候这两个标签是无意义的,div用于分区或分块,
2. 在语义不明显的时候,即既可以用p又可以用div时,尽量用p,因为p默认有上下间距,在没有样式表的情况下可读性更好
html标签都有特定的含义,比如说,a代表超链接,p代表文档段落,div相当于一个容器标签,img是图片标签,目前最常用的就是div标签,不同的div代表不同的容器,具体写的多了,就会了。
还有目前常用的html5标签,header,footer,section,article等等这些,你通过字面翻译也能知道其是什么意思。
如果有不了解的,可以查查相关的html标签文档,就知道了。
评论列表(0条)