Web白描

Webデザインの勉強 - 演習

課題 Recipe Diary

課題 Recipe Diary

unsplash.com

ひよこ豆とアボガドのタコス
たっぷりのひよこ豆とレンズ豆にアボガドとトマトを添えて、少しライムを絞ったらおいしいタコスのできあがりです。

材料(2人分)
ひよこ豆
約400g
レンズ豆
約100g
アボカド
1個
トルティーヤ
8枚
ライムの皮と果汁
1個分
チェリートマト
適量

作り方
バーベキューグリルを温めておきます。
ボウルにマリネ液の材料をすべてボウルに入れて混ぜます。
漬け込んだひよこ豆の水気を切り、12〜15分間焼きます。
ライムソースを作ります。
ひよこ豆、アボカドなどのお好みのトッピングをトルティーヤに乗せ、ライムソースをかけて召し上がってください。

レシピ一覧を見る

Instagram
Twitter
Facebook

© 2024 Recipe Diary

記述ポイント
  • ナビゲーションのないレイアウトの例
  • 画像と文字のみの横並びを縦並びに変更する
  • メディアクエリ内で「display: block;」を指定する

style.css

@charset "UTF-8";

/* ---------------------------------------
  reset
--------------------------------------- */
*, *::before, *::after {
  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 {
  background-color: #fff;
  color: #333;
  font-family: "Noto Sans JP", sans-serif;
  line-height: 1.0;
}


/* ---------------------------------------
  footer
--------------------------------------- */
.footer {
  font-size: 0.875rem;
  padding-block: 0 20px;
  text-align: center;
}
  .sns {
    display: flex;
    justify-content: center;
    margin-bottom: 40px;
  }
  .sns li {
    margin: 0 10px;
  }
  .sns a {
    text-decoration: underline;
  }

@media screen and (max-width: 767px) {
  .footer {
    font-size: 0.7rem;
  }
}


/* ---------------------------------------
  main
--------------------------------------- */
.main > .container {
  display: grid;
  grid-template-columns: 50% 50%;
}
.image{
  height: 800px;
}
  .image > img {
    width: 100%;
    height: 100%;
    object-fit: cover;
  }

@media screen and (max-width: 767px) {
  .main > .container {
    display: block;
  }
  .image{
    height: 500px;
  }
}


/* -------------.recipe ---------------- */
.recipe {
  margin-bottom: 64px;
  padding-top: 44px;
  padding-inline: 10%;
}
  .recipe h2 {
    margin-bottom: 22px;
    font-size: 1.8rem;
    line-height: 1.3;
  }
  .recipe p {
    line-height: 1.7;
  }
  .recipe h3 {
    border-bottom: solid 1px #ccc;
    font-size: 1.4rem;
    margin-block: 30px 10px;
    padding-bottom: 10px;
    
  }
  .recipe dl {
    display: grid;
    grid-template-columns: 50% 50%;
    font-size: 0.875rem;
  }
    .recipe dt {
      border-bottom: dotted 1px #ccc;
      line-height: 2.2;
    }
    .recipe dd {
      border-bottom: dotted 1px #ccc;
      line-height: 2.2;
      text-align: right;
    }
  .recipe ol {
    list-style-position: inside;
    font-size: 0.875rem;
  }
    .recipe li {
      border-bottom: dotted 1px #ccc;
      padding-block: 12px;
      padding-left: 1.0rem;
      text-indent: -1.0rem;
      line-height: 1.4;
    }

@media screen and (max-width: 767px) {
  .recipe h2 {
    font-size: 1.45rem;
    margin-bottom: 18px;
  }
  .recipe p {
    font-size: 0.875rem;
  }
}


/* --------------.btn ----------------- */
.btn {
  margin-block: 60px 40px;
  text-align: center;
}
  .btn > a {
    display: inline-block;
    padding: 20px 60px;
    border: solid 1px #2b2a27;
    font-size: 0.875rem;
    transition: .3s;
  }
  .btn > a:hover {
    background-color: #ececec;
  }
  
@media screen and (max-width: 767px) {
  .btn {
    margin-block: 40px;
  }
  .btn > a {
    width: 80%;
  }
}

index.html

<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="UTF-8">
<title>Recipe Diary</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="icon" href="img/favicon.ico">
<link rel="stylesheet" href="css/style.css">
</head>
<body>
<!-- ▼ main -->
<main class="main">
  <div class="container">

    <div class="image">
      <img src="img/recipe.jpg" alt="">
    </div>

    <section class="recipe">
      <h2>ひよこ豆とアボガドのタコス</h2>
      <p>たっぷりのひよこ豆とレンズ豆にアボガドとトマトを添えて、少しライムを絞ったらおいしいタコスのできあがりです。</p>

      <h3>材料(2人分)</h3>
      <dl>
        <dt>ひよこ豆</dt>
        <dd>約400g</dd>
        <dt>レンズ豆</dt>
        <dd>約100g</dd>
        <dt>アボカド</dt>
        <dd>1個</dd>
        <dt>トルティーヤ</dt>
        <dd>8枚</dd>
        <dt>ライムの皮と果汁</dt>
        <dd>1個分</dd>
        <dt>チェリートマト</dt>
        <dd>適量</dd>
      </dl>

      <h3>作り方</h3>
      <ol>
        <li>バーベキューグリルを温めておきます。</li>
        <li>ボウルにマリネ液の材料をすべてボウルに入れて混ぜます。</li>
        <li>漬け込んだひよこ豆の水気を切り、12〜15分間焼きます。</li>
        <li>ライムソースを作ります。</li>
        <li>ひよこ豆、アボカドなどのお好みのトッピングをトルティーヤに乗せ、ライムソースをかけて召し上がってください。</li>
      </ol>
    </section>
    
  </div><!-- /.container -->

  <div class="btn">
    <a href="#">レシピ一覧を見る</a>
  </div>
</main>
<!-- ▲ main -->

<!-- ▼ footer -->
<footer class="footer">
  <ul class="sns">
    <li><a href="#">Instagram</a></li>
    <li><a href="#">Twitter</a></li>
    <li><a href="#">Facebook</a></li>
  </ul>
  <p>&copy; 2024 Recipe Diary</p>
</footer>
<!-- ▲ footer -->

</body>
</html>

課題12 IKECODE

課題12 IKECODE 完成例

記述ポイント
  • 横並びを縦並びに変更するために、メディアクエリ内で「display: block;」を指定する
  • 文字を読みやすくサイズ変更
  • 画像の並びをスマートフォンに最適化する

style.css

@charset "UTF-8";

/* ----------------------------------------
  reset
---------------------------------------- */
*, *::before, *::after {
  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 {
  scroll-behavior: smooth;
}


/* ----------------------------------------
  body
---------------------------------------- */
body {
  background-color: #fff;
  color: #333;
  font-size: 16px;
  font-family:
    "Josefin Sans", "Noto Sans JP", sans-serif;
  line-height: 1.0;
}


/* ----------------------------------------
  layout(共通)
---------------------------------------- */
.container {
  width: min(92%, 960px);
  margin: 0 auto;
}
.sec_block {
  padding: 80px 0;
}
h2 {
  margin-bottom: 40px;
  font-size: 32px;
  font-weight: 600;
  text-align: center;
}


/* ----------------------------------------
  header
---------------------------------------- */
.header > .container {
  display: flex;
  justify-content: flex-start;
  align-items: center;
  padding: 40px 0 30px;
}
  h1 {
    width: fit-content;
    margin-right: auto;
    font-weight: 600;
    font-size: 38px;
  }

@media screen and (max-width: 767px) {
  .header > .container {
    display: block;
    padding: 20px 0;
    text-align: center;
  }
  h1 {
    width: fit-content;
    margin: 0 auto;
    font-weight: 600;
    font-size: 38px;
  }
}


/* ----------------------------------------
  nav
---------------------------------------- */
.gnav > ul {
  display: flex;
  justify-content: center;
  align-items: center;
}
  .gnav li {
    font-size: 16px;
  }
  .gnav li a {
    display: block;
    padding: 20px 20px 16px;
    transition: .3s;
  }
    .gnav li:last-child a {
      background-color: #000;
      color: #fff;
    }
    .gnav li a:hover {
      opacity: 0.5;
    }


/* ----------------------------------------
  main_visual
---------------------------------------- */
.main_visual {
  margin-bottom: 80px;
}
  .main_visual img {
    width: 100%;
    height: 600px;
    object-fit: cover;
  }

@media screen and (max-width: 767px) {
  .main_visual {
    margin-bottom: 30px;
  }
  .sec_block {
    padding: 20px 0;
  }
}


/* ----------------------------------------
  about
---------------------------------------- */
#about ul {
  margin-bottom: 16px;
  padding-left: 5.0rem;
  list-style: disc;
  font-size: 18px;
}
  #about ul li, #about p {
    font-size: 18px;
    line-height: 1.8;
  }

