网络编程
位置:首页>> 网络编程>> 网页设计>> [翻译]标记语言和样式手册 Chapter 7 锚点(4)

[翻译]标记语言和样式手册 Chapter 7 锚点(4)

作者:zhaozy 来源:3user.com 发布时间:2008-01-28 14:01:00 

标签:样式,标记,css,手册,锚点

方法D:合而为一

<p><a href="#oranges">About Oranges</a></p>
...一些文字...
<h2><a id="oranges" name="oranges">Oranges Are Tasty</a></h2>
...更多文字...

如果在标记锚点时,你希望达到向前兼容和向后兼容,那么你大概会喜欢这种方法.不管是古老的或是未来的浏览器都能正确的辨识具名锚点标签,但是由于W3C在XHTML1.0建议书中不推荐使用name属性(http://www.w3.org/TR/xhtml1/#C_8),因此你也用id属性支持未来的浏览器.

与方法B相同,我们必须留意对<a>标签造成影响的全局样式.

共享名称

如果你选择使用方法D的话,为id与name属性选用相同名称完全可以被接受(可能也十分便利),但是只在它们位于相同标签时才能这样.此外,也只有几个特定的标签允许这么做,精确来说,包含了<a>,<applet>,<frame>,<img>,<map>.因此,我们把id="oranges"从<h2>移到锚点标签之内.

现在我们已经看过了四种建立锚点的方法,让我们归纳一下每种方法的优劣.

归纳

虽然我觉得有两种方法略占优势(C和D),但是这一章里头大概没有明显的优胜者,每个方法都有用各自的优缺点,让我们回顾一下每种方法:

方法A:


  • 应该能在大多数浏览器上正常运作.

  • 内容空白,因此无法为标签提供结构,语义.

  • 需要额外的标签.

  • 由于XHTML1.0不推荐使用name属性,因此必须考虑向后兼容.

方法B:


  • 应该能在所有浏览器上正常运作.

  • 需要额外的标签.

  • 必须留意<a>的全局样式有可能会覆盖外层标签的样式.

  • 由于XHTML1.0不推荐使用name属性,因此必须考虑向后兼容性.

方法C:


  • 标签较少.

  • 可以使用已经具备的id属性.

  • 能够向后兼容.

  • 需要最近的浏览器才能正常运作.

方法D:


  • 同时具备向前兼容和向后兼容.

  • 必须留意<a>的全局样式有可能覆盖外层标签的样式设定.

  • 需要额外的标签.

  • 看来方法C与D是比较好的选择,具备向后兼容,较少的标签,与额外标签,完全兼容型形成对比,我的建议是考虑读者群,并且以此进行适当的决定.

举例来说,如果你正在构建一套需要最新浏览器才能使用的网络应用程序或是内部网站,那么方法C大概是最棒的选择.这个方法不需要额外的标签,但是已知某些4.X版本的浏览器无法正常处理这个方法.

如果你设计一个会被任何人,在任何时间浏览的网站,你或许会选择方法D,这个方法能够确保向前兼容以及向后兼容,但是必须背负锚点标签的些许包袱.

选择权在你,希望在看过每个方法后,能在适当时机选择适当的方法使用.

0
投稿

猜你喜欢

手机版 网络编程 asp之家 www.aspxhome.com