超シンプルにCSSのflexで作らえれた、hoverで縦に割られた領域が拡大縮小するテクニック

PR

Flexbox outdatedbrowser.com style UI

DEMO 表示

flex

 

ulにdisplay:flex;をつかって、要素を比率で並べるようにしてあります

liにはflex:1;として、マウスオーバーされていない状態では当分割した表示になるように

マウスオーバーされたときには flex:3; にすることで、割合を他の要素に比べて3倍の大きさにしています

また、その問の動作でtransitionでアニメーション化しています。

 

 

コード

HTML

<ul>
  <li>One</li>
  <li>Two</li>
  <li>Three</li>
  <li>Four</li>
  <li>Five</li>
</ul>

HTML側はとてもシンプル

 

CSS

body {
  color: #fff;
  font-family: sans-serif;
  margin: 0;
  padding: 0;
}

ul, li {
  margin: 0;
  padding: 0;
  list-style: none;
}

ul {
  display: flex;
  height: 100vh;
}

li {
  flex: 1;
  transition: flex 300ms ease-out, color 200ms ease-out;
  padding: 2%;
  text-align: center;
  color: rgba(255, 255, 255,0);
}

li:nth-child(1) {
  background: #f2b635;
}

li:nth-child(2) {
  background: #f19a2a ;
}

li:nth-child(3) {
  background: #49b3e8 ;
}

li:nth-child(4) {
  background: #00a0e6;
}

li:nth-child(5) {
  background: #f25648;
}

li:hover {
   flex: 3;
   color: rgba(255, 255, 255, 1);
}

CSS側も、nth-childでそれぞれの色を指定するところを除けばとても、シンプル

 

 

コンテンツ数が限られている、WEBサイトのトップページとかにもちょくちょく使われたりするデザイン

CSSのみで簡単に実現出来るので試してみる価値あります

PR

COMMENT

コメントを残す

PR

9ineBBの管理人が運営するサイト

WDG WEB DESIGN GALLERY ウェブデザインギャラリー