google chrome瀏覽器頁簽的css實現

來源:互聯網
上載者:User
Google Chrome瀏覽器的頁簽比較特別的是啟用頁簽能“吃”掉旁邊非啟用頁簽的一部分。這對css提出了一些挑戰。如:

當然,要求是只能使用兩張圖,寬度自適應,用到的圖:

正常頁簽背景:

啟用頁簽背景:

代碼:

<!DOCTYPE HTML><head>    <title>google chrome tab</title>    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /><style type="text/css">    /*simple reset*/    *{padding:0px;margin:0px;}    /*clearfix*/    .clearfix:after {content: ".";display: block;height: 0;clear: both;visibility: hidden;}    .clearfix {display: inline-block;}  /* for IE/Mac */        #tab { font-size:12px;margin-left:40px;_margin-left:60px;}/*由於li有margin-left:-15px;所以tab的margin-left>15px;*/    /*margin-left:-15px; 讓當前元素“縮排”到前一個元素的右側*/    #tab  li{float:left; display:block; height:26px;position:relative;margin-left:-15px;_margin-left:-30px;z-index:1;}    #tab  li a{color:#000; text-decoration:none; display:block;_float:left;_position:relative;_left:15px; height:26px;padding-left:30px;padding-right:15px; line-height:26px;margin-right:15px; background:url(normal.gif) no-repeat left top;}    /*i置於右邊*/    #tab li i{position:absolute; right:0px;top:0px; width:15px;height:26px; z-index:3;background:url(normal.gif) no-repeat right top;}    /*當前啟用的li在非啟用之上(z-index)*/    #tab  .active{z-index:2;top:1px; }    #tab  .active a{background:url(active.gif) no-repeat left top; }    #tab  .active i{background:url(active.gif) no-repeat -197px top;}    .content{clear:both;border:solid 1px #bcc5d1;}</style></head><body><ul id="tab">    <li><a href="http://www.php1.cn/">    <li class="active"><a href="http://www.php1.cn/">    <li><a href="http://www.php1.cn/"></ul><div id="" class="content">    content</div><script type="text/javascript">    //添加事件     var addHandler = window.addEventListener?    function(elem,event,handler){elem.addEventListener(event,handler,false);}:    function(elem,event,handler){elem.attachEvent("on"+event,handler);};    //實現.active切換    addHandler(window,"load",function(){        var arrLi = document.getElementById("tab").getElementsByTagName("li");        for (var i=0,l=arrLi.length;i<l ;i++ ){            (function(index){                addHandler(arrLi[index],"click",function(e){                    var evt = (window.event||e),cur=evt.target||evt.srcElement;                                        for (var j=0,jl=arrLi.length;j<jl ;j++ ){                        arrLi[j].className="";                    }                    ((cur.tagName.toLowerCase()=="a")?cur.parentNode:cur).className="active";                    try{cur.blur();cur.parentNode.blur();}catch(e){}                });            })(i);        }    });</script></body></html>
  • 相關文章

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.