Is there a way to create a chrome-like tab using CSS?

后端 未结 8 712
北海茫月
北海茫月 2020-12-05 14:59

I have been looking for a Google Chrome-like tab written using CSS but cannot find one.

I am trying to replicate the look in order to use it in a web application or

8条回答
  •  自闭症患者
    2020-12-05 15:22

    yeah its possible, with css3

    Ive posted a blog about how to its a lil depthy, and sadly enouth not going to work on ie unless you use images

    Edit:

    Removed old reference to redeyeoperations cause its a link farm now. This is a bit lighter version also it is up on a 3rd party site, so its less likely to be down.

    http://codepen.io/jacoblwe20/pen/DxAJF

    Here is the code

    HTML

    
    

    CSS

    body{
      background : #efefef;
      font : .8em sans-serif;
      margin: 0;
    }
    
    .tab-container{
      background : #2BA6CB;
      margin: 0;
      padding: 0;
      max-height: 35px;
    }
    
    ul.tabs{
      margin: 0;
      list-style-type : none;
      line-height : 35px;
      max-height: 35px;
      overflow: hidden;
      display: inline-block;
      padding-right: 20px
    }
    
    ul.tabs > li.active{
      z-index: 2;
      background: #efefef;
    }
    
    ul.tabs > li.active:before{
      border-color : transparent #efefef transparent transparent;
    }
    
    
    ul.tabs > li.active:after{
      border-color : transparent transparent transparent #efefef;
    }
    
    ul.tabs > li{
      float : right;
      margin : 5px -10px 0;
      border-top-right-radius: 25px 170px;
      border-top-left-radius: 20px 90px;
      padding : 0 30px 0 25px;
      height: 170px;
      background: #ffffd;
      position : relative;
      box-shadow: 0 10px 20px rgba(0,0,0,.5);
      max-width : 200px;
    }
    
    ul.tabs > li > a{
      display: inline-block;
      max-width:100%;
      overflow: hidden;
      text-overflow: ellipsis;
      text-decoration: none;
      color: #222;
    }
    
    ul.tabs > li:before, ul.tabs > li:after{
      content : '';
      background : transparent;
      height: 20px;
      width: 20px;
      border-radius: 100%;
      border-width: 10px;
      top: 0px;
      border-style : solid;
      position : absolute;
    }
    
    ul.tabs > li:before{
      border-color : transparent #ffffd transparent transparent;
      -webkit-transform : rotate(48deg);
      -moz-transform : rotate(48deg);
      -ms-transform : rotate(48deg);
      -o-transform : rotate(48deg);
      transform : rotate(48deg);
      left: -23px;
    }
    
    ul.tabs > li:after{
      border-color : transparent transparent transparent #ffffd;
      -webkit-transform : rotate(-48deg);
      -moz-transform : rotate(-48deg);
      -ms-transform : rotate(-48deg);
      -o-transform : rotate(-48deg);
      transform : rotate(-48deg);
      right: -17px;
    }
    
    /* Clear Fix took for HTML 5 Boilerlate*/
    
    .clearfix:before, .clearfix:after { content: ""; display: table; }
    .clearfix:after { clear: both; }
    .clearfix { zoom: 1; }
    

    JS for tab switching ~ include jquery to get working or visit the codepen

    var tabs = $('.tabs > li');
    
    tabs.on("click", function(){
      tabs.removeClass('active');
      $(this).addClass('active');
    });
    

提交回复
热议问题