<![CDATA[Stri's Blog]]> http://www.striblog.com/ 2010-9-5 6:03:28 Blog zh-cn Copyright (C),2009, Stri.PC <![CDATA[HTML中DTD里的一些事儿(二)]]> http://www.striblog.com/?p=52
"object | applet | img | map | iframe | br | span | bdo"


常用的如下:
img:(Images)属于空元素.
PS:alt属性是必须的(DTD的类型为#REQUIRED)。且alt是为不能显示图像、窗体或applets的用户代理(UA),alt属性用来指定替换文字。title是说明属性。页面中除HTML,title等一些标签外的大部分标签都有这属性

iframe:(inline frames),没有必须属性

这个标签可以嵌套内联和块级元素。不过好像没有意义;如下:
<iframe src="http://www.baidu.com/"><div>这样也可以呀!!</div></iframe>

br:(line break)属于空元素.它有一个clear属性.和CSS里的clear一样,唯一区别是css的clear:both;而br里的属性clear是clear="all"

span:最基本的内联元素.可以添加id或class增强相关语义

2.字体类型elements
"big | small | font | basefont | tt | i | b | u | s | strike "

3.词组短语类型elements
sub | sup | em | strong | dfn | code | q |samp | kbd | var | cite | abbr | acronym

sub:(subscript)下标
sup:(superscript) 上标
em:(emphasis) 强调
strong:(strong emphasis) 特别强调(重视)
dfn:(definitional) 明确的 标签可标记那些对特殊术语或短语的定义
code:(program code) 程序代码
q:(inlined quote) 内联引用
samp:(sample) 样本 标签表示一段用户应该对其没有什么其他解释的文本字符
kbd:(something user would type) 定义键盘文本
var:(variable) 变量
cite:(citation) 引用 引证 标签通常表示它所包含的文本对某个参考文献的引用,比如书籍或者杂志的标题。
abbr:(abbreviation) 缩写 表示一个缩写形式,比如 "Inc."、"etc."。通过对缩写词语进行标记,您就能够为浏览器、拼写检查程序、翻译系统以及搜索引擎分度器提供有用的信息
acronym:(acronym) 首字母简略词 素可定义只取首字母缩写

4.head类型elements
"h1 | h2 | h3 | h4 | h5 | h6"

5.列表类型elements
"ul | ol | dl | menu | dir"

ul:(Unordered list)无序号列表
ol:(Ordered list)有序列表
dl:(definition lists)定义列表
menu,dir 不赞成或不被支持

6.块级文本elements
"pre | hr | blockquote | address | center | noframes"

pre:(Preformatted)预格式化 可以嵌套除"img|object|applet|big|small|sub|sup|font|basefont"的内联元素
hr:(Horizontal Rule)水平线
blockquote:( Block-like Quotes)
address:(Address) 可以嵌套p标签

7.块级elements
p | head类型 | 列表类型 | 块级文本类型 |fieldset | table

8.表单elements
form | label | input | select | optgroup | option | textarea | fieldset | legend | button

form:必须属性action,默认get方法,enctype默认为"application/x-www-form-urlencoded"
label:标记
input:输入框,其name值是必须的(submit和reset除外)。默认type为text.
select:(option selector) 选择器
optgroup:(option组),属性中label是必须的。
option:选择器内容
textarea:多行文本域,其中rows(行),cols(列)必须
fieldset:表单区域
legend:表单区域标记
button:默认type为:submit

]]>
http://www.striblog.com/?p=52#comment 96 Tue, 13 Jul 2010 16:54:10 +0800 http://www.striblog.com/?p=52
<![CDATA[XHTML1.0的几个注意(一)]]> http://www.striblog.com/?p=51
XHTML1.0是XHTML的第一个规范.它是将3种HTML4应用到XML1.0后重新形成的.意图是:作为一种语言,内容既符合XML,并且如果依照一些简单的指导方针,也能被HTML4用户代理程序识别.

XHTML的几个注意----------------------------------

1.属性必须用引号.
2.属性最小化.
XML不支持属性最小化,属性值必须写全.像compact,checked这样的属性名不能不指定属性值而在元素中出现。

3.Script and Style 元素
在XHTML中,script和style元素声明为#PCDATA内容形式,但在XML显示的元素得去#CDATA内容形式.(^^可以想像中JS在XML中的情景)

4.一些禁止元素
a 不能包含其它a元素。
pre 不能包含 img,object,big,small,sub,或 sup 元素
button 不能包含 input,select,textarea,label,button,form,fieldset,iframe 或 isindex 元素
label 不能包含其它label 元素
form 不能包含其它 form 元素

5.空元素
在空元素结束符 / 和 > 前加一个空格,如 <br />,<hr /> 和 <img src="karen.jpg" alt="Karen" />. 还有,使用最小化的标签语法,如<br />,因为另一种XML允许的语法 <br></br> 在很多现有用户代理程序会导致不可靠的结果。

6.属性值内部不要分行或有多个空格符号
7.lang 和 xml:lang 属性
在指定元素的语言时同时使用 lang 和 xml:lang 属性。xml:lang 属性在前

8.不赞成在 a,applet,form,frame,iframe,img,和 map 元素中使用name属性,在以后的XHTML版本中,它将被去除
9.布尔属性(看你懂几个?)
compact,nowrap,ismap,declare,noshade,checked,disabled,readonly,multiple,selected,noresize,defer

10.属性值中使用&
在属性值中含有&符号时,它必须用字符实体引用来表示 (即 "& amp;"). 例如,当一个元素的 href 属性指向一个接收参数的 CGI脚本时,它必须表示为http://my.site.dom/cgi-bin/myscript.pl?class=guest& amp;name=user,而不是 http://my.site.dom/cgi-bin/myscript.pl?class=guest&name=user.


参考:http://www.w3.org/TR/2000/REC-xhtml1-20000126/
]]>
http://www.striblog.com/?p=51#comment 132 Tue, 13 Jul 2010 15:03:09 +0800 http://www.striblog.com/?p=51
<![CDATA[HTML中DTD里的一些事儿]]> http://www.striblog.com/?p=49 看了一点.很有意思
第一:HTML标签的属性分类
分为四类:
<!--=================== Generic Attributes ===============================-->

