【ITニュース解説】Untitled
2025年10月01日に「Dev.to」が公開したITニュース「Untitled」について初心者にもわかりやすく解説しています。
ITニュース概要
Webブラウザ上で動作するプログラミング作品『Pen』が公開された。著者が作成したこのPenは、Web技術の具体的な実装例やアイデアを体験できる。
ITニュース解説
ウェブページ上の要素を、ユーザーの操作に応じて動的に変化させる仕組みは、現代のウェブサイトやウェブアプリケーションにとって不可欠な機能である。今回示されたデモは、この基本的なインタラクティブ性を実現するためのシンプルな例であり、HTML、CSS、JavaScriptというウェブ開発の三大要素がどのように連携して動作するかを理解するのに役立つ。このデモは、具体的には、画面の左側に複数のボタン、右側にそれぞれのボタンに対応する複数の画像を配置し、ユーザーがボタンをクリックするたびに表示される画像を切り替えるという機能を実現している。
まず、ウェブページの骨格を作るHTMLの役割について解説する。このデモでは、ページ全体を囲むコンテナ要素があり、その中に大きく分けて二つの領域がある。一つは画面の左側に配置されるナビゲーションバーで、ここに五つのボタンが並んでいる。もう一つは画面の右側に配置されるコンテンツバーで、ここに五つの画像が用意されている。それぞれの画像は異なる内容を持ち、初期状態では表示されていない。HTMLの段階では、これらのボタンと画像は単に要素としてページ上に存在しているだけで、どのボタンがどの画像に対応するか、どのように表示・非表示を切り替えるかといったロジックは含まれていない。重要な点は、ユーザーに表示される可能性のある全ての画像が、最初からHTMLの中に<img>タグとして存在していることである。それぞれの画像には、固有のIDが割り振られており、後でJavaScriptから個別にアクセスできるようになっている。
次に、ウェブページの見た目を整えるCSSの役割について説明する。CSSは、HTMLで定義された要素がどのように画面に表示されるかを指定する。このデモでは、ページ全体の背景色やフォントの設定から始まり、コンテナ要素をFlexboxというレイアウト方式を使って左右に分割し、ナビゲーションバーとコンテンツバーを横並びに配置している。ナビゲーションバー内のボタンは、特定のデザインが適用され、縦方向に均等に並ぶように調整されている。コンテンツバーに配置された画像は、初期状態ではdisplay: none;というCSSプロパティが適用されており、これによりページが読み込まれた時点では全ての画像が非表示になっている。しかし、画像がアクティブになったときに適用されるactiveというクラスがCSSで定義されており、このクラスが画像に付与されると、display: block;に変更されて画像が表示されるようになる。このように、CSSは要素の配置、色、サイズ、そして表示・非表示の切り替えといった視覚的な側面を管理している。
最後に、ウェブページに動きとインタラクティブ性をもたらすJavaScriptの役割について詳しく見ていく。JavaScriptは、ユーザーの操作に応じてHTML要素を動的に変更したり、CSSプロパティを切り替えたりする主要な役割を担う。このデモのJavaScriptコードは、まずHTMLドキュメント内の全ての画像要素と全てのボタン要素を取得するところから始まる。これにより、JavaScriptから個々の要素を操作できるようになる。次に、取得したそれぞれのボタンに対して、クリックされたときに特定の処理を実行するためのイベントリスナーを設定する。
ユーザーがボタンをクリックすると、以下の処理が順に実行される。まず、クリックされたボタンが何番目のボタンであるかを識別する。これは、例えば最初のボタンがクリックされたら1番目の画像、2番目のボタンがクリックされたら2番目の画像を表示するためである。次に、現在表示されている可能性のある全ての画像に対して、CSSのactiveクラスを削除する処理を行う。これにより、全ての画像が一時的に非表示の状態に戻される。最後に、クリックされたボタンのインデックスに対応する画像に対して、CSSのactiveクラスを追加する。この操作により、CSSで定義されたactiveクラスのスタイルが適用され、該当する画像がdisplay: block;となって画面に表示される。
このように、このデモは、HTMLで構造を定義し、CSSで見た目を整え、JavaScriptでユーザーの操作に応じた動的な振る舞いを実装するという、ウェブ開発における基本的な連携を示している。ユーザーがボタンをクリックするというシンプルな操作に対し、JavaScriptがそのイベントを検知し、適切なHTML要素のCSSクラスを操作することで、ページのコンテンツが瞬時に切り替わるインタラクティブな体験が実現される。この仕組みは、より複雑なウェブアプリケーションにおいても、要素の表示・非表示、コンテンツの切り替え、アニメーションなど、あらゆる動的な挙動の基礎となる概念である。システムエンジニアを目指す上で、このようなHTML、CSS、JavaScriptの連携による動的なウェブページの構築は、避けては通れない基本的な知識となるだろう。