>  기사  >  웹 프론트엔드  >  Google Chrome 브라우저 탭의 CSS 구현

Google Chrome 브라우저 탭의 CSS 구현

高洛峰
高洛峰원래의
2016-11-24 09:54:102574검색

Google 크롬 탭의 특별한 점은 활성화된 탭이 옆에 있는 비활성 탭의 일부를 '먹을' 수 있다는 것입니다. 이는 CSS에 몇 가지 문제를 야기합니다. 아래와 같이:

Google Chrome 브라우저 탭의 CSS 구현

물론 요구 사항은 두 개의 이미지만 사용할 수 있고 너비는 적응형입니다.

일반. 탭 배경: Google Chrome 브라우저 탭의 CSS 구현

탭 배경 활성화: 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>


성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.