@media screen and (max-width: 767px) {
  #about ul {
    padding-left: 2.0rem;
  }
  #about ul li, #about p {
    font-size: 1.05rem;
    line-height: 1.6;
  }
}


/* ----------------------------------------
  works
---------------------------------------- */
#works ul {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
  gap: 20px;
}
  #works ul li {
    width: 100%;
  }

@media screen and (max-width: 767px) {
  #works ul {
    grid-template-columns: repeat(auto-fit, minmax(140px, 1fr));
    gap: 10px;
  }
}


/* ----------------------------------------
  news
---------------------------------------- */
#news dl {
  display: grid;
  grid-template-columns: 8.0rem auto;
  border-top: 1px solid #aaa;
}
  #news dt {
    padding-top: 6px;
    padding-left: 1.0rem;
    border-bottom: 1px solid #aaa;
    line-height: 2.4;
    font-weight: 700;
  }
  #news dd {
    padding-top: 6px;
    border-bottom: 1px solid #aaa;
    line-height: 2.4;
  }

@media screen and (max-width: 767px) {
  #news dl {
    display: block;
  }
    #news dt {
      padding-top: 6px;
      padding-left: 1.0rem;
      border-bottom: 0;
      line-height: 1.4;
    }
    #news dd {
      margin-bottom: 10px;
      padding: 6px 0 6px 1.0rem;
      border-bottom: 1px solid #aaa;
      line-height: 1.4;
    }
}


