WebGPUを使うための「HTML5+CSS+JavaScript」の文法を学ぼう

2025年5月20日(火)
大西 武 (オオニシ タケシ)
第2回の今回は、WebGPUコンテンツを作る上で、最低限知っておくべきHTML5+CSS+JavaScriptの文法と、それを使った簡単なサンプルを解説します。

CSSの文法

CSSはカスケードスタイルシート(Cascading Style Sheets)の頭文字をとった略語で、HTML5文書のタグを装飾します。例えば<img>タグの「width」プロパティを500pxに指定すると、画像の幅を500pxのサイズに拡大縮小してセットします。

以前のCSSは装飾だけでプログラミング言語の部類には入らなかったのですが、最近では3Dアニメーションするような制御まででき、プログラミング言語に近いと言っても良いのではないでしょうか。またcalc関数で加減乗除の計算もできるためプログラミングに近いかもしれません。

CSSの書式

CSSはHTML5の「タグセレクタ」やタグのclass属性「.セレクタ」、id属性「#セレクタ」などのセレクタを指定し、その後に「{」と「}」で囲んだ中にプロパティとその値を指定することでセレクタを装飾します。具体的には、次の書式を参照してください。

・CSSの書式
セレクタ {
  プロパティ: 値;
  プロパティ: 値;
}

CSSを使った例

次のサンプルコード「css」→「main.css」(図3)は本連載で使う全ての装飾を含んでいるため、今回は使わないセレクタも含んでいます。今回使うタグなどのセレクタは「html」「body」「header」「h1」「nav」「a」「a:hover」「nav a」だけです。

・サンプルコード「css」→「main.css」
html,
body {
  font-family:Meiryo,"Hiragino Kaku Gothic Pro";
  min-height: 100%;
  height: 100%;
  margin: 0;
  padding: 0;
  position: relative;
  user-select: none;
}
header {
  overflow:hidden;
  width: 100%;
  margin: 0;
  padding: 0;
}
h1 {
  float: left;
  padding: 0;
  margin: 10px 0 0 0;
}
h2 {
  clear: both;
}
h3 {
  margin: 40px 0;
  padding: 40px 0;
}
nav {
  float: right;
  text-align: center;
}
footer {
  width: 100%;
  margin: 40px 0;
  padding: 0;
}
a {
  color: #000;
  text-decoration: underline;
}
a:hover {
  color: #fff;
  background-color: #000;
  text-decoration: none;
}
nav a {
  float: left;
  margin: 0;
  padding: 20px 10px;
  font-size: 80%;
  text-decoration: none;
  font-weight: bold;
  max-width: 100px;
}
#CanvasAnimation {
  position: -webkit-fixed;
  position: fixed;
  width: 100%;
  height: 100%;
  z-index: 0;
}
#container {
  position: relative;
  z-index: 1;
  padding: 0 10px;
}
ul {
  clear: both;
}
li {
  width: 100%;
  padding: 5px 0;
}
#space {
  clear: both;
  height: 300px;
}

図3:CSSでHTML5のタグを装飾したWebページ

【サンプルコードの解説】
「html」「body」タグでフォントを指定し、最小高さ、高さ、外余白、内余白、ポジション、ユーザー選択をセットします。
「header」タグでオーバーフロー、幅、外余白、内余白をセットします。
「h1」タグで横並べ、内余白、外余白をセットします。
「h2」タグで横並べをクリアします。
「h3」タグで外余白、内余白をセットします。
「nav」タグで横並べ、中央寄せをセットします。
「footer」タグで幅、外余白、内余白をセットします。
「a」タグで色、テキスト装飾をセットします。
「a:hover」セレクタで色、背景色、テキスト装飾をセットします。
「nav」タグ内の「a」タグで横並べ、外余白、内余白、フォントサイズ、テキスト装飾、フォントの太さ、最大幅をセットします。
id属性「#CanvasAnimation」セレクタでポジション、幅、高さ、奥の重なり順をセットします。
id属性「#container」セレクタでポジション、奥の重なり順、内余白をセットします。
「ul」タグで横並べをクリアします。
「li」タグで幅、内余白をセットします。
「#space」セレクタで横並べをクリアし、高さをセットします。

著者
大西 武 (オオニシ タケシ)
1975年香川県生まれ。大阪大学経済学部経営学科中退。プログラミング入門書など30冊以上を商業出版する作家。Microsoftで大賞やNTTドコモでグランプリなど20回以上全国区のコンテストに入賞するアーティスト。オリジナルの間違い探し「3Dクイズ」が全国放送のTVで約10回出題。
https://profile.vixar.jp

連載バックナンバー

開発言語技術解説
第2回

WebGPUを使うための「HTML5+CSS+JavaScript」の文法を学ぼう

2025/5/20
第2回の今回は、WebGPUコンテンツを作る上で、最低限知っておくべきHTML5+CSS+JavaScriptの文法と、それを使った簡単なサンプルを解説します。
開発言語技術解説
第1回

「WebGPU」の基礎と3DCG開発のはじめかた

2025/4/25
第1回の今回は、WebGPUと3DCGの基礎知識と、開発環境の準備、JavaScriptによるプログラミングの基本について解説します。

Think ITメルマガ会員登録受付中

Think ITでは、技術情報が詰まったメールマガジン「Think IT Weekly」の配信サービスを提供しています。メルマガ会員登録を済ませれば、メルマガだけでなく、さまざまな限定特典を入手できるようになります。

Think ITメルマガ会員のサービス内容を見る

他にもこの記事が読まれています