Web白描

Webデザインの勉強 - 演習

課題06 旬の野菜便

課題06 旬の野菜便 完成例

記述ポイント
  • 横並びを縦並びに変更するために、メディアクエリ内で「display: block;」を指定する
  • 文字サイズを読みやすい大きさに変更
  • 画像の幅を100%に変更
  • ボタン(CTA)を、角丸ではなくスマートフォンの横幅いっぱいにして押しやすくする

style.css

@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;
}
html {
  font-size: 100%;
}


/* -------------------------------------------
  body
------------------------------------------- */
body{
  color: #333;
  font-size: 1.0rem;
  font-family: "Shippori Mincho", serif;
  line-height: 1.0rem;
  letter-spacing: -0.01rem;
}


/* -------------------------------------------
  layout
------------------------------------------- */
.container {
  width: min(92%, 960px);
  margin: 0 auto;
}


/* -------------------------------------------
  header
------------------------------------------- */
.header {
  border-bottom: 6px solid #128100;
}
.header > .container {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 30px 0;
  text-align: center;
}
  h1{
    color: #128100;
    font-size: 1.75remx;
  }
  nav > ul{
      display: flex;
      justify-content: center;
      gap: 30px;
      font-family: sans-serif;
  }
    nav > ul li{
        list-style: none;
        font-size: 1.0rem;
        font-weight: 700;
        color: #128100;
    }

@media screen and (max-width: 767px) {
  .header > .container {
    display: block;
    padding: 20px 0;
  }
  h1 {
    margin-bottom: 30px;
  }
}


/* -------------------------------------------
  main
------------------------------------------- */
.main {
  padding-bottom: 60px;
}
  .key_visual > img {
    width: 100%;
    height: 600px;
    object-fit: cover;
  }
  h2 {
    margin: 40px 0;
    color: #128100;
    font-size: 2.18rem;
    line-height: 1.2;
    text-align: center;
  }
    h2::first-line {
      color: #3d3d3d;
      font-size: 1.75rem;
      display: block;
    }

.description {
  display: flex;
  gap: 40px;
  margin: 40px auto;
}
  .description img {
    width: 48%;
    object-fit: cover;
  }
  .description-block {
    margin-right: 50px;
  }
  .description h3 {
    font-size: 28px;
    margin-bottom: 20px;
  }
  .description p {
    margin: 0;
    font-size: 18px;
    line-height: 1.8;
    text-align: justify;
  }

@media screen and (max-width: 767px) {
  .description{
    display: block;
  }
  .description img{
    width: 100%;
    margin-bottom: 30px;
  }
  .description h3{
    font-size: 1.5rem;
    margin-bottom: 16px;
    text-align: center;
  }
  .description p{
    margin: 0;
    font-size: 1.0rem;
    line-height: 1.6;
    text-align: justify;
  }
}

/* ---------- CTA ---------- */
.cta > ul {
  display: flex;
  justify-content: center;
  gap: 40px;
}
.cta_btn a {
  display: block;
  padding: 16px 30px;
  border: 2px solid transparent;
  border-radius: 50px;
  color: #fff;
  font-size: 1.125rem;
  font-family: sans-serif;
  text-align: center;
  cursor: pointer;
}
.buy-btn a {
  background-color: #FFA726;
  border: 2px solid #FFA726;
}
  .buy-btn a:hover {
    background-color: #fff;
    border: 2px solid #FFA726;
    color: #FFA726;
  }
.detail-btn a {
  background-color: #128100;
}
  .detail-btn a:hover {
    background-color: #fff;
    border: 2px solid #128100;
    color: #128100;
  }

@media screen and (max-width: 767px) {
  .cta > ul {
    display: block;
    justify-content: center;
    gap: 40px;
  }
  .cta_btn a {
    margin-bottom: 20px;
    border-radius: 0;
    
  }
}


/* -------------------------------------------
  footer
------------------------------------------- */
footer {
    background-color: #128100;
    text-align: center;
    padding: 18px 0 13px;
}
footer .footer-title{
    color: #fff;
    font-size: 1.75rem;
}
footer .copyright{
    color: #fff;
    font-size: 0.75rem;
    margin-top: 10px;
}

index.html

<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta name="robots" content="noindex">
<title>【コーディング練習】旬の野菜便</title>
<link rel="preconnect" href="https://fonts.googleapis.com">
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
<link href="https://fonts.googleapis.com/css2?family=Shippori+Mincho:wght@400;500;600;700;800&display=swap" rel="stylesheet">
<link rel="stylesheet" href="css/style.css">
</head>
<body>

<!-- header -->
<header class="header">
  <div class="container">
    <h1>旬の野菜便</h1>
    <nav class="gnav">
      <ul>
        <li>旬の野菜便について</li>
        <li>お問い合わせ</li>
      </ul>
    </nav>
  </div><!-- /.container -->
</header>
<!-- /header -->

<!-- main -->
<main class="main">
  <div class="key_visual">
    <img src="img/vegetables.webp" alt="">
  </div><!-- /.key_visual -->
  <div class="container">
    <section class="message">
      <h2>いつでもそばに<br>
        美味しい野菜を</h2>
      <div class="description">
        <img src="img/smoothie.webp" alt="">
        <div class="text_block">
          <h3>取れたての新鮮な野菜</h3>
          <p>旬の野菜便はいつでも取れたての新鮮な野菜を配送。だから届いてもすぐにおいしく、生のままでも食べることが出来ます。<br>
          普段から野菜不足だなと感じる日本人は多いものの、あまり多く食べられないのが現実。<br>
          私たちは、野菜の定期便で野菜不足の生活をしっかりサポート。1日に必要な野菜を全てお届け。<br>
          自由に調理するもよし、そのまま食べるもよし。野菜をふんだんに取り入れた生活で、健康な毎日を。</p>
        </div><!-- /.text_block -->
      </div><!-- /.description -->
    </section>
    <div class="cta">
      <ul>
        <li class="cta_btn buy-btn"><a>ご購入はこちら</a></li>
        <li class="cta_btn detail-btn"><a>詳しく見る</a></li>
      </ul>
    </div><!-- /.cta -->
  </div><!-- /.container -->
</main>
<!-- /main -->

<!-- footer -->
<footer>
  <div class="footer-title">旬の野菜便</div>
  <p class="copyright">© 2024 旬の野菜便</p>
</footer>
<!-- /footer -->

</body>
</html>