在实际网页布局之中,我们有时候需要一整块点击区域中间还要有部分按钮点击,也就是需要a标签嵌套a标签,如下:

<!-- a标签进行嵌套的时候 --><a href="#haorooms">outerA    <a href="#haoroomsinner">innerA</a></a>

但是我们会发现,这种嵌套,浏览器会直接错误解析,解析结果如下:

<!-- 而浏览器则会解析成 -- >
<a href="#haorooms">outerA</a>
<a href="#haoroomsinner">innerA</a>

那么针对这种情况如何解决呢?

方案一:使用object标签进行嵌套

<a href="#haorooms">
outerA <object><a href="#haoroomsinner">innerA</a></object></a>

这种写法的典型应用最多的是列表整个需要点击,列表里面有电话号码需要单独点击拨打!

<a class="haorooms_list" href="跳转页面">
列表内容 <object><a href="tel:694434565">拨打电话</a></object></a>

方案二:使用定位方式

这种方式是迫不得已的方式,思路就是我们不用嵌套。直接代码如下书写:

<a href="#haorooms">outerA</a><a href="#haoroomsinner">innerA</a>

外层的haorooms通过设置display:inline-block,以及绝对定位,将其放在里层a标签的位置。然后通过调整里层a标签及外层a的z-index大小,使得鼠标能正确选中a标签;

这种方法的核心思想就是通过定位来模拟实现我们想要达到的效果!

方案三:使用 HTML的 < area>< map>标签来实现

记得在学校学校网页制作的时候,用的是dreamweaver,dreamweaver中可以使用图片热区来实现图片的点击效果。没错,我们可以使用热区来实现a标签的嵌套效果啊!

area标签很久没有使用了,普及一下基础知识:

area可以指定shape及coords。

如果 shape 属性设置为 "rect",则该值规定矩形左上角和右下角的坐标。(x1,y1,x2,y2)

如果 shape 属性设置为 "circ",则该值规定圆心的坐标和半径。(x,y,radius)

如果 shape 属性设置为 "poly",则该值规定多边形各顶点的值。如果第一个坐标和最后一个坐标不一致,那么为了关闭多边形,浏览器必须添加最后一对坐标。(x1,y1,x2,y2,..,xn,yn)

area和map要配合使用,可以在图片上面指定部分热区,也可以在列表中指定热区。

假如我们运用area和map在列表中a标签内部指定热区,就可以实现类似我们上面a标签嵌套的效果了!

还是上面的例子,我们可以如下书写:

 <a href="#haorooms">
outerA <map>
<area shape="rect" coords="0,0,200,21" href="haoroomsinner" >
</map>
</a>

方案四:使用span等标签加js事件来代替a标签

当然我们也可以用span,标签等替代a标签,只不过要多写一些js跳转代码了,通过js来实现a标签所能实现的效果!

