Check out example codes for "tabs css only". It will help you in understanding the concepts better.

Code Example 1

input + label {             /* box with rounded corner */  border: 1px solid #999;  background: #EEE;  padding: 4px 12px;  border-radius: 4px 4px 0 0;  position: relative;  top: 1px;}input:checked + label {     /* white background for selected tab */  background: #FFF;  border-bottom: 1px solid transparent;}input ~ .tab {          /* grey line between tab and contents */  border-top: 1px solid #999;  padding: 12px;}

Code Example 2

.panel {
  display: none;
  padding: 20px 30px 30px;
  background: #fff;
}

@media (min-width: 600px) {
  .panel {
    order: 99;
  }
}

.input:checked + .label + .panel {
  display: block;
}

Code Example 3

<div class="tab content1">Tab1 Contents</div><div class="tab content2">Tab2 Contents</div><div class="tab content3">Tab3 Contents</div><div class="tab content4">Tab4 Contents</div><div class="tab content5">Tab5 Contents</div>

Code Example 4

* {
  box-sizing: border-box;
}

body {
  padding: 10px;
  background: #f2f2f2;
}

Code Example 5

.label {
  width: 100%;
  padding: 20px 30px;
  background: #e5e5e5;
  cursor: pointer;
  font-weight: bold;
  font-size: 18px;
  color: #7f7f7f;
  transition: background 0.1s, color 0.1s;
}

.label:hover {
  background: #d8d8d8;
}

.label:active {
  background: #ccc;
}

.input:focus + .label {
  box-shadow: inset 0px 0px 0px 3px #2aa1c0;
  z-index: 1;
}

.input:checked + .label {
  background: #fff;
  color: #000;
}

@media (min-width: 600px) {
  .label {
    width: auto;
  }
}

Code Example 6

input { display: none; }                /* hide radio buttons */input + label { display: inline-block } /* show labels in line */input ~ .tab { display: none }          /* hide contents *//* show contents only for selected tab */#tab1:checked ~ .tab.content1,#tab2:checked ~ .tab.content2,#tab3:checked ~ .tab.content3,#tab4:checked ~ .tab.content4,#tab5:checked ~ .tab.content5 { display: block; }

Code Example 7

<div class="tabs">
  <input name="tabs" type="radio" id="tab-1" checked="checked" class="input"/>
  <label for="tab-1" class="label">Orange</label>
  <div class="panel">
    <h1>Orange</h1>
    <p>The orange (specifically, the sweet orange) is the fruit of the citrus species Citrus × sinensis in the family Rutaceae</p>
    <p>The fruit of the Citrus × sinensis is considered a sweet orange, whereas the fruit of the Citrus × aurantium is considered a bitter orange. The sweet orange reproduces asexually (apomixis through nucellar embryony); varieties of sweet orange arise through mutations.</p>
  </div>

  <input name="tabs" type="radio" id="tab-2" class="input"/>
  <label for="tab-2" class="label">Tangerine</label>
  <div class="panel">
    <h1>Tangerine</h1>
    <p>The tangerine (Citrus tangerina) is an orange-colored citrus fruit that is closely related to, or possibly a type of, mandarin orange (Citrus reticulata).</p>
    <p>The name was first used for fruit coming from Tangier, Morocco, described as a mandarin variety. Under the Tanaka classification system, Citrus tangerina is considered a separate species.</p>
  </div>

  <input name="tabs" type="radio" id="tab-3" class="input"/>
  <label for="tab-3" class="label">Clemantine</label>
  <div class="panel">
    <h1>Clemantine</h1>
    <p>A clementine (Citrus ×clementina) is a hybrid between a mandarin orange and a sweet orange, so named in 1902. The exterior is a deep orange colour with a smooth, glossy appearance. Clementines can be separated into 7 to 14 segments. Similarly to tangerines, they tend to be easy to peel.</p>
  </div>
</div>

Code Example 8

.tabs {
  display: flex;
  flex-wrap: wrap;
  max-width: 700px;
  background: #efefef;
  box-shadow: 0 48px 80px -32px rgba(0,0,0,0.3);
}

Code Example 9

.input {
  position: absolute;
  opacity: 0;
}

Learn ReactJs, React Native from akashmittal.com