タグにマウスホバーすると記事数がスライドする

Ads

Result


記事に紐付けられたタグ等の数値がマウスホバーでスライドする、みたいなの
これ自体はだいぶ昔に見られたUIで需要はなさそう(タグに紐付いた記事数を表記する意味が薄い)ですがSNSの数値表記等、他にも応用できそうです

css

.tags:before, .tags:after {/*タグに疑似要素を追加*/
  content: '';
  display: table;
}

.tags:after {/*ここではfloatを使用するので解除しておく*/
  clear: both;
}
.tags li {
  position: relative;
  float: left;
  margin: 0 0 8px 12px;
}

.tags li:active {
  margin-top: 1px;
  margin-bottom: 7px;
}

.tags li:after {/*タグの真ん中の凹み部分*/
  content: '';
  z-index: 2;
  position: absolute;
  top: 10px;
  right: -2px;
  width: 5px;
  height: 6px;
  opacity: .95;
  background: #eb6b22;
  border-radius: 3px 0 0 3px;
  box-shadow: inset 1px 0 #99400e;
}

.tags a, .tags span {
  display: block;
  box-sizing: border-box;
}

.tags a {/*タグのスタイル*/
  height: 26px;
  line-height: 23px;
  padding: 0 9px 0 8px;
  font-size: 12px;
  color: #555;
  text-decoration: none;
  text-shadow: 0 1px white;
  background: #fafafa;
  border-width: 1px 0 1px 1px;
  border-style: solid;
  border-color: #dadada #d2d2d2 #c5c5c5;
  border-radius: 3px 0 0 3px;
  background-image: linear-gradient(to bottom, #fcfcfc, #f0f0f0);
  box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.7), 0 1px 2px rgba(0, 0, 0, 0.05);
}

.tags a:hover span {/*ホバー時*/
  padding: 0 7px 0 6px;
  max-width: 40px;
  box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.15), 1px 1px 2px rgba(0, 0, 0, 0.2);
}

.tags span {/*数字の部分*/
  position: absolute;
  top: 1px;
  left: 100%;
  z-index: 2;
  overflow: hidden;
  max-width: 0;
  height: 24px;
  line-height: 21px;
  padding: 0 0 0 2px;
  color: white;
  text-shadow: 0 -1px rgba(0, 0, 0, 0.3);
  background: #eb6b22;
  border: 1px solid;
  border-color: #d15813 #c85412 #bf5011;
  border-radius: 0 2px 2px 0;
  opacity: .95;
  background-image: linear-gradient(to bottom, #ed7b39, #df5e14);
  transition: 0.3s ease-out;
  transition-property: padding, max-width;
}

/*色を分ける*/
.green li:after {
  background: #65bb34;
  box-shadow: inset 1px 0 #3a6b1e;
}

.green span {
  background: #65bb34;
  border-color: #549b2b #4f9329 #4b8b27;
  background-image: linear-gradient(to bottom, #71ca3f, #5aa72e);
}

.blue li:after {
  background: #56a3d5;
  box-shadow: inset 1px 0 #276f9e;
}

.blue span {
  background: #56a3d5;
  border-color: #3591cd #318cc7 #2f86be;
  background-image: linear-gradient(to bottom, #6aaeda, #4298d0);
}

html

<div class="container">
  <ul class="tags">
    <li><a href="#">ブログ <span>4</span></a></li>
    <li><a href="#">ライフハック <span>8</span></a></li>
    <li><a href="#">ランチ <span>15</span></a></li>
    <li><a href="#">運動 <span>16</span></a></li>
  </ul>

  <ul class="tags green">
    <li><a href="#">デザイン <span>23</span></a></li>
    <li><a href="#">プログラム <span>42</span></a></li>
    <li><a href="#">UI <span>108</span></a></li>
    <li><a href="#">スマホ <span>12</span></a></li>
  </ul>

  <ul class="tags blue">
    <li><a href="#">Kotlin <span>31</span></a></li>
    <li><a href="#">Android Studio <span>33</span></a></li>
    <li><a href="#">Node.js <span>65</span></a></li>
    <li><a href="#">Java <span>160</span></a></li>
  </ul>
</div>

via

Sliding Tags