zoukankan      html  css  js  c++  java
  • 用a标签模拟按钮,在IE下的active伪类问题(使用图片作为背景)

    案例:

    通过a标签模拟按钮,为了让按钮能自动适应文字大小的宽度,通常这样:

    <a href="javascript:void(0)" class="btn btn-1"><span>按钮</span></a>

    按钮截图:

     1 /* 设置样式 */
     2 
     3 .btn, .btn span{ display:inline-block; background:url(ico-btn-sprite.png) no-repeat;}
     4 .btn{ padding-left:10px;}
     5 .btn span{ padding-right:10px; vertical-align:top; }
     6 
     7 .btn-1{ background-position:left 0;}
     8 .btn-1 span{ background-position:right 0;}
     9 
    10 /* 移动上去的效果 */
    11 
    12 .btn-1:hover{ background-position:left -30px;}
    13 .btn-1 span{ background-position:right -30px;}
    14 
    15 /* 点击时候的效果 */
    16 
    17 .btn-1:active{ background-position:left -60px;}
    18 .btn-1:active span{ background-position:right -60px;}

    IEOpera下 点击a的padding-left部分会有active效果,点击span部分的时候就没有active效果。。。

    如图:

    解决方法:

    给a标签添加鼠标按下(onmousedown)和鼠标弹起(onmouseup)事件模拟active效果。

    <!-- js部分 -->
    <script src="jquery.js"></script>
    <script>
    $(function(){
        $(".btn-1").mousedown(function(){
            $(this).addClass("active");
        }).mouseup(function(){
            $(this).removeClass("active");
        })
    })
    </script> 
    <style>
    /* css部分... */
    .btn-1:active, a.active{background-position:left -60px;}
    .btn-1:active span, a.active span{ background-position:right -60px;}
    </style>   
  • 相关阅读:
    SELinux
    Horovod
    kubeflow
    k8s Custom Resource
    k8s Service
    k8s Deployment
    k8s ReplicaSet
    BytePS源码解析
    突破传统 OJ 瓶颈,“判题姬”接入云函数
    前端如何真正晋级成全栈:腾讯 Serverless 前端落地与实践
  • 原文地址:https://www.cnblogs.com/caijf/p/3003397.html
Copyright © 2011-2022 走看看