/* ----------------------------------------
  contact
---------------------------------------- */
#contact p {
  text-align: center;
  margin-bottom: 20px;
}
#contact dl {
  display: grid;
  grid-template-columns: 10rem auto;
  margin-bottom: 20px;
  position: relative;
}
#contact dl::before {
  content: '※は必須項目';
  position: absolute;
  top: -30px;
  left: 0;
  color: #f00;
  font-size: 12px;
}
  #contact dt {
    position: relative;
    padding-left: 1em;
  }
  #contact dt::before {
    content: '※';
    position: absolute;
    top: 0;
    left: 0;
    color: #f00;
    font-size: 12px;
  }
  #contact dd {
    margin-bottom: 10px;
  }
    #contact dd input,
    #contact dd textarea {
      width: 100%;
      border: solid 1px #aaa;
      padding: 10px;
    }
    #contact dd textarea {
      height: 160px;
    }
  #contact .button {
    text-align: center;
  }
    #contact .button input {
      border: solid 1px #24292e;
      width: 200px;
      background-color: #24292e;
      color: #fff;
      padding: 15px 0;
      transition: .3s;
    }
    #contact .button input:hover {
      background: #fff;
      color: #24292e;
    }

@media screen and (max-width: 767px) {
  #contact p {
    margin-bottom: 40px;
  }
  #contact dl {
    display: block;
  }
  #contact dt {
    margin-bottom: 4px;
  }
}


/* ----------------------------------------
  footer
---------------------------------------- */
.footer {
  padding: 0 0 20px;
}
  .footer p {
    font-size: 14px;
    text-align: center;
  }

index.html

<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="UTF-8">
<title>IKRCODE</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link rel="shortcut icon" href="img/favicon.ico">

<!-- Google Fonts -->
<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=Josefin+Sans:ital,wght@0,100..700;1,100..700&family=Noto+Sans+JP:wght@100..900&display=swap" rel="stylesheet">
<link rel="stylesheet" href="css/style.css">
</head>
<body>
<!-- header -->
<header class="header">
  <div class="container">
    <h1 class="site-title"><a href="#">IKECODE</a></h1>
    <nav class="gnav">
      <ul>
        <li><a href="#about">ABOUT</a></li>
        <li><a href="#works">WORKS</a></li>
        <li><a href="#news">NEWS</a></li>
        <li><a href="#contact">CONTACT</a></li>
      </ul>
    </nav>
  </div><!-- /.container -->
