Dave
Dave

Reputation: 2018

Trapezoid tabs on menu

I am trying to achieve this navigation look, however I am having issues with css, doing this trapezoid tabs. How can I make the top corners rounded, and have one button under other button if it's not active? Can someone assist me please? Thanks.

enter image description here

* {
  margin: 0;
}

.settings {
  background: grey;
  background-position: center;
  background-size: cover;
  background-repeat: no-repeat;
  min-height: 100vh;
  display: flex;
  padding: 0px 20px;
  align-items: center;
  }
  
 .settings-form {
   width: 70%;
 }
 .settings-form-heading {
   display: flex;
   align-items: center;
 }
 .settings-form-heading > h2 {
   margin-right: auto;
 }
 
 .settings-nav {
   border-bottom: 100px solid red;
   border-left: 25px solid transparent;
   border-right: 25px solid transparent;
   border-radius: 4px;
   height: 0;
   width: 200px;
 }
 
 .content {
   background: white;
 }
<div class="settings">
<div class="settings-form">
<div class="settings-form-heading">
<h2>Title</h2>
<div class="settings-nav"></div>
<div class="settings-nav"></div>
<div class="settings-nav"></div>

</div>
<div class="content">

test
</div>
</div>

</div>

Upvotes: 1

Views: 189

Answers (1)

Alexandr
Alexandr

Reputation: 129

One of the options add rounding for trapezoid tabs:

use :before with border-radius for .settings-nav

* {
  margin: 0;
}

.settings {
  background: grey;
  background-position: center;
  background-size: cover;
  background-repeat: no-repeat;
  min-height: 100vh;
  display: flex;
  padding: 0px 20px;
  align-items: center;
  }
  
 .settings-form {
   width: 100%;
 }
 .settings-form-heading {
   display: flex;
   align-items: center;
 }
 .settings-form-heading > h2 {
   margin-right: auto;
 }
 
 .settings-nav {
    border-bottom: 70px solid red;
    border-left: 30px solid transparent;
    border-right: 30px solid transparent;
    height: 0;
    width: 150px;
    margin-top:10px;
    text-align:center;
    position:relative;
    
 }
.settings-nav:before {
    content: "";
    display:block;
    margin-top:-7px;
    height:30px;
    width:150px;
    border-radius:10px;
    background-color: red;
}
 .settings-nav_in{
  margin:auto;
  position:absolute;
  top:25px;
  left:0;
  right:0;
 }
 .settings-nav_1{
  z-index:2;
 }
 .settings-nav_2{
  margin-left:-30px;
  z-index:1;
  opacity:.5;
 }
 .settings-nav_2:hover{
  z-index:3;
  opacity:1;
 }
 .content {
   background: white;
 }
<div class="settings">
<div class="settings-form">
<div class="settings-form-heading">
<h2>Title</h2>
<div class="settings-nav settings-nav_1"><div class="settings-nav_in">1</div></div>
<div class="settings-nav settings-nav_2"><div class="settings-nav_in">2</div></div>


</div>
<div class="content">

test
</div>
</div>

</div>

to switch use js or checkbox

Upvotes: 1

Related Questions