<a>不支持嵌套。例如:

<a href="#1">11111111111<a href="#2">22222222222</a></a>

浏览器会将其解析为相邻兄弟关系,而不是父子关系。

所以,如果我们有链接嵌套的需求,就可以试试使用<area>元素。

对于传统嵌套链接一般方法有:

1.改变视觉DOM结构和顺序,使链接内容变成相邻关系,再通过CSS重新布局定位。

2.使用JS,点击目标区域preventDefault阻止默认事件,然后再location.href跳转之类

实际上,还有一种更好的做法,就是<a>元素中嵌套<area>元素,可以保证DOM结构符合视觉呈现,又无需JS辅助。

eg.

<a href="......" class="book-layout" target="_blank">
<img src="book.jpg" class="book-cover" alt="area" usemap="#bookCover">
<map id="bookCover" name="bookCover">
<area shape="rect" coords="0,0,200,21" href="/book/1003477570" alt="area" target="_blank">
</map>
</a>
通过<a>元素中嵌套<map>和<area>对于图片类的链接可完美使用,
如果是文字类的链接由于考虑到Firefox浏览器不支持(Firefox的<area>元素默认display:none,且无法重置,同时ie8及以下不支持,
可以使用透明图片覆盖 然后使用<area>。
如果无需考虑firefox等兼容性,可直接使用 position:absolute实现,使用<area>元素覆盖的方法还有一些局限:无法使用键盘Tab索引访问,如果没有外面的<a>元素是可以的,有了之后,这种取巧的做法就不行了
<h4 class="book-title">
<area class="area" href="....." target="_blank">
area
</h4>
.book-title {
position:relative;
}
.book-title > .area {
position: absolute;
left: 0; top: 0;
width: 100%; height: 100%;
}
具体更多内容可访问原创作者http://www.zhangxinxu.com/wordpress/2017/05/html-area-map/

最新文章

  1. windows下使用pip安装python的第三方lxml库
  2. IE8下调用Active控件
  3. 第一课 python的几种环境配置
  4. YOLO: Real-Time Object Detection 安装和测试
  5. Android之activity中新建控件
  6. Python学习日记
  7. Loadrunner基础:Loadrunner Controller基本概念和使用
  8. 树上的DP
  9. 分享一个圆角自定义的漂亮AlertDialog
  10. -_-#【video】
  11. JUnit使用Eclipse建立Test Suite - 就是爱Java
  12. WINFORM中几句程序获取整个屏幕的图片及当前窗口的图片快照
  13. 微信小程序开发基础知识总结
  14. [洛谷P3383][模板]线性筛素数-欧拉筛法
  15. Windows -- cmd命令: netstat 和 arp
  16. JVM垃圾回收器
  17. 617. Merge Two Binary Trees
  18. SaltStack 和 Ansible 的简单比较
  19. 部署基于Maven的war文件到Tomcat
  20. 添加mysamba

热门文章

  1. HttpServletResponse response详解
  2. [spring]xml配置文件中bean属性的两种写法(p:configLocation &lt;=&gt; &lt;property name=&quot;configLocation&quot;/&gt;)
  3. Django框架数据库模型
  4. sqlserver存储过程杀掉数据库中死锁
  5. 【原创】Centos 7利用软件Raid搭建ISCSI过程
  6. 搞懂分布式技术11:分布式session解决方案与一致性hash
  7. poj-3046-dp
  8. nyi63——树
  9. 利用PXE引导安装centos7
  10. CF 913 A