Webエンジニア向けプログラミング解説動画をYouTubeで配信中!
▶ チャンネル登録はこちら

【ITニュース解説】Untitled

2025年10月02日に「Dev.to」が公開したITニュース「Untitled」について初心者にもわかりやすく解説しています。

作成日: 更新日:

ITニュース概要

開発者が自身で作成したプログラムのデモを公開し、閲覧を呼びかけている。

出典: Untitled | Dev.to公開日:

ITニュース解説

このCodePenで示されている内容は、Webページがどのように構成され、どのような動きを作り出すことができるのかを具体的に理解するための良いサンプルだ。システムエンジニアを目指す上で、Web技術の基本は非常に重要となるため、このコードを紐解くことで、基礎的な知識を深めることができる。

まず、Webページは主に三つの要素、HTML、CSS、JavaScriptによって成り立っている。HTMLはページの骨格や内容を定義し、CSSはその見た目を整え、JavaScriptはページに動きやインタラクティブな機能を追加する役割を担っている。このCodePenでも、これら三つの技術がそれぞれ明確な役割を持って連携している様子が確認できる。

HTMLは、このページの構造を定義している部分だ。具体的には、divというタグがたくさん使われ、それぞれが「箱」のような役割を果たしている。これらのdiv要素はcontainerという親要素の中に配置されており、それぞれにboxというクラスが付与されている。クラスとは、同じスタイルや振る舞いを共有する要素のグループを指定するための目印のようなものだ。また、それぞれのboxの中には「1」から「25」までの数字がテキストとして格納されている。これは、単に内容を示すだけでなく、後述するJavaScriptでこれらの内容を操作するための対象となる。さらに、ページの最後には二つのbutton要素が配置されている。これらはそれぞれ「Shuffle」と「Reset」というテキストを持っており、クリックすることでページに特定の動作を引き起こすためのトリガーとなる。このように、HTMLはWebページに表示されるすべてのコンテンツと、そのコンテンツがどのように配置されるかの基本的な構造を記述する。

次に、CSSは、HTMLで定義されたコンテンツの見た目を整える部分だ。このCodePenでは、まず全体の背景色や文字の基本的なフォントサイズ、色などが設定されている。特に注目すべきは、container要素にdisplay: grid;というスタイルが適用されている点だ。これは「CSS Grid」と呼ばれるレイアウト機能で、要素を列と行に分割されたグリッド状に配置することを可能にする。ここではgrid-template-columns: repeat(5, 1fr);という指定により、幅を均等に分割した5列のグリッドが作成されている。これにより、25個のbox要素が5行5列の整然としたグリッド状に並んで表示される。それぞれのbox要素には、背景色、文字色、中央揃え、角丸、余白などが指定されており、見た目を美しく整えている。さらに重要なのが、.box.activeというセレクタだ。これは、boxクラスとactiveクラスの両方を持つ要素に対して適用されるスタイルを定義している。このactiveクラスが要素に追加されると、背景色が別の色に変わり、要素の見た目が変化する。この変化はtransitionプロパティによって滑らかにアニメーションするよう設定されており、ユーザーがクリックしたときに視覚的に分かりやすいフィードバックを提供している。CSSは、このようにHTMLの骨格に色や形、配置といったデザインを施し、ユーザーにとって見やすく、使いやすいインターフェースを作り出す。

そして、JavaScriptは、このWebページに動きやインタラクティブな機能を追加する、最も動的な部分だ。システムエンジニアにとって、JavaScriptの理解はWebアプリケーション開発の肝となる。 このコードでは、まずすべてのbox要素と、二つのbutton要素がJavaScriptコードから操作できるように取得されている。 一つ目の機能は、box要素のクリックイベントだ。それぞれのboxがクリックされると、そのboxactiveクラスが付与されたり、削除されたりする。これはclassList.toggle('active')というメソッドを使って実現されており、対象の要素に指定のクラスがあれば削除し、なければ追加するという便利な機能だ。これにより、ユーザーは各boxをクリックして色を切り替えられる。 二つ目の機能は、「Shuffle」ボタンのクリックイベントだ。このボタンがクリックされると、すべてのboxに表示されている数字(textContent)がランダムに並べ替えられる。このシャッフル処理にはshuffleArrayという関数が使われており、これは配列の要素をランダムに並べ替える一般的なアルゴリズム(Fisher-Yatesシャッフルに似た方式)を実装している。具体的には、配列の末尾から先頭に向かって順番に要素を取り出し、残りの要素の中からランダムな位置にある要素と入れ替える、という操作を繰り返すことで、効率的かつ公平にシャッフルを行う。このアルゴリズムは、カードゲームのデッキをシャッフルするような場面でよく用いられる。JavaScriptは、このようにデータの配列を操作したり、ランダムな処理を組み込んだりすることで、より複雑なロジックをWebページに組み込むことが可能になる。 三つ目の機能は、「Reset」ボタンのクリックイベントだ。このボタンがクリックされると、すべてのboxに表示されている数字が元の順番(1から25)に戻され、さらにすべてのboxからactiveクラスが削除される。これにより、ページが初期状態にリセットされる。 これらのJavaScriptのコードは、ユーザーのアクション(クリック)をトリガーにして、HTML要素の見た目を変更したり、コンテンツ(数字)を動的に操作したり、複数の要素の状態を一括でリセットしたりといった、さまざまな動的な挙動を実現している。

このように、HTMLがコンテンツの構造を提供し、CSSがその見た目をデザインし、JavaScriptがそれらに動的な振る舞いやインタラクティブな機能を追加することで、私たちはWebページをより魅力的で使いやすいものに作り上げることができる。システムエンジニアとしてWebアプリケーションを開発する際には、これらの技術をそれぞれ適切に使い分け、連携させることが不可欠となる。このCodePenは、それぞれの技術の役割と連携の基本を理解するための非常に良い出発点であり、実際に手を動かしてコードを変更してみることで、さらに深い理解を得られるだろう。Web技術の学習は、これら三つの要素の役割と相互作用を把握することから始まる。

関連コンテンツ