<!-- core attributes common to most elements
id document-wide unique id
class space separated list of classes
style associated style info
title advisory title/amplification
-->
<!ENTITY % coreattrs
"id ID #IMPLIED
class CDATA #IMPLIED
style %StyleSheet; #IMPLIED
title %Text; #IMPLIED"
>

<!-- internationalization attributes
lang language code (backwards compatible)
xml:lang language code (as per XML 1.0 spec)
dir direction for weak/neutral text
-->
<!ENTITY % i18n
"lang %LanguageCode; #IMPLIED
xml:lang %LanguageCode; #IMPLIED
dir (ltr|rtl) #IMPLIED"
>

<!-- attributes for common UI events
onclick a pointer button was clicked
ondblclick a pointer button was double clicked
onmousedown a pointer button was pressed down
onmouseup a pointer button was released
onmousemove a pointer was moved onto the element
onmouseout a pointer was moved away from the element
onkeypress a key was pressed and released
onkeydown a key was pressed down
onkeyup a key was released
-->
<!ENTITY % events
"onclick %Script; #IMPLIED
ondblclick %Script; #IMPLIED
onmousedown %Script; #IMPLIED
onmouseup %Script; #IMPLIED
onmouseover %Script; #IMPLIED
onmousemove %Script; #IMPLIED
onmouseout %Script; #IMPLIED
onkeypress %Script; #IMPLIED
onkeydown %Script; #IMPLIED
onkeyup %Script; #IMPLIED"
>

<!-- attributes for elements that can get the focus
accesskey accessibility key character
tabindex position in tabbing order
onfocus the element got the focus
onblur the element lost the focus
-->
<!ENTITY % focus
"accesskey %Character; #IMPLIED
tabindex %Number; #IMPLIED
onfocus %Script; #IMPLIED
onblur %Script; #IMPLIED"
>

