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

     
  • 相关阅读:
    visualStudio 无法登陆
    Roslyn NameSyntax 的 ToString 和 ToFullString 的区别
    Roslyn NameSyntax 的 ToString 和 ToFullString 的区别
    C# Span 入门
    C# Span 入门
    win10 uwp 使用 asp dotnet core 做图床服务器客户端
    win10 uwp 使用 asp dotnet core 做图床服务器客户端
    求点集的外接矩形
    PHP link() 函数
    PHP is_writeable() 函数
  • 原文地址:https://www.cnblogs.com/feiyu159/p/8505485.html
Copyright © 2011-2022 走看看