</header>
<!-- /header -->

<!-- main -->
<main class="main">
  <div class="main_visual">
    <img src="img/main_pc.webp" alt="">
  </div><!-- /.main_visual -->
  <div class="container">
    <!-- about -->
    <section id="about" class="sec_block">
      <h2>About</h2>
      <ul>
        <li>IKECODE株式会社</li>
        <li>Web制作会社として設立</li>
        <li>Webサイト・アプリ開発を承ります</li>
        <li>メールアドレス:ikecode@sample.com</li>
      </ul>
      <p>
        Webサイト制作やアプリ開発を得意としています。また、新人の育成をしたい企業も募集しております。
      </p>
    </section>
    <!-- works -->
    <section id="works" class="sec_block">
      <h2>Works</h2>
      <ul>
        <li><img src="img/works1.webp" alt="work1"></li>
        <li><img src="img/works2.webp" alt="work2"></li>
        <li><img src="img/works3.webp" alt="work3"></li>
        <li><img src="img/works4.webp" alt="work4"></li>
        <li><img src="img/works5.webp" alt="work5"></li>
        <li><img src="img/works6.webp" alt="work6"></li>
        <li><img src="img/works7.webp" alt="work1"></li>
        <li><img src="img/works8.webp" alt="work2"></li>
        <li><img src="img/works9.webp" alt="work3"></li>
      </ul>
    </section>
    <!-- news -->
    <section id="news" class="sec_block">
      <h2>News</h2>
      <dl>
        <dt>2024/10/23</dt>
        <dd>YouTubeチャンネルを開始しました。【チャンネル登録】よろしくお願いいたします。</dd>
        <dt>2024/8/19</dt>
        <dd>新しい記事の更新をしました。</dd>
        <dt>2024/4/4</dt>
        <dd>新しい記事の更新をしました。</dd>
        <dt>2024/2/17</dt>
        <dd>IKECODEが、Webサイトを公開しました。</dd>
      </dl>
    </section>
    <!-- contact -->
    <section id="contact" class="sec_block">
      <h2 class="sec-title">Contact</h2>
      <p>お問い合わせは以下のフォームから</p>
      <form action="#" method="post">
        <dl>
          <dt><label for="name">お名前</label></dt>
          <dd><input type="text" id="name" required placeholder="田中 景子"></dd>
          <dt><label for="email">メールアドレス</label></dt>
          <dd><input type="email" id="email" required placeholder="tanaka@gmail.com"></dd>
          <dt><label for="content">内容</label></dt>
          <dd><textarea id="content" required placeholder="お問合せ内容をお書きください。"></textarea></dd>
        </dl>
        <div class="button"><input type="submit" value="送信"></div>
      </form>
    </section>
  </div><!-- /.container -->
</main>
<!-- /main -->

<!-- footer -->
<footer class="footer">
  <p><small>&copy; IKECODE</small></p>
</footer>
<!-- /footer -->
</body>
</html>

課題11 Flower Coffee

課題11 Flower Coffee 完成例

記述ポイント
  • 横並びを縦並びに変更するために、メディアクエリ内で「display: block;」を指定する
  • 文字を読みやすくサイズ変更

style.css

@charset "UTF-8";