从上面可以看出分为四类:
1.核心属性(coreattrs);
2.国际化属性(internationalization attributes);
3.UI事件属性(attributes for common UI events);
4.焦点属性(attributes for elements that can get the focus)

关于核心属性
一般的标签都有这个属性(包括id,class,style,title)
国际化属性
这个对页面语言编码有影响
UI事件属性
从DTD后面的发现.link标签也可以有事件属性.不过.我试了.好像没法触发.= =!!
焦点属性
focus,blur,tab键,Alt+键

第二类:HTML标签的嵌套

DTD里原代码如下:
主要的一部分
<!-- text alignment for p, div, h1-h6. The default is
align="left" for ltr headings, "right" for rtl -->

<!ENTITY % TextAlign "align (left|center|right|justify) #IMPLIED">

<!--=================== Text Elements ====================================-->

<!ENTITY % special.extra
"object | applet | img | map | iframe">

<!ENTITY % special.basic
"br | span | bdo">

<!ENTITY % special
"%special.basic; | %special.extra;">

<!ENTITY % fontstyle.extra "big | small | font | basefont">

<!ENTITY % fontstyle.basic "tt | i | b | u | s | strike ">

<!ENTITY % fontstyle "%fontstyle.basic; | %fontstyle.extra;">

<!ENTITY % phrase.extra "sub | sup">
<!ENTITY % phrase.basic "em | strong | dfn | code | q |samp | kbd | var | cite | abbr | acronym">

<!ENTITY % phrase "%phrase.basic; | %phrase.extra;">

<!ENTITY % inline.forms "input | select | textarea | label | button">

<!-- these can occur at block or inline level -->
<!ENTITY % misc.inline "ins | del | script">

<!-- these can only occur at block level -->
<!ENTITY % misc "noscript | %misc.inline;">

<!ENTITY % inline "a | %special; | %fontstyle; | %phrase; | %inline.forms;">

<!-- %Inline; covers inline or "text-level" elements -->
<!ENTITY % Inline "(#PCDATA | %inline; | %misc.inline;)*">

<!--================== Block level elements ==============================-->

<!ENTITY % heading "h1|h2|h3|h4|h5|h6">
<!ENTITY % lists "ul | ol | dl | menu | dir">
<!ENTITY % blocktext "pre | hr | blockquote | address | center | noframes">

<!ENTITY % block
"p | %heading; | div | %lists; | %blocktext; | isindex |fieldset | table">

<!-- %Flow; mixes block and inline and is used for list items etc. -->
<!ENTITY % Flow "(#PCDATA | %block; | form | %inline; | %misc;)*">

<!--================== Content models for exclusions =====================-->

<!-- a elements use %Inline; excluding a -->

<!ENTITY % a.content
"(#PCDATA | %special; | %fontstyle; | %phrase; | %inline.forms; | %misc.inline;)*">

<!-- pre uses %Inline excluding img, object, applet, big, small,
font, or basefont -->

<!ENTITY % pre.content
"(#PCDATA | a | %special.basic; | %fontstyle.basic; | %phrase.basic; |
%inline.forms; | %misc.inline;)*">

<!-- form uses %Flow; excluding form -->

<!ENTITY % form.content "(#PCDATA | %block; | %inline; | %misc;)*">

<!-- button uses %Flow; but excludes a, form, form controls, iframe -->

<!ENTITY % button.content
"(#PCDATA | p | %heading; | div | %lists; | %blocktext; |
table | br | span | bdo | object | applet | img | map |
%fontstyle; | %phrase; | %misc;)*">


上面这些只是分类,inline元素和block元素.关于标签的嵌套有三种
1.单一的inline元素;
2.单一的block元素;
3.inline元素和block元素,DTD里叫Flow(混合);

具体可以参考下图.
按此在新窗口浏览图片
//先写这么多.看这个DTD能学到不少东西.以后有新发现,再写^^']]>
http://www.striblog.com/?p=49#comment 161 Thu, 01 Jul 2010 09:46:14 +0800 http://www.striblog.com/?p=49
<![CDATA[lang="gb2312"是错误的.]]> http://www.striblog.com/?p=48
<html xmlns="http://www.w3.org/1999/xhtml" lang="GB2312">


