Reputation: 2018
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.
* {
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
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