/* --------------------------------
  reset
-------------------------------- */
*, *::before, *::after {
  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 {
  background-color: #fff;
  color: #333;
  font-size: 1.0rem;
  font-family: "Noto Sans JP", sans-serif;
  line-height: 1.0;
}


/* --------------------------------
  layout
-------------------------------- */
.container {
  width: min(96%, 1240px);
  margin: 0 auto;
  padding: 0 30px;
}

@media screen and (max-width: 767px) {
  .container {
    padding: 0 1.0rem;
  }
}


/* --------------------------------
  header
-------------------------------- */
.header {
  text-align: center;
}
  h1 > img {
    width: 360px;
    padding: 30px 0;
  }

@media screen and (max-width: 767px) {
  h1 > img {
    width: 200px;
    padding: 20px 0;
  }
}


/* --------------------------------
  nav
-------------------------------- */
.gnav {
  padding-block: 40px;
}
  .gnav > ul {
    display: grid;
    grid-auto-flow: column;
    justify-content: center;
    gap: 80px;
  }
  .gnav li {
    font-size: 1.25rem;
    font-family: "Arial", sans-serif;
    letter-spacing: 0.1em;
  }
    .gnav li a{
      position: relative;
      }
      .gnav li.current a,
      .gnav li a:hover{
        color:#0497a2;
      }
        .gnav li a::after {
          content: '';
          position: absolute;
          bottom: -4px;
          left: -10%;
          width: 120%;
          height: 2px;
          background:#0497a2;
          transition: all .3s;
          transform: scale(0, 1);
          transform-origin: center top;
        }
          .gnav li.current a::after,
          .gnav li a:hover::after {
              transform: scale(1, 1);
          }

@media screen and (max-width: 767px) {
  .gnav > ul {
    gap: 40px;
  }
}

          
/* --------------------------------
  main
-------------------------------- */
.concept {
  display: grid;
  grid-template-columns: 50% 50%;
  grid-auto-flow: column;
  justify-content: left;
  margin-inline: auto;
  padding: 50px 0;
}
  .concept > img {
    width: 100%;
    height: auto;
    object-fit: cover;
  }
  .concept_copy {
    display: grid;
    place-content: center;
    padding-left: 20px;
    letter-spacing: 0.1em;
  }
    .concept_copy > h2 {
      font-size: 1.0rem;
      font-family: "Arial", sans-serif;
      font-weight: normal;
    }
    .concept_copy > h3 {
      margin: 20px 0;
      color: #b4756e;
      font-size: 2.0rem;
      font-weight: 600;
    }
    .concept_copy > p {
      line-height: 2.0;
    }

@media screen and (max-width: 767px) {
  .concept {
    display: block;
    padding: 20px 0;
  }
  .concept > img {
    margin-bottom: 20px;
  }
  .concept_copy > h3 {
    margin: 10px 0;
    color: #b4756e;
    font-size: 2.0rem;
    font-weight: 600;
  }
  .concept_copy > p {
    line-height: 1.6;
  }
}


/* ----------- blog ------------ */
.blog {
  padding: 0;
}
  .blog > ul {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
    column-gap: 2%;
    row-gap: 20px;
  }
  .blog h2 {
    position: relative;
    margin-bottom: 10px;
    padding: 40px 0;
    font-size: 1.0rem;
    font-family: "Arial", sans-serif;
    font-weight: normal;
    text-align: center;
    letter-spacing: 0.1em;
  }
    .blog h2::after {
      position: absolute;
      content: "ブログ";
      top: 60px;
      right: 0;
      bottom: 0;
      left: 0;
      color: #b4756e;
      font-size: 2.0rem;
      font-weight: 600;
    }
  .blog h3 {
    margin-block: 12px;
    font-size: 0.9375rem;
    line-height: 1.4;
  } 
  .blog p {
    font-size: 0.9375rem;
  }

@media screen and (max-width: 767px) {
  .blog h3 {
    margin-bottom: 8px;
    line-height: 1.2;
  } 
}


/* ------------ btn ------------- */
  .btn {
    margin-top: 40px;
    text-align: center;
  }
  .btn > a {
    position: relative;
    display: inline-block;
    margin-block: 40px;
    padding: 20px 80px;
    border: 1px solid #b4756e;
    color: #b4756e;
    text-align: center;
  }
  .btn > a::after {
    position: absolute;
    content: "▶";
    top: 22px;
    right: 16px;
    font-size: 0.5625rem;
  }

@media screen and (max-width: 767px) {
  .btn {
    margin-top: 0;
  }
}


/* --------------------------------
  footer
-------------------------------- */
.footer {
  padding: 30px 0;
  background-color: #000;
  color: #fff;
  text-align: center;
}
  .footer img {
    width: 180px;
    margin: 40px 0;
  }
  .footer small {
    font-size: 0.75rem;
  }

@media screen and (max-width: 767px) {
  .footer {
    padding: 20px 0;
  }
  .footer img {
    width: 120px;
    margin: 10px 0;
  }
}

index.html

<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>【コーディング練習】Flower Coffee</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=Noto+Sans+JP:wght@100..900&display=swap" rel="stylesheet">
<link rel="stylesheet" href="css/style.css">
</head>
<body>
<!-- header -->
<header class="header">
  <h1><img src="img/logo.png" alt="Sky Coffee"></h1>
  <div class="key_visual">
    <picture>
      <source media="(max-width: 600px)" srcset="img/sp_visual.webp">
      <img src="img/main-visual.webp" alt="">
    </picture>
  </div><!-- /.main_visual -->
  <nav class="gnav">
    <ul>
      <li><a href="#">menu</a></li>
      <li><a href="#">blog</a></li>
      <li><a href="#">access</a></li>
    </ul>
  </nav>
</header>
<!-- ▲ header -->

<!-- main -->
<main class="main">
  <div class="container">
    <!-- concept -->
    <section class="concept">
      <img src="img/concept.webp" alt="">
      <div class="concept_copy">
        <h2>Concept</h2>
        <h3>心静かにコーヒーを</h3>
        <p>立ち止まって、
          空の青さを眺めて、
          一息つきましょう。</p>
      </div><!-- /.concept_copy -->
    </section>
    <!-- blog -->
    <section class="blog">
      <h2>Blog</h2>
      <ul>
        <li>
          <a href="#">
            <img src="img/thumbnail01.webp" alt="青いトラック">
            <h3>よりすぐりのコーヒ豆を厳選して提供致します。</h3>
            <p><time datetime="2030-08-08">2030.08.08</time></p>
          </a>
        </li>
        <li>
          <a href="#">
            <img src="img/thumbnail02.webp" alt="牛乳">
            <h3>軽くて甘みがあるマカロンをどうぞ。</h3>
            <p><time datetime="2030-08-05">2030.08.05</time></p>
          </a>
        </li>
        <li>
          <a href="#">
            <img src="img/thumbnail03.webp" alt="音楽アプリ">
            <h3>コーヒーカップも販売しております。</h3>
            <p><time datetime="2030-08-02">2030.08.02</time></p>
          </a>
        </li>
        <li>
          <a href="#">
            <img src="img/thumbnail04.webp" alt="山々">
            <h3>プレゼント用のコーヒーを販売中です。</h3>
            <p><time datetime="2030-07-28">2030.07.28</time></p>
          </a>
        </li>
        <li>
          <a href="#">
            <img src="img/thumbnail05.webp" alt="青とピンクのグラデーション">
            <h3>カフェラテもお勧めです。</h3>
            <p><time datetime="2030-07-27">2030.07.27</time></p>
          </a>
        </li>
        <li>
          <a href="#">
            <img src="img/thumbnail06.webp" alt="コーヒーと手帳">
            <h3>ブログをはじめました。</h3>
            <p><time datetime="2030-07-26">2030.07.26</time></p>
          </a>
        </li>
      </ul>
      <p class="btn"><a href="#">ブログ一覧</a></p>
    </section>
  </div><!-- /.container -->
</main>
<!-- /main -->

<!-- footer -->
<footer class="footer">
  <img src="img/logo_white.png" alt="">
  <p><small>&copy; Flower Coffee</small></p>
</footer>
<!-- /footer -->
</body>
</html>

課題10 MyStyle

課題10 MyStyle 完成例

記述ポイント
  • 横並びを縦並びに変更するために、メディアクエリ内で「display: block;」を指定する
  • スマートフォンでのナビゲーションは、画面いっぱいに押しやすい状態に広げて設定
  • 文字を読みやすくサイズ変更

style.css

@charset "UTF-8";

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


/* -------------------------------------------
  body
------------------------------------------- */
body {
  background-color: #fff;
  color: #333;
  font-size: 1.0rem;
  font-family: "Josefin Slab", "Noto Sans JP", sans-serif;
  line-height: 1.0;
}


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


/* -------------------------------------------
  header
------------------------------------------- */
.header {
  display: flex;
  justify-content: center;
  align-items: center;
  width: 100%;
  height: 100vh;
  margin: 0 auto;
  background: url(../img/main.webp) no-repeat center top / cover;
  background-attachment: fixed;
  color: #fff;
  font-weight: 700;
  text-align: center;
}
.header > .container {
  width: 100%;
}
.text_block {
  width: 100%;
}
  h1 {
    width: 100%;
    margin-bottom: 30px;
    padding-top: 100px;
    font-size: 96px;
    border-bottom: 1px solid #fff;
  }
  h2 {
    position: relative;
    margin-bottom: 30px;
    padding-top: 60px;
    font-size: 6.0rem;
  }
    h2::before {
      content: '';
      position: absolute;
      top: 0;
      left: 50%;
      transform: translateX(-50%);
      display: block;
      width: 60px;
      height: 60px;
      background: url(../img/point.webp) no-repeat center center;
      background-size: contain;
    }

/* CTA */
.cta {
  margin-bottom: 60px;
  font-size: 1.75rem;
}
  .cta a {
    padding: 12px 60px 10px;
    border: 1px solid #fff;
    color: #fff;
  }
    .cta a:hover {
      background-color: rgba(255,255,255,0.6); 
    }

@media screen and (max-width: 767px) {
  .header {
    display: block;
    background: url(../img/main.webp) no-repeat 36% top / cover;
  }
    h1{
      width: 100%;
      margin-bottom: 0;
      padding-top: 40px;
      font-size: 2.6rem;
      border-bottom: 1px solid #fff;
      text-shadow: 0 0 6px #271811;
    }
    h2{
      font-size: 1.5rem;
    }
    .header p.cta {
      margin-bottom: 30px;
    }
    .header p.cta a{
      font-size: 1.5rem;
      color: #fff;
      border: 1px solid #fff;
      padding: 12px 9% 10px;
    }
    .header p.cta a:hover{
      background-color: rgba(255,255,255,0.6); 
    }
}


/* -------------------------------------------
  nav
------------------------------------------- */
.gnav{
  width: 100%;
  margin: 0 auto;
  position: fixed;
  top: 0;
  padding: 10px 20px;
  background-color: rgba(255, 255, 255, 0.6); 
}
  .gnav > ul {
    position: relative;
    display: flex;
    justify-content: center;
  }
    .gnav li {
        font-size: 24px;
        font-weight: 700;
      }
    .gnav a {
        display: block;
        padding: 10px 20px;
        color: #000;
        transition: .3s;
      }
      .gnav a:hover, .gnav a.current{
        background-color: rgba(115, 79, 67, 0.7);
        color: #fff;
      }

@media screen and (max-width: 767px) {
  .gnav {
    position: static;
    background-color: transparent;
  }
  .gnav >ul {
    display: block;
  }
  .gnav > ul a {
    display: block;
    padding: 16px 0;
    border-bottom: 1px solid #fff;
    color: #fff;
  }
  .gnav li:first-child a {
    border-top: 1px solid #fff;
  }
}


/* -------------------------------------------
  main
------------------------------------------- */
.main{
  padding: 100px 0 30px;
  background-color: #fff;
  color: #3D272B;
  text-align: center;
}
  .main h3 {
    margin-bottom: 30px;
    font-size: 2.25rem;
    font-weight: 700;
  }
    .main img {
      margin-bottom: 30px;
    }
    .main p{
      margin-bottom: 30px;
      padding: 0 4%;
      line-height: 1.7;
      text-align: left;
    }

@media screen and (max-width: 767px) {
  .main{
    padding: 40px 0 0;
  }
    .main h3 {
      margin-bottom: 20px;
      font-size: 1.5rem;
    }
    .main p{
      font-size: 0.9125rem;
    }
}

/* -------------------------------------------
  footer
------------------------------------------- */
.footer {
  padding: 24px 0;
  background-color: #3d272b;
  color: #fff;
  text-align: center;
}
  .footer small {
    font-size: 16px;
  }

index.html

<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>MyStyle</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=Josefin+Slab:ital,wght@0,100..700;1,100..700&family=Noto+Sans+JP:wght@100..900&display=swap" rel="stylesheet">
<link rel="stylesheet" href="css/style.css">
</head>
<body id="top">
<!-- header -->
<header class="header">
  <div class="container">
    <h1>Hero Header</h1>
    <p class="mark"><img src="img/point.png" alt=""></p>
    <h2>Welcome to MyStyle</h2>
    <p class="cta"><a href="#">Infomation</a></p>
  </div><!-- /.container -->
  <nav class="gnav">
    <ul>
      <li><a href="#" class="current">Home</a></li>
      <li><a href="#">About</a></li>
      <li><a href="#">Shop</a></li>
      <li><a href="#">News</a></li>
      <li><a href="#">Staff</a></li>
      <li><a href="#">Contact</a></li>
    </ul>
  </nav>
  </header>
<!-- /header -->

<!-- main -->
<main class="main">
  <div class="container">
    <h3>Hero Header Style</h3>
    <img src="img/sub.webp" alt="">
    <p>大きな背景を使用して、インパクトを与えるサイトに仕上がるヒーローヘッダー。<br>
    ランディングページなど注目を集めたいサイトにおすすめです。<br>ヒーローイメージで使用する写真は、サイトのイメージを端的に表すものを使用するよう、心がけましょう。</p>
    <ul>
      <li><img src="" alt=""></li>
    </ul>
  </div><!-- /.container -->
</main>
<!-- /main -->

<!-- footer -->
<footer class="footer">
  <p><small>&copy; Hero Header Style</small></p>
</footer>
<!-- /footer -->
</body>
</html>

課題09 The Web Design

課題09 The Web Design 完成例

記述ポイント
  • 横並びを縦並びに変更するために、メディアクエリ内で「display: block;」を指定する

style.css

@charset "UTF-8";

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


/* ------------------------------------------
  body
------------------------------------------ */
body {
  background-color: #666;
  color: #fff;
  font-size: 1.0rem;
  font-family: Arial, sans-serif;
  line-height: 1.0;
}
#top {
  width: 100%;
  height: 100vh;
  background-image: linear-gradient(25deg, 
  rgba(178, 5, 5, 0.6), 
  rgba(4, 160, 4, 0.6)), 
  url(../img/grass.webp);
  background-repeat: no-repeat;
  background-position: center center;
  background-size: cover;
}