其实是错误的.具体看http://www.w3school.com.cn/tags/html_ref_language_codes.asp

再加一个测试(用firefox查看)



]]>
http://www.striblog.com/?p=48#comment 338 Fri, 25 Jun 2010 11:42:54 +0800 http://www.striblog.com/?p=48
<![CDATA[关于"字体"的一些事儿]]> http://www.striblog.com/?p=47 看过好多朋友写的页面的字体.大多数都用"宋体",或者为了兼容强一点.加个Arial(Arial在win平台上和Mac的都有)
会这样写
font-family:Simsun,Arial;

按W3c的某种意义上.上面这段CSS应该再加个通用字体放在尾部.一般会用sans-serif(无衬线字体)
font-family:Simsun,Arial,sans-serif;

关于serif与sans-serif.
大概上可以这样讲:前者适宜可内容字体.因为它的字形有衬线.长时间看并不感觉累(宋体就是serif字体).后者,适宜做页面突出,小字号时更明显点.
DEMO1



上面DEMO中第一段和第二段是宋体从段落长短上看:可知宋体的间距稍微大的.在大量文字上不会至于因太过于拥挤而感到记忆疲惫.
有些人喜欢雅黑.很美.可它却是化妆的凤姐,大小不一,且文字多的时候.眼神无法集中.而且一般的电脑上没有这个字体.....
[待续....]
先看几个demo
1.各浏览器下的默认字体测试
2.字体总结]]>
http://www.striblog.com/?p=47#comment 155 Sun, 06 Jun 2010 17:20:12 +0800 http://www.striblog.com/?p=47
<![CDATA[查询数据库里的一段数据]]> http://www.striblog.com/?p=46 一个查询SQL:
查询第M条起的N条记录(形式分页)

SELECT TOP N *
FROM [0791idc_Product]
WHERE (ID NOT IN
(SELECT TOP N(页数-1) id
FROM [0791idc_Product]
ORDER BY id))
ORDER BY ID

比如这样就是查询第7条到12条记录
MS里好像没有LIMIT或行号
SELECT TOP 6 *
FROM [0791idc_Product]
WHERE (ID NOT IN
(SELECT TOP 6 id
FROM [0791idc_Product]
ORDER BY id))
ORDER BY ID
]]>
http://www.striblog.com/?p=46#comment 168 Sun, 23 May 2010 18:35:11 +0800 http://www.striblog.com/?p=46
<![CDATA[闭包笔记(一)]]> http://www.striblog.com/?p=44
所谓“闭包”,指的是一个拥有许多变量和绑定了这些变量的环境的表达式(通常是一个函数),因而这些变量也是该表达式的一部分。

其实每个函数都是闭包.
-----------------------------以下个人观点(^^如有不妥,请砸砖头)---------------
闭包其实是作用域链的一种表现而已^^.
当进入一个函数中时.会创建一个执行环境,其中包括一个调用对象,这个调用对象里包括当前函数里的变量(属性),方法.
函数进行执行里,会根据这个当前调用对象向上进行查找,顶部对象是window对象.
有个要注意:
|----------JavaScript的变量作用域是在定义时被确定而不是在被执行时--------|
看别人的Code例子吧
1.
var name = "The Window";
  var object = {
    name : "My Object",
    getNameFunc : function(){
      return function(){
        return this.name;
      };
    }

  };
 alert(object.getNameFunc()());

一个实例里包含了一个属性和一个方法,方法里又返回了一个方法,返回的这个方法里返回一个this引用对象的name属性;
执行的时候是object.getNameFunc()().先执行对象object的公用方法.
然后再执行公用方法里返回的那个匿名函数,这时的作用域会查找this.name.匿名函数里没有定义.找getNameFunc方法,getNameFunc方法里也没有,由于getNameFunc方法是公用方法,再向上查找就是window对象即全局变量.
|----------------------this是执行时的上下文对象--------------------------|

