オブジェクト指向プログラミング言語における属性という言葉

先日要素という言葉の人間世界での意味とシステムの世界での意味の違いについて書きましたが、ツーと言えばカー(古い!)、要素と言えば属性でしょう。

「つうかあ」の語源にはいろんな説があるようですが、もっとも主流なのによると江戸っ子言葉の「つうことよ」の「つう」と、それに対する「そうかあ」の「かあ」を取って気心の知れた仲のことを「つうかあ」と言うようになったそうです。

PropertyとAssetとEstateの違い

人間世界でプロパティ(属性)という言葉は「土地・資産・所有物」という意味であり、世の中のすべてのオブジェクトは属性を持っています。

不動産という意味ではProperty以外にReal estateという言葉がありますが、Propertyの場合personal property(動産)とreal property(不動産)を含む一般的言葉であるのに対し、Real estateは法的に守られたestate(資産)全般という意味合いが強いです。

ちなみに近いところでasset(資産)という言葉がありますが、有形固定資産がFixed assetであるのに対し、無形固定資産はIntangible assetであり、前者は間接法でDepreciation(減価償却)され、後者は直接法でAmortization(なし崩し償却)されます。

HTML要素とCSSセレクタ

一方でシステムの世界の属性はオブジェクトが持つ「特徴・性質」という意味であり、HTML要素内の属性はDOMオブジェクトのプロパティに割り当てられ、CSSでセレクタというオブジェクトとして、プロパティと値を持っています。

セレクタはスタイルを適用する対象を示すものであり、中括弧の中にプロパティと値を宣言します。

そして要素とはHTMLの開始タグと終了タグで囲まれた意味のある単位であり、スタイルは要素に対して適用するときはHTMLタグをセレクタとして指定し、属性に対して適用するときは属性をセレクタとして記述します。

style属性とstyle要素

HTML文章はブラウザのDOMによって要素(エレメント)オブジェクト化され、要素が持つプロパティの値をJavaScriptで更新することでHTML文章上の表示が変化します。

CSSをインラインスタイルで書く場合、p要素オブジェクトの中のstyle属性に配列リテラルを代入しますが、style要素の中に書く場合にはp要素がCSSのセレクタ(Selector)となります。

インライン表記のstyle属性の場合はダブルコーテーションで囲むのがややこしいですが、これは昔HTMLタグにプロパティと値を指定するときにダブルコーテーションを使用したなごりではないでしょうか?

属性の値がカスケード状に影響するCSS

DOMによってhtmlタグはdocumentオブジェクト化されツリー上にオブジェクト化された要素が繋がっていきますが、オブジェクトに対するプロパティと値を完全分離し、プロパティと値の組み合わせを変化させることにより、オブジェクトを修正することなく見栄えだけを変えるのがCSSの本来の目的です。

レスポンシブデザインのWEBサイトがまさにこれなんですが、ツリー状のオブジェクトの上位に設定されたプロパティの値は下位のオブジェクトにも影響するのがカスケード(滝の流れ)の本質になります。

こんな投稿も読まれています