a标签嵌套解决方案的更多相关文章

  1. 转:前端页面a标签嵌套a标签效果的两种解决方案

      这是由工作中的一个小改动需求得到的这个解决方案的:那个需求是这样的,如图: 需求原来是球队名字没有点击功能的,而蓝色方框两队之间的比赛点击的时候会跳转到比赛文字直播页面.现在需要要求点击球队名字要 ...

  2. 前端页面a标签嵌套a标签效果的两种解决方案

    这是由工作中的一个小改动需求得到的这个解决方案的:那个需求是这样的,如图: 需求原来是球队名字没有点击功能的,而蓝色方框两队之间的比赛点击的时候会跳转到比赛文字直播页面.现在需要要求点击球队名字要跳转 ...

  3. a标签嵌套a标签效果的两种解决方案

    <!-- a标签进行嵌套的时候 --> <a href="#outer">outerA <a href="#inner">i ...

  4. HTML5标签嵌套规则

    × 目录 [1]分类 [2]子元素 [3]总结 前面的话 在html5中,<a>元素的子元素可以是块级元素,这在以前是被认为不符合规则的.本文将详细介绍html5的标签嵌套规则 分类 ht ...

  5. Freemarker的初次使用之FTL标签嵌套与map的使用

    入职第二周了,在熟悉了公司自动化测试脚本的编写(使用什么数据库,使用哪种语言,框架带了哪些方法)后,现在开始熟悉模拟器,我们把请求发到服务器1,服务器1根据请求参数处理后将结果发给模拟器,模拟器根据服 ...

  6. IE浏览器下a标签嵌套img标签默认带有边框

    最近写在线主页时发现IE浏览器下a标签嵌套img标签默认带有边框: 解决办法:img{border:0 none;} 注意,严格意义上0和none都要加上!

  7. riot.js教程【五】标签嵌套、命名元素、事件、标签条件

    前文回顾 riot.js教程[四]Mixins.HTML内嵌表达式 riot.js教程[三]访问DOM元素.使用jquery.mount输入参数.riotjs标签的生命周期: riot.js教程[二] ...

  8. nodejs批量导入数据eventproxy(回调函数嵌套解决方案)使用实例

    回调函数嵌套解决方案——eventProxy API地址:https://github.com/JacksonTian/eventproxy 1.安装eventproxy 执行npm install ...

  9. web@HTML常用标签分类,标签嵌套规则

    一.html标签又叫做html元素,它分为块级元素和内联元素(也可以叫做行内元素),都是html规范中的概念.1.块级元素块级元素是指本身属性为display:block;的元素.因为它自身的特点,我 ...

随机推荐

  1. JavaScript正则表达式实例汇总

    本文会持续更新 -------------------------------------------------------------------------------------------- ...

  2. substance在java swing中使用注意事项

    package org.dgw.uidemo; import java.awt.EventQueue; import javax.swing.JFrame; import javax.swing.UI ...

  3. 【NOIP2015提高组】 Day1 T3 斗地主

    [题目描述] 牛牛最近迷上了一种叫斗地主的扑克游戏.斗地主是一种使用黑桃.红心.梅花.方片的A到K加上大小王的共54张牌来进行的扑克牌游戏.在斗地主中,牌的大小关系根据牌的数码表示如下:3<4& ...

  4. 深入理解 Linux 的 RCU 机制

    欢迎大家前往腾讯云社区,获取更多腾讯海量技术实践干货哦~ 作者:梁康 RCU(Read-Copy Update),是 Linux 中比较重要的一种同步机制.顾名思义就是"读,拷贝更新&quo ...

  5. oracle赋值问题(将同一表中某一字段赋值给另外一个字段的语句)

    将同一表中某一字段赋值给另外一个字段的语句update jxc_ckmx ckmx1 set ckmx1.ddsl = (select ckmx2.sl from jxc_ckmx ckmx2 whe ...

  6. C#中的异常处理(try-catch的使用)——使程序更加稳定

    使用try-catch来对代码中容易出现异常的语句进行异常捕获. try { 可能出现异常的代码: } catch { 出现异常后需要执行的代码: } 注:1.在执行过程中,如果try中的代码没有出现 ...

  7. Oracle结合Mybatis实现取表中前10条数据

    之前一直使用mysql和informix数据库,查表中前10条数据十分简单: 最原始版本: select top * from student 当然,我们还可以写的复杂一点,比如外加一些查询条件? 比 ...

  8. 【JAVA零基础入门系列】Day12 Java类的简单应用

    俗话说的好,实践出真知,所以除了理论知识掌握扎实以外,更重要的是要多加操练,这样才能掌握核心科技. 今天我们就用刚学会的类来实践一下,目标便是完成上一篇中的剁手任务. 我们的商品类已经准备好了,代码重 ...

  9. linux学习(八)chmod、chown、umask、lsattr、chattr

    一.权限位 权限位分为两个部分,第一个部分是谁的权限,第二部分是权限是多少.其中第一个部分一般分为:用户,用户组,其他用户.第二部分分为r:读权限,w:写权限,x:执行权限.可读,可写,可执行的权限, ...

  10. Catch him

    Problem Description 在美式足球中,四分卫负责指挥整只球队的进攻战术和跑位,以及给接球员传球的任务.四分卫是一只球队进攻组最重要的球员,而且一般身体都相对比较弱小,所以通常球队会安排 ...