/* ------------------------------------------
  layout
------------------------------------------ */
.container {
  display: flex;
  align-items: center;
}

@media screen and (max-width: 767px) {
  .container {
    display: block;
  }
}


/* ------------------------------------------
  header
------------------------------------------ */
.header {
  position: fixed;
  top: 0;
  width: 100%;
}
.container {
  width: min(92%, 960px);
  margin: auto;
  text-align: center;
}
.header h1 {
  padding-top: 2vh;
  margin: 0 auto 1.5vh 0;
  font-size: 3.6rem;
  font-family: 'Caveat', cursive;
}
.gnav ul {
  display: flex;
  justify-content: center;
  gap: 30px;
  }
  .gnav li {
    font-size: 1.2em;
  }
  .gnav a:hover {
    border-bottom: 2px solid #fff;
    padding-bottom: 2px;
  }


/* ------------------------------------------
  main
------------------------------------------ */
.main {
  display: flex;
  align-items: center;
  width: min(92%, 960px);
  height: 100vh;
  margin: 0 auto;
  text-align: center;
}
  a.prof {
    display: inline-block;
    margin: auto;
    padding: 10px 40px;
    border: 2px solid #fff;
    font-size: 1.125rem;
    font-weight: 600;
    text-align: center;
    letter-spacing: .08em;
  }
  a.prof:hover {
    background-color: rgba(189, 19, 19, 0.5);
  }


/* ------------------------------------------
  footer
------------------------------------------ */
.footer {
  position: fixed;
  bottom: 0;
  width: 100%;
  height: 50px;
  text-align: center;
}

index.html

<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width">
<title>The Web Design</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=Caveat:wght@400..700&display=swap" rel="stylesheet">
<link rel="stylesheet" href="css/style.css">
</head>
<body id="top">
<!-- .header -->
<header class="header">
  <div class="container">
    <h1>The Web Design</h1>
    <nav class="gnav">
    <ul>
      <li><a href="#">Portfolio</a></li>
      <li><a href="#">About</a></li>
      <li><a href="#">Contact</a></li>
    </ul>
    </nav>
  </div><!-- /.container -->
</header>
<!-- /.header -->

<!-- .main-content -->
<main class="main">
  <a href="#" class="prof">Portfolio</a>
</main>
<!-- /.main -->

<!-- .footer -->
<footer class="footer">
  <p><small>&copy The Web Design</small></p>
</footer>
<!-- /.footer -->
</body>
</html>