サンプル

HTML

<div id="accordion">
  <form> 
    <label>
      <input type="radio" name="btn" checked />
      <div>
        <div>カテゴリー1</div>
        <ul>
          <li><a href="#">サブカテゴリー1</a></li>
          <li><a href="#">サブカテゴリー2</a></li>
          <li><a href="#">サブカテゴリー3</a></li>
        </ul>
      </div>
    </label>
    <label>
      <input type="radio" name="btn" />
      <div>
        <div>カテゴリー2</div>
        <ul>
          <li><a href="#">サブカテゴリー1</a></li>
          <li><a href="#">サブカテゴリー2</a></li>
          <li><a href="#">サブカテゴリー3</a></li>
        </ul>
      </div>
    </label>
    <label>
      <input type="radio" name="btn" />
      <div>
        <div>カテゴリー3</div>
        <ul>
          <li><a href="#">サブカテゴリー1</a></li>
          <li><a href="#">サブカテゴリー2</a></li>
          <li><a href="#">サブカテゴリー3</a></li>
        </ul>
      </div>
    </label>
    <label>
      <input type="radio" name="btn" />
      <div>
        <div>カテゴリー4</div>
        <ul>
          <li><a href="#">サブカテゴリー1</a></li>
          <li><a href="#">サブカテゴリー2</a></li>
          <li><a href="#">サブカテゴリー3</a></li>
        </ul>
      </div>
    </label>
    <label>
      <input type="radio" name="btn" />
      <div>
        <div>カテゴリー5</div>
        <ul>
          <li><a href="#">サブカテゴリー1</a></li>
          <li><a href="#">サブカテゴリー2</a></li>
          <li><a href="#">サブカテゴリー3</a></li>
        </ul>
      </div>
    </label>
  </form> 
</div>

CSS

@font-face {
  font-family: 'Typicons';
  src: url('fonts/typicons-regular-webfont.eot');
  src: url('fonts/typicons-regular-webfont.eot?#iefix') format('embedded-opentype'),
    url('fonts/typicons-regular-webfont.woff') format('woff'),
    url('fonts/typicons-regular-webfont.ttf') format('truetype'),
    url('fonts/typicons-regular-webfont.svg#TypiconsRegular') format('svg');
  font-weight: normal;
  font-style: normal;
}
#accordion{
  position:relative;
  width: 500px;
  margin: 0 auto;
  padding: 0;
  border-top: 15px solid #1b4958;
  border-bottom: 15px solid #1b4958;
  border-radius: 3px;
  font-size: 16px;
  line-height: 1;
}
#accordion input{
  position:absolute;
  height: 0;
  padding:0;
}
#accordion div div{
  position: relative;
  padding: 15px 10px 12px 40px;
  border-top: 1px solid #d4ebf2;
  border-bottom: 1px solid #86c5da;
  background: #add8e6;
}
#accordion label:first-child div div{
  border-top: 0;
}
#accordion label:last-child div div{
  border-bottom: 0;
}
#accordion div div:hover{
  background: #a0d2e2;
	cursor: pointer;
}
#accordion div div:before{
  position:absolute;
  top: 13px;
  left:10px;
  color: #2f7f99;
  font: 24px/100% 'Typicons';
  content: "\0023";
}
#accordion div div:after{
  position:absolute;
  top: 15px;
  right:10px;
	color: #2f7f99;
  font: 20px 'Typicons';
  content: "7";
  -moz-transition: .3s;
  -webkit-transition: .3s;
  -o-transition: .3s;
  -ms-transition: .3s;
  transition: .3s;
}
#accordion input:checked + div div:after{
  top: 12px;
  right: 15px;
  -moz-transform: rotate(90deg);
  -webkit-transform: rotate(90deg);
  -o-transform: rotate(90deg);
  -ms-transform: rotate(90deg);
  transform: rotate(90deg);
}
#accordion ul{
  list-style: none;
  margin: 0;
  background: #e1f1f6;
}
#accordion ul li a{
  display: block;
  overflow: hidden;
  height: 0;
  padding: 0px 70px;
  color: #333;
  text-decoration: none;
  -moz-transition: .3s;
  -webkit-transition: .3s;
  -o-transition: .3s;
  -ms-transition: .3s;
  transition: .3s;
}
#accordion input:checked + div ul li a{
  position:relative;
  background: none;
  line-height: 1;
	height: 16px;
  padding: 13px 70px;
  border-top: 1px solid #fff;
  border-bottom: 1px solid #a0d2e2;
}
#accordion input:checked + div ul li:first-child a{
  border-top: 0;
  box-shadow: 0 7px 7px -7px rgba(0,0,0,.5) inset;
}
#accordion input:checked + div ul li:last-child a{
  border-bottom: 0;
}
#accordion input:checked + div ul li a:hover{
  background: #d4ebf2;
  border-top-color: #eef7fa;
}
#accordion input:checked + div ul li a:before{
  position: absolute;
  top: 16px;
  left: 45px;
  color: #2f7f99;
  font:16px/100% 'Typicons';
  content: "x";
  -moz-transition: .3s;
  -webkit-transition: .3s;
  -o-transition: .3s;
  -ms-transition: .3s;
  transition: .3s;
}