Rodhos Soft

備忘録を兼ねた技術的なメモです。Rofhos SoftではiOSアプリ開発を中心としてAndroid, Webサービス等の開発を承っております。まずはご相談下さい。

flexbox

flexboxを用いて、タイル表示をしてみる。以下を参考にした。
ics.media


HTMLはヘッダーにメニューとmainにタイルとしてdivを置いた。

<!DOCTYPE html>
<html lang="ja">
  <head>
    <meta charset="UTF-8">
    <title>title</title>
    <link rel="stylesheet" type="text/css" href="sample.css">
  </head>
  <body>

  <header>
    <img src="hoge.png" alt="">
    <ul>
      <li><a href="">item1</a></li>
      <li><a href="">item2</a></li>
      <li><a href="">item2</a></li>
    </ul>
  </header>


  <main>
    <!-- カード的なUI  -->
    <div class="animal">
      <h1>うなぎ</h1>
      <img src="images/unagi.jpg" alt="">
      <p>全身がなめらかな皮で覆われている魚である。</p>
    </div>

    <div class="animal">
      <h1>イルカ</h1>
      <img src="images/iruka.jpg" alt="">
      <p>魚のようだが哺乳類である。かしこい。</p>
    </div>

    <div class="animal">
      <h1>いわし</h1>
      <img src="images/iwashi.jpg" alt="">
      <p>最近高くなった。</p>
    </div>

    <div class="animal">
      <h1>どじょう</h1>
      <img src="images/dojou.jpg" alt="">
      <p>もはや見かけない</p>
    </div>
  </main>

  </body>
</html>

レイアウトでflexを用いて均等に配置等を指定する。下記で主軸といっているのが横で交差軸と言ってるのが縦の設定と思えば良い。

/*
 flexには主軸と交差軸という概念
 初期設定では主軸が左から右、交差軸が上から下
*/

/* 主軸を均等割りに */
/* 交差軸を中央に */
header {
  display: flex;
  justify-content: space-between; 
  align-items: center;
}

/* 主軸設定
  flex-start,center,flex-end,space-between(両端は端につく),space-around(両端はボックスの半分)
  交差軸設定
  stretch(親と同じ高さ),flex-start,center,flex-end
*/

/* 交差軸を中央に */
ul {
  display: flex;
  justify-content: space-between; 
  align-items: center;
}


main {
  display: flex;
  flex-wrap: wrap;  /* 複数行配置 */
}

main div.animal {
  width: calc(33.3% - 10px);
  margin: 5px;
}