Web白描

Webデザインの勉強 - 演習

flexboxで横並び

flexboxで複数カラム横並び

  • 生成AIで、テキストコンテンツを作成
  • 生成AIは、リートンを使用

wrtn.jp

プロンプト(生成AIへの指示)

少年がスペインを旅する物語を200文字程度で作成してください。

少年の名はタケル。彼は夏休みを利用して、憧れのスペインを旅することに決めた。初めての海外旅行に胸を躍らせながら、彼はバルセロナの街に降り立った。青空の下、カサ・ミラやサグラダ・ファミリアの美しさに圧倒され、思わず息を呑む。

タケルは地元の市場で新鮮なタパスを味わい、フレンドリーな店主と会話を楽しんだ。彼はスペイン語を少し勉強していたので、簡単な挨拶や注文ができたことに自信を持った。市場の賑わいの中で、彼は異国の文化に触れ、心が躍るのを感じた。

HTMLコーディング

  • 見出しのない構造のため、divタグでレイアウトの記述のみ
  • 親ボックスと子ボックスが、してしやすいようにクラス名を付与
<main class="main">
  <div class="container">
    <div class="wrapper">
      <p>少年の名はタケル。彼は夏休みを利用して、憧れのスペインを旅することに決めた。初めての海外旅行に胸を躍らせながら、彼はバルセロナの街に降り立った。青空の下、カサ・ミラやサグラダ・ファミリアの美しさに圧倒され、思わず息を呑む。</p>
      <p>タケルは地元の市場で新鮮なタパスを味わい、フレンドリーな店主と会話を楽しんだ。彼はスペイン語を少し勉強していたので、簡単な挨拶や注文ができたことに自信を持った。市場の賑わいの中で、彼は異国の文化に触れ、心が躍るのを感じた。</p>
    </div><!-- /.wrapper -->
  </div><!-- /.container -->
</main>
CSSコーディング
  • Flexboxで2カラムにする(横並び)
@charset "UTF-8";

/* -----------------------------------------
  reset
----------------------------------------- */
* {
  margin: 0;
  padding: 0;
  box-sizing: border-box;
}
ul {
  list-style: none;
}
a {
  color: inherit;
  text-decoration: none;
}
img {
  max-width: 100%;
  vertical-align: bottom;
}

/* -----------------------------------------
  body
----------------------------------------- */
body {
  background-color: #fff;
  color: #333;
  font-style: 16px;
  font-family: sans-serif;
  line-height: 1;
}

/* -----------------------------------------
  layout
----------------------------------------- */
.container {
  width: 90%;
  max-width: 800px;
  margin: 50px auto;
}
.wrapper {
  display: flex;
  gap: 20px;
  padding: 20px;
  border: 2px dashed #999;
}
p {
  padding: 20px;
  background-color: #f0f0f0;
  text-align: justify;
  line-height: 1.7;
}
幅を可変にする
.container {
  width: 90%;  /* スマートフォンでの最小幅 */ 
  max-width: 800px;  /* PCでの最大幅 */ 
  margin: 50px auto;
}

この2行をまとめて記述するときに、min()関数を使います。

横並びのポイント

  • 親ボックスに「display: flex;」を設定すると、子ボックスはすべて横並びの状態になります
  • この時点では、子ボックス同士の空きはありません
  • 「gap: 20px; 」で設定すると、子ボックスの幅が自動計算されて、空きが優先されます
.wrapper {
  display: flex;
  gap: 20px;  /* カラム間の空きを20pxに */
}