0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

サイト模写を通じたWeb開発学習: CSS, HTML, JavaScriptの活用法

Last updated at Posted at 2024-09-16

Web開発の基礎技術であるCSS、HTML、JavaScriptを使い、実際に既存のサイトを模写する学習に挑戦しました。この記事では、その学習プロセスを要約し、特にIDやクラスの使用、スタイルの適用、そしてJavaScriptによる動的な機能の追加に焦点を当てています。

HTMLの基礎

HTMLはウェブページの骨組みを構築するための言語です。HTMLを書く際には、<div><header>、**<nav>**などのタグを使用して、ページの構造を定義します。模写したサイトでは、ハンバーガーメニューを含むレイアウトが特徴でした。以下はその基本的なHTML構造です。

<!DOCTYPE html>
<html lang="ja">

<head>
  <meta charset="UTF-8">
  <title>サイト名</title>
  <link rel="stylesheet" href="style.css">
</head>

<body>
  <header>
    <nav>
      <div id="hamburger-menu">
        <span></span>
        <span></span>
        <span></span>
      </div>
      <ul>
        <li><a href="#">ホーム</a></li>
        <li><a href="#">サービス</a></li>
        <li><a href="#">コンタクト</a></li>
      </ul>
    </nav>
  </header>
  <!-- 本文やその他の要素 -->
  <script src="script.js"></script>
</body>

</html>

CSSでの装飾

CSSを用いることで、HTMLで定義したウェブページの見た目を装飾できます。IDやクラスを利用することで、特定のHTML要素をターゲットにし、それらにスタイルを適用することが可能です。例えば、ハンバーガーメニューとその項目にスタイルを適用するCSSは以下のようになります。

#hamburger-menu {
    cursor: pointer;
    position: absolute; /* メニューをページの左上に配置 */
    top: 0;
    left: 0;
    width: 50px; /* 正方形のサイズを指定 */
    height: 50px;
    display: flex;
    flex-direction: column;
    justify-content: center; /* 中の線(span要素)を中央に配置 */
    align-items: center; /* 中央寄せ */
}

#hamburger-menu span {
    display: block;
    width: 30px; /* 線の幅を指定 */
    height: 3px;
    margin: 2px 0; /* 上下の線の間隔 */
    background-color: #333;
}

nav ul {
    list-style: none;
}

nav li {
    padding: 10px;
}

JavaScriptで動的なサイトを作る

JavaScriptを使用すると、ウェブサイトにインタラクティブな機能を追加できます。下記では、ハンバーガーメニューをクリックするとメニュー項目が表示される動きを実装しました。以下のJavaScriptコードは、ハンバーガーメニューのクリックイベントに応じて、メニュー項目の表示・非表示を切り替える機能を示しています。

// ハンバーガーメニューの要素を取得
let hamburgerMenu = document.getElementById('hamburger-menu');

// ハンバーガーメニューがクリックされたときに実行される関数を設定
hamburgerMenu.addEventListener('click', function() {
    // ナビゲーションメニューの要素を取得します。
    let menu = document.querySelector('nav ul');
    
    // メニューが現在表示されているかどうかをチェック
    if (menu.style.display === 'block') {
        // もしメニューが表示されていれば、それを非表示にする
        menu.style.display = 'none';
    } else {
        // もしメニューが非表示なら、それを表示
        menu.style.display = 'block';
    }
});

ステップ1: HTML要素を選択する

まず、JavaScriptを使用して操作するHTML要素を選択する必要があります。この例では、**id属性がhamburger-menuであるハンバーガーメニューのdivタグと、メニュー項目を囲むul**タグを操作します。

let hamburgerMenu = document.getElementById('hamburger-menu');
let menu = document.querySelector('nav ul');

ステップ2: イベントリスナーを追加する

次に、ハンバーガーメニューがクリックされたときに動作するイベントリスナーを追加します。**addEventListener**メソッドを使用して、クリックイベントに対する関数を設定します。

hamburgerMenu.addEventListener('click', function() {
    // ここにクリック時の処理を記述
});

ステップ3: 条件に応じてメニューの表示・非表示を切り替える

イベントリスナー内で、メニュー項目が現在表示されているかどうかを判定し、その状態に応じて表示または非表示を切り替えます。style.displayプロパティを使用して、ulタグの表示状態を'block'(表示)または**'none'**(非表示)に設定します。

hamburgerMenu.addEventListener('click', function() {
    if(menu.style.display === 'block') {
        menu.style.display = 'none';
    } else {
        menu.style.display = 'block';
    }
});

このコードは、ハンバーガーメニューをクリックするたびに、menuulタグ)の表示状態を切り替えます。もしmenuが表示されている(style.display'block')場合は、それを非表示に('none')します。そうでなければ、表示('block')にします。

まとめ

JavaScriptを用いることで、ウェブサイトに対してユーザーのインタラクションに応じた動的な変更を加えることが可能です。上記の通り、基本的なイベントの扱い方、条件分岐、そしてDOM(Document Object Model)の操作方法を学びました。これらの知識を用いて、さらに複雑な機能を実装するしていきたいと思います。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?