/*label – это наша кнопка-бургер, которая привязана к инпуту.

ul – сам блок меню.

Теперь CSS (писал только для WebKit-браузеров: Opera 16+, Safari, Chrome).

Наше меню:
Здесь много раздолья для креативных людей, но главные параметры – это width и left. 
Он должны иметь одинаковое значение, но left при этом является отрицательным. Тем самым мы прячем нашу меню слева от экрана. 
Также добавил анимацию transition: left .2s для красоты процесса выезда из-за пределов экрана.*/

.hidden-menu {
  display: block;
  position: fixed;
  list-style:none;
  padding: 10px;
  margin: 0;
  box-sizing: border-box;
  width: 100%;
  background-color: #fff;
  height: auto;
  top: 0;
  right: -100%;
  transition: right .2s;
  z-index: 2;
  -webkit-transform: translateZ(0);
  -webkit-backface-visibility: hidden;
}

/*

Наш чекбокс:*/
.hidden-menu-ticker {
  display: none;
}
/*Его просто делаем невидимым.

Кнопка-бургер:*/

.btn-menu {
  color: #fff;
  background-color: #123D6A;
  padding: 5px;
  position: fixed;
  top: 5px;
  right: 5px;
  cursor: pointer;
  transition: right .23s;
  z-index: 3;
  width: 35px;
  border-radius: 10px;
  -webkit-transform: translateZ(0);
  -webkit-backface-visibility: hidden;
}
.btn-menu span {
  display: block;
  height: 3px;
  background-color: #fff;
  margin: 5px 0 0;
  transition: all .1s linear .23s;
  position: relative;
}
.btn-menu span.first {
  margin-top: 0;
}
/*Оформлять также можно как угодно. Я сделал просто серую кнопку с белыми полосками в левом верхнем углу. Сюда тоже добавил анимации для самой кнопки и для полосок (просто для красоты).

Теперь, так называемая «магия»:*/
.hidden-menu-ticker:checked ~ .btn-menu {
  /*right: 160px;*/
}
.hidden-menu-ticker:checked ~ .hidden-menu {
  right: 0;
}
.hidden-menu-ticker:checked ~ .btn-menu span.first {
  -webkit-transform: rotate(45deg);
  top: 10px;
}
.hidden-menu-ticker:checked ~ .btn-menu span.second {
  opacity: 0;
}
.hidden-menu-ticker:checked ~ .btn-menu span.third {
  -webkit-transform: rotate(-45deg);
  top: -10px;
}