2.



运行后,发现点击都是5;
当badClosureExample函数执行后,badClosureExample里的click的匿名函数的i值已为5,可click事件并没有执行,而i相对click事件的匿名函数是外部变量;
所以解决的方法是让每个i成为click事件的私有属性
不管是

function badClosureExample(){
for (var i = 0; i <document.getElementsByTagName('a').length; i++) {
var element =document.getElementsByTagName('a');
element[i].i=i;
element[i] .onclick = function(){
alert(this.i);
};
}
}


还是

function badClosureExample(){
for (var i = 0; i <document.getElementsByTagName('a').length; i++) {
var element =document.getElementsByTagName('a');
element[i] .onclick = new cloS(i);
}
}

function cloS(i){
return function(){
alert(i);
};
}

其实都是为click的那个匿名函数创造一个作用域保存私有变量.防止它调用它的外部(或者说是父级里的属性);


|------------------------看看,都是作用域问题^^还得研究ing....-------------------------|]]>
http://www.striblog.com/?p=44#comment 188 Sat, 15 May 2010 17:14:45 +0800 http://www.striblog.com/?p=44
<![CDATA[定位中用absolute实现fix效果(支持IE6)]]> http://www.striblog.com/?p=40 先看一个demo:如下:



看到了么.像fix一样.定位到右下角.而且在IE6中无闪动.^ ^是不是很极品呀.
再看一个demo



CSS部分如下:
* { padding:0; margin:0; }
html, body { width:100%; height:100%; }
html { overflow:hidden; }
.html { overflow:scroll; overflow-x:hidden; width:100%; height:100%; background-color:#dcdcdc; }
.tool { position:absolute; left:0; width:100%; top:0; background-color:#85B148; color:#FFF; height:30px; }


不多说了.具体杂回事.我也不清楚.希望#三思哥#快快研究告诉小弟,^ ^.

]]>
http://www.striblog.com/?p=40#comment 592 Sun, 25 Apr 2010 01:16:26 +0800 http://www.striblog.com/?p=40
<![CDATA[JavaScript词汇表(Glossary)]]> http://www.striblog.com/?p=39 ASCII 字符集

美国标准信息交换编码 (ASCII) 的 7 位字符集,它被广泛地用来表示标准的美国键盘上的字母和符号。ASCII 字符集与 ANSI 字符集中的头 128 个字符 (0–127) 完全相同。

Automation 对象

通过 Automation 接口可以被其他应用程序或编程工具使用的对象。

按位比较

对两个数值表达式中相同位置上的位进行的逐位比较。

Boolean 表达式
一个值为 true 或者 false 的表达式。如果需要,非 Boolean 表达式也可以被转换为 Boolean 值,但是要遵循下列规则:

所有的对象都被当作 true。
当且仅当字符串为空时,该字符串被当作 false。
null 和 undefined 被当作 false。
当且仅当数字为零时,该数字被当作 false。


字符编码

用来表示一个集合,诸如 ASCII 字符集,中特定字符的数字。



对象的形式定义。类的作用就相当于一个模板,在运行时可以根据此模板来创建对象的一个实例。类定义对象的各种属性并且定义各种方法以便控制对象的操作。

注释

程序员向代码中添加的文本,用来说明代码是如何工作的。在 JScript 中,一行注释通常以 // 开头。如果要创建多行的注释,请使用 /* 和 */ 定界符。

比较运算符

表示两个或更多的表达式或值之间关系的字符或符号。这些运算符包括小于 (<)、小于或等于 (<=)、大于 (>)、大于或等于 (>=)、不等 (!=) 和等于 (==)。

复合语句

用大括号 ({}) 括起来的语句序列。复合语句可以被用来在需要使用单行语句的地方完成多项任务。

构造函数

一种 JScript 函数,具有两个特殊的性质:

由 new 运算符来调用此函数。
通过 this 关键字将新创建对象的地址传递到此函数。
请使用构造函数来初始化新的对象。


表达式

关键字、运算符、变量以及文字的组合,用来生成字符串、数字或对象。一个表达式可以完成计算、处理字符、调用函数、或者验证数据等操作。

