zoukankan      html  css  js  c++  java
  • HTML5中a标签的锚点使用

    前几天有个用户问我关于在线手册功能里的锚点问题。因为他通过代码发现,在编辑手册内容时,锚点的设置是通过id选择器来制定的,而不是带有name属性的a标签。其实这是HTML5和HTML4(XHTML)等之前版本之间的一个差异,也可以说是一个升级改进。本文我们一起来分享学习下HTML5中是如何实现锚点链接的以及与HTML4相比,做了哪些改进和优势。

    HTML4锚点链接实现示例:



    <body>
      <a href="#d3">我在找OA系统</a><br/>
      <a name="d1">禅道项目管理软件</a>
      <br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/>
      <a name="d2">蝉知企业门户系统</a>
      <br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/>
      <a name="d3">然之协同办公系统</a>
      <br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/>
    </body>


    在之前HTML版本中,a标签通name属性实现锚点的定位,再通过href属性指向具体锚点。注意,这里name属性只是针对a标签,其他标签不可随意添加name属性,而且其余诸如表单之类的name属性的意义作用是不同的。所以a标签的锚点链接有局限性,如果你想吧在其他元素中设置锚点,需要在其他标签中添加一层带有name属性的a标签。比如上面的示例中,把a标签改为h3。



    <body>
      <a href="#d3">我在找OA系统</a><br/>
      <h3><a name="d1">禅道项目管理软件</a></h3>
      <br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/>
      <h3><a name="d2">蝉知企业门户系统</a></h3>
      <br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/>
      <h3><a name="d3">然之协同办公系统</a></h3>
      <br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/>
    </body>


    可见如此操作,影响代码美观,略显繁琐。


    HTML5锚点链接的实现示例

    相比HTML4,HTML5做了很大的改进,摒弃之前a标签嵌套的繁琐,而是废除了name属性,改用id来定位锚点。就如同CSS,Jquery中的ID选择器定位页面DOM元素一样,通过ID快速跳转到指定锚点位置。同样的示例:


    <body>
      <a href="#d3">我在找OA系统</a><br/>
      <a id="d1">禅道项目管理软件</a>
      <br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/>
      <a id="d2">蝉知企业门户系统</a>
      <br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/>
      <a id="d3">然之协同办公系统</a>
      <br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/>
    </body>


    HTML5这样修改最大的好处就是方便用户跳转任意元素,因为每个元素都可以设置ID属性,而无需再去嵌套a标签。也就是说,HTML5中所有设有id属性的标签元素都可直接当作锚点。使用选择器定位,这样也很符合前端人员书写CSS,Jquery的习惯。而且各大主流搜索引擎都已兼容该功能。


    现在再回过头来看用户提问的关于蝉知系统手册功能里锚点问题,就迎刃而解了。本文我们一起分享了HTML5中是如何实现锚点链接的,如果大家在平时网站开发运营过程中遇到其他问题,欢迎一起分享交流,我们共同学习,共同进步。

  • 相关阅读:
    Memcached 分布式缓存系统部署与调试
    nginx_笔记分享_php-fpm详解
    nginx_笔记分享_配置篇
    linux定时任务crond那些事!
    命令passwd报错因inode节点处理记录
    linux下定时任务
    linux内核堆栈
    c语言之单链表的创建及排序
    c语言常见的几种排序方法总结
    Tiny4412之外部中断
  • 原文地址:https://www.cnblogs.com/chanzhi/p/7198991.html
Copyright © 2011-2022 走看看