zoukankan      html  css  js  c++  java
  • 转:前端页面a标签嵌套a标签效果的两种解决方案

     

     

    这是由工作中的一个小改动需求得到的这个解决方案的;那个需求是这样的,如图:

    需求原来是球队名字没有点击功能的,而蓝色方框两队之间的比赛点击的时候会跳转到比赛文字直播页面。现在需要要求点击球队名字要跳转到球队资料库页面。

    这样就会产生了a标签的嵌套。

    但是总所周知a标签是内联元素(inline element),如果嵌套a标签的话浏览器则会解析成:

    1 <!-- a标签进行嵌套的时候 -->
    2 <a href="#outer">outerA
    3     <a href="#inner">innerA</a>
    4 </a>
    5 
    6 <!-- 而浏览器则会解析成 -- >
    7 <a href="#outer">outerA</a>
    8 <a href="#inner">innerA</a>

    这样的话就不符合需求了。

    这里介绍的解决方案有两种:

    1.使用object标签进行嵌套

    <a href="#outer">
        outerA
        <object><a href="#inner">innerA</a></object>
    </a>

    这样页面就会解析成:

    这样在内层a标签加一层object标签嵌套,可以解决了a标签嵌套的问题了。这个办法在火狐和谷歌、IE9及以上是没问题的。但是IE8及以下就会有问题,因为IE8不支持object标签,它会将object解析成一个对象a标签的内容显示不出来。所以就有了下面的第二种方案。

    2.将外层a标签改为行内块级元素即display:inline-block;设置height/width并设置为绝对定位将其放在里层a标签的位置,通过调整里层a标签及外层a的z-index大小,使得鼠标能正确选中a标签;

    由于产品要求兼容到IE8,所以公司目前使用的是这种方案:

    这样通过改变外层a标签的display并调整position及z-index也可以达到a标签嵌套的效果,注意这里说的是效果而不是具体的解析就是嵌套的。

    更多情况下推荐第一种方式,这样浏览器解析的会更好。

    如果有更好的解决方案,欢迎大家一起交流学习。谢谢~

     原文:https://www.cnblogs.com/leungUwah/p/6234832.html

     
  • 相关阅读:
    hdu 5387 Clock (模拟)
    CodeForces 300B Coach (并查集)
    hdu 3342 Legal or Not(拓扑排序)
    hdu 3853 LOOPS(概率DP)
    hdu 3076 ssworld VS DDD(概率dp)
    csu 1120 病毒(LICS 最长公共上升子序列)
    csu 1110 RMQ with Shifts (线段树单点更新)
    poj 1458 Common Subsequence(最大公共子序列)
    poj 2456 Aggressive cows (二分)
    HDU 1869 六度分离(floyd)
  • 原文地址:https://www.cnblogs.com/feiyu159/p/8505485.html
Copyright © 2011-2022 走看看