固有对象

固有对象是作为标准 JScript 语言一部分的一种对象。所有的脚本都可以使用这种对象。JScript 中的固有对象包括 Array,Boolean,Date, Function,Global,Math,Number,Object,RegExp,Regular Expression,和 String。

本地时间

本地时间指的是脚本被执行的服务器或客户机上的时间。

区域设置

对应于给定语言或国家/地区的一系列信息。区域设置影响预定义编程术语所使用的语言并影响一些跟区域设置相关的设置。在下面两种情况下区域设置信息很重要:

代码区域设置影响术语,诸如关键字,所使用的语言并定义与区域设置相关的设置,诸如十进制分隔符和列表分隔符、日期格式、和字符排序的顺序等。
系统区域设置影响一些与区域设置相关的功能的执行方式,例如,显示数字或将字符串转换为日期等。可以在操作系统所提供的“控制面板”实用程序中调整系统“区域选项”的设置。

null

null 值指出一个变量中没有包含有效的数据。产生 null 的原因是:

对一个变量显式地赋值为 null。
包含 null 的表达式之间的任何操作。


数值表达式

数值表达式指的是任何值为数字的表达式。这种表达式的元素可以包括关键字、变量、文字和运算符的任意组合,只要此组合能够生成一个数字。在特定的情况下,如果可以的话,字符串也可以被转换为数字。

基本

一种数据类型,是 JScript 语言的一部分并通过值来进行操作。在 JScript 中,数字、Boolean、字符串和函数等数据类型都被看成 primitive。而对象和数组则不是基本数据类型。

属性

对象的一种命名的特性。属性定义了对象的一些特性,诸如大小、颜色和屏幕位置,或对象的状态,诸如可用的或禁止的。

运行时错误

代码运行过程中出现的错误。如果一条语句试图进行非法操作,那么就会导致一个运行时错误。

范围

定义一个变量、过程或对象的可见性。在函数中定义的变量仅在函数内部可见,在调用该函数时并不能保持其值。

字符串比较

两个字符序列之间的比较。除非在进行比较操作的函数中指出,所有的字符串比较操作都是二进制的。在英语中,二进制比较区分大小写;而文本比较则不区分。

字符串表达式

任何值为一个连续字符序列的表达式。一个字符串表达式的元素可以包括返回字符串的函数,字符串文字,String 对象,或者字符串变量。

未定义

在变量被创建之后和被赋给值之前分配给该变量的一个特殊值。

全球标准时间 (UTC)

全球标准时间指的是由世界时间标准设定的时间。原先也被称为格林威治标准时间或者 GMT。

用户定义对象

由用户在源代码中创建的对象。

变量

用于按名称来保存并操作值的位置。因为 JScript 的类型是自由的,在一个脚本过程中,单个变量可以保存不同的数据类型。

包装器

一种对象,被创建来为一些其他类型数据提供对象风格的接口。Number 和 Boolean 对象就是包装器对象的例子。
]]>
http://www.striblog.com/?p=39#comment 273 Sat, 10 Apr 2010 14:53:48 +0800 http://www.striblog.com/?p=39
<![CDATA[Object.prototype.toString]]> http://www.striblog.com/?p=38



toString 方法是所有内建的 JScript 对象的成员。它的操作依赖于对象的类型:

Array 将 Array 的元素转换为字符串。结果字符串由逗号分隔,且连接起来。
Boolean 如果 Boolean 值是 true,则返回 “true”。否则,返回 “false”。
Date 返回日期的文字表示法。
Error 返回一个包含相关错误消息的字符串。
Function 返回如下格式的字符串,其中 functionname 是被调用 toString 方法函数的名称:
function functionname( ) { [native code] }
Number 返回数字的文字表示。
String 返回 String 对象的值。
默认 返回 “[object objectname]”,其中 objectname 是对象类型的名称。

]]>
http://www.striblog.com/?p=38#comment 296 Tue, 30 Mar 2010 15:53:29 +0800 http://www.striblog.com/?p=38