IKECODE
- formの練習
unsplash.com
unsplash.com
unsplash.com
unsplash.com
unsplash.com
unsplash.com
unsplash.com
unsplash.com
unsplash.com
unsplash.com
テキスト
IKECODE ABOUT WORKS NEWS CONTACT About IKECODE株式会社 Web制作会社として設立 Webサイト・アプリ開発を承ります メールアドレス:ikecode@sample.com Webサイト制作やアプリ開発を得意としています。また、新人の育成をしたい企業も募集しております。 Works work1 work2 work3 work4 work5 work6 work7 work8 work9 News 2024/10/23 YouTubeチャンネルを開始しました。【チャンネル登録】よろしくお願いいたします。 2024/8/19 新しい記事の更新をしました。 2024/4/4 新しい記事の更新をしました。 2024/2/17 IKECODEが、Webサイトを公開しました。 Contact お問い合わせは以下のフォームから お名前 田中 景子 メールアドレス tanaka@gmail.com 内容 お問合せ内容をお書きください。 © IKECODE
作成のポイント
Google Fonts
min()関数
- 最小値を基準とする
- min()関数を選定すると、ブラウザは値(92%, 960px)の中で最も小さい値を選択
- つまりスマートフォンでの最小値は「92%」、PCでの最小値は「960px」が適用されます
「width」と「margin: auto」はセットで記述
- 「h1」と「nav」の関係
- 「h1」は、文字サイズに合わせて幅が変更可能な値にする「width: fit-content;」
repeat()関数
- 同じ幅を繰り返して並べる「カード型レイアウト」では、「display: grid;」を設定する
- 「grid-template-column」プロパティは、gridレイアウトで横方向に何個並べるかを指定する
- 「repeat()」関数はcssのGridレイアウトにおいて、値の繰り返しを表します
- 「auto-fit」は、横幅に入るだけ配置するという意味
- カードのレイアウトの幅を、「minmax(最小値, 最大値);」で指定する
文字幅の単位
- ◯文字分で設定する
- 1文字の単位は「rem(root + em)」≒ 16px
子要素の指定
完成例
<!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="work7"></li> <li><img src="img/works8.webp" alt="work8"></li> <li><img src="img/works9.webp" alt="work9"></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>© IKECODE</small></p> </footer> <!-- /footer --> </body> </html>
@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; } /* ---------------------------------------- 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; } /* ---------------------------------------- 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; } /* ---------------------------------------- works ---------------------------------------- */ #works ul { display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: 20px; } #works ul li { width: 100%; } /* ---------------------------------------- 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; } /* ---------------------------------------- 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; } /* ---------------------------------------- footer ---------------------------------------- */ .footer { padding: 0 0 20px; } .footer p { font-size: 14px; text-align: center; }