-------------- Web 标准开发,指的是 XHTML 1.0 中的定义 -------------- 开始标签:必需,结束标签:必需 属性定义: name = cdata [区分大小写] 该属性命名当前锚,这样就可以被其它链接传递。该属性值必须是唯一的锚名。该名称仅在当前文档中有效。注意,该属性和 id 属性共享命名空间。 href = uri [CT] 该属性指定 Web 资源的位置,因此在当前元素(源锚点)和通过该属性定义的目的锚点之间定义了一个链接。 hreflang = langcode [不区分大小写] 该属性指定了通过 href 指派的资源的基本语言,并且仅在 href 被指定的情况下使用(也就是说如果 A 中没有指定 href 属性,就不应该出现 hreflang 属性)。 type = content-type [不区分大小写] 该属性指定链接资源所采用的内容类型。例如网页通常为 text/html。 rel = link-types [不区分大小写] 该属性描述了从当前文档到通过 href 属性定义的锚点之间的关系。该属性值是通过空格分隔的 link 类型(值)的列表(在 Web 标准开发中,这个通常用来代替 target 属性,配合脚本,用来表示目的窗口)。 rev = link-types [不区分大小写] 该属性用来描述从通过 href 属性指定的锚点到当前文档的反向链接。该属性值是通过空格分隔的 link 类型(值)的列表。 charset = charset [不区分大小写] 该属性指定了通过链接指派的资源的字符编码。 其它属性: * id, class (document-wide identifiers) * lang (语言信息), dir (文本方向) * title (元素标题) * style (行间样式信息) * shape and coords (图像地图) * onfocus, onblur, onclick, ondblclick, onmousedown, onmouseup, onmouseover, onmousemove, onmouseout, onkeypress, onkeydown, onkeyup (内置/默认行为) * target (目标框架信息)[注意,Web 标准开发中,已经不采用该属性] * tabindex (选中的导航) * accesskey (快捷键) 定义锚点: 在我们实际应用中,定义了 name 属性的,我们通常称之为锚点,定义了 href 属性的,我们称之为链接。锚点,可以看作是定义了一个被访问的点,而链接,则是通往某个点的出发点。当然,也可以同时定义 href 和 name 属性。 href 属性的使用我们一般都很熟悉,对于 name 属性的使用,例如: <a name="anchor0"></a> <a name="anchor1">anchor one</a> 定义锚点,默认情况下并不会在 anchor one 上产生“链接样式”,诸如下划线和颜色等。 如果要访问当前文档的某个部分,可以通过下面的链接: <a href="#anchor1">anchor one</a> 这样就产生了一个链接,点击,会跳转到 <a name="anchor1">anchor one</a> 锚点定义的文档部分,并且该锚点位于窗口当前位置最顶端。 如果要访问其它文档中的锚点,有绝对链接和相对链接两种方式: <a href="http://www.chinahtml.com/index.html#anchor0">anchor 0</a> 绝对链接 <a href="index.html#anchor0">anchor 0</a> 相对链接 使用方式和路径访问差不多,我们其实可以看作是先访问了对应的 index.html 页面,然后跳转到 anchor0 锚点所在的位置。 一定要注意的是访问锚点的格式,在锚点名称前面加上 #,但是定义锚点的时候,name 属性中并不需要使用 # 。 注意,name 属性是大小写敏感的,也就是说 xxx 和 XXX 是不同的锚点名称,这个在不同的浏览器下可能会有不同的处理效果,所以实际进行 Web 开发的时候,最好统一大小写。在 Web 标准开发中,所有的属性值都必须采用小写。 通过 a 定义的链接和锚点,是不允许嵌套的。 使用 id 属性定义锚点: 任何使用 id 属性的元素,都可以看作是一个锚点,可以通过链接访问。例如: <h2 id="headling">Headling</h2> ... <a href="#headling">Headling</a> 当然,这个也适合 A 元素,例如 <a id="headling"></a>。 但是必须注意的是,id 和 name 属性使用相同的命名空间,所以同一个页面中不能出现两个相同名称的锚点,例如在某个元素中使用 id 属性定义了一个锚点 abc ,在另一个元素 A 中又通过 name 属性定义了一个锚点 abc ,这样是不允许的。但是对于 A、APPLET、FORM、FRAME、IFRAME、IMG、和 MAP等元素,可以同时使用相同的 id 和 name 值来作为唯一标识,不过一旦是用了这两个属性,就应该保持一致。例如: <p><a name="a1" id="a1" href="#a1">...</a></p> 关于样式: 我们一般通过 CSS 中的伪类来定义链接样式,大家应该熟记一个规则——“LoveHate”,所谓的“爱恨”规则,即定义四个伪类的顺序应该是: a:link (L) a:visited (V) a:hover (H) a:active (A) 当您抱怨定义的链接颜色不对的时候,检查一下这个顺序是否正确。 关于标准: 在 Web 标准开发中,注意 A 元素必需位于 P、h1、h2、h3、h4、h5、h6、DIV、PRE、ADDRESS、FIELDSET、INS、DEL等元素中。这个是常见的错误之一。 校验信息如下: 定义了 target 属性 解决方法请参考:http://bbs.chinahtml.com/t10337.html 下面是通过 XHTML 1.0 Strict 的代码片断: HTML: <p><a name="abc" href="http://www.w3.org/" hreflang="en" type="text/html" rel="foo" rev="foo" charset="iso-8859-1" id="abc" class="mylink" lang="en" dir="ltr" title="my link" style="color: red;" onfocus="this.select();" onblur="this.style.color='green';" onclick="alert('Click');" ondblclick="alert('Double click');" onmousedown="alert('Mouse down');" onmouseup="alert('Mouse down');" onmouseover="alert('Mouse over');" onmousemove="alert('Mouse move');" onmouseout="alert('Mouse out');" onkeypress="alert('Key press');" onkeydown="alert('Key down');" onkeyup="alert('Key up');" tabindex="1" accesskey="k">my link</a></p> ========================================= 作者:不学无术(http://www.purewhite.cn) 创建时间:2006-01-04 10:40