<div class="container">
  
  <div class="segmented-control" style="width: 100%; color: #5FBAAC">
    <input type="radio" name="sc-1-1" id="sc-1-1-1">
    <input type="radio" name="sc-1-1" id="sc-1-1-2">
    <input type="radio" name="sc-1-1" id="sc-1-1-3" checked>
    <input type="radio" name="sc-1-1" id="sc-1-1-4">

    <label for="sc-1-1-1" data-value="Lorem Ipsum">Lorem Ipsum</label>
    <label for="sc-1-1-2" data-value="Risus Purus">Risus Purus</label>
    <label for="sc-1-1-3" data-value="Pellentesque Porta">Pellentesque Porta</label>
    <label for="sc-1-1-4" data-value="Fringilla">Fringilla</label>
  </div>

  <div class="segmented-control" style="width: 100%; color: #f7ae40">
    <input type="radio" name="sc-1-2" id="sc-1-2-1">
    <input type="radio" name="sc-1-2" id="sc-1-2-2" checked>
    <input type="radio" name="sc-1-2" id="sc-1-2-3">
    <input type="radio" name="sc-1-2" id="sc-1-2-4">

    <label for="sc-1-2-1" data-value="Euismod Quam">Euismod Quam</label>
    <label for="sc-1-2-2" data-value="Vehicula Ullamcorper">Vehicula Ullamcorper</label>
    <label for="sc-1-2-3" data-value="Ornare Consectetur">Ornare Consectetur</label>
    <label for="sc-1-2-4" data-value="Inceptos">Inceptos</label>
  </div>

  <div class="segmented-control" style="width: 100%; color: #E35354">
    <input type="radio" name="sc-1-3" id="sc-1-3-1" checked>
    <input type="radio" name="sc-1-3" id="sc-1-3-2">
    <input type="radio" name="sc-1-3" id="sc-1-3-3">
    <input type="radio" name="sc-1-3" id="sc-1-3-4">

    <label for="sc-1-3-1" data-value="Lorem Ipsum">Lorem Ipsum</label>
    <label for="sc-1-3-2" data-value="Cras justo">Cras justo</label>
    <label for="sc-1-3-3" data-value="Tellus Etiam">Tellus Etiam</label>
    <label for="sc-1-3-4" data-value="Lorem Pellentesque">Lorem Pellentesque</label>
  </div>

  <div class="segmented-control" style="width: 100%; color: #8D74C0">
    <input type="radio" name="sc-1-4" id="sc-1-4-1">
    <input type="radio" name="sc-1-4" id="sc-1-4-2">
    <input type="radio" name="sc-1-4" id="sc-1-4-3">
    <input type="radio" name="sc-1-4" id="sc-1-4-4" checked>

    <label for="sc-1-4-1" data-value="Bibendum Ornare">Bibendum Ornare</label>
    <label for="sc-1-4-2" data-value="Sem">Sem</label>
    <label for="sc-1-4-3" data-value="Magna Fusce">Magna Fusce</label>
    <label for="sc-1-4-4" data-value="Etiam Dolor">Etiam Dolor</label>
  </div>
  
  <p>More examples</p>
  
  <p><a href="http://code.fstgerm.com/pure-css-segmented-controls" traget="_blank">http://code.fstgerm.com/pure-css-segmented-controls</a></p>

</div>
@import "compass/css3";

$control-count: 4;
$transition-timing-function: cubic-bezier(0.445, 0.050, 0.550, 0.950);
$transition-duration: .8s;
$color-active: white;

.segmented-control {
  position: relative; 
  display: inline-block;
  border: 1px solid currentColor;
  font-style: normal;
  font-weight: normal;
  text-decoration: none;
  overflow: hidden;
  margin: .8em auto;

  @include border-radius(2px);
  @include box-sizing(border-box);
  @include user-select(none);
  @include transition-duration($transition-duration);
  @include transition-timing-function($transition-timing-function);

  -webkit-tap-highlight-color: rgba(0,0,0,0);

  > input {
    position: absolute;
    left: -10000px;
    opacity: 0;

    &[type='checkbox'] ~ label {
      @include transition-duration(0);

      &:before {
        opacity: 0;
      }
    }

    @for $i from 1 through $control-count {
      &:disabled:nth-child(#{$i}) ~ label:nth-of-type(#{$i}) {
        opacity: 0.3;
        cursor: not-allowed;
      }

      &:nth-child(#{$i}):checked {
        ~ label:nth-of-type(#{$i}) {
          &:after, &:before { 
            opacity: 1; 
          }
        }

        @for $j from $i through $control-count {
          ~ label:first-of-type:nth-last-of-type(#{$j}) {
            &:after, &:before, & ~ label:after, & ~ label:before { 
              left: percentage((($i - 1) / 10) / ($j / 10)); 
            }
          }
        }
      }
    }
  }

  > label {
    display: inline-block;
    padding: 0 .71em;
    cursor: pointer;
    float: left;
    line-height: 3em;
    font-style: inherit;
    font-weight: inherit;
    text-decoration: inherit;

    @include transition-property(none);
    @include transition-duration(inherit);
    @include transition-timing-function(inherit);

    &:before, &:after {
      position: absolute;
      left: 0;
      top: 0;
      width: 100%;
      height: 100%;
      pointer-events: none;
    }

    &:after {
      color: $color-active;
      content: attr(data-value);
      text-align: center;
      padding: inherit;
      z-index: 10;
      font-style: inherit;
      text-decoration: inherit;
      font-weight: inherit;
      opacity: 0;

      @include transition-property(opacity, left);
      @include transition-duration(inherit);
      @include transition-timing-function(inherit);
    }

    &:after, & {
      text-align: center;
      text-overflow: ellipsis;
      white-space: nowrap;
      overflow: hidden;

      @include box-sizing(border-box);
    }

    &:before {
      content: '';
      color: inherit;
      background: currentColor;

      @include transition-property(left);
      @include transition-duration(inherit);
      @include transition-timing-function(inherit);
    }

    @for $i from 1 through $control-count {
      &:first-of-type:nth-last-of-type(#{$i}) {
        &, & ~ label {
          &, &:after, &:before {
            width: percentage(1/$i);
          }
        }
      }
    }
  }

  &.italic, .italic             { font-style: italic; }
  &.bold, .bold                 { font-weight: bold; }
  &.underline, .underline       { text-decoration: underline; }
  &.line-through, .line-through { text-decoration: line-through; }
}

$color-light : #C2C8CD;
$color-dark  : #515457;

html {
  font-size: 14px;
  font-family: 'Source Sans Pro', Helvetica, arial, sans-serif;
  font-weight: 400;
  letter-spacing: .04em;
  color: $color-light;
  cursor: default;
  font-smooth: always;
  -webkit-font-smoothing: antialiased;
}

html, body {
  min-height: 100%;
  height: 100%;
  padding: 0;
  margin: 0;
}

body {
  @include display-flex;
}

a {
  color: inherit;
  text-decoration: none;

  &:hover {
    text-decoration: underline;
  }
}

.container {
  margin: auto;
  max-width: 700px;
  min-width: 200px;
  text-align: center;
  padding: 0 6em;
}
View Compiled
Run Pen

External CSS

This Pen doesn't use any external CSS resources.

External JavaScript

This Pen doesn't use any external JavaScript resources.