クラス名のネーミングはどうすれば分かりやすいか

このQ&Aのポイント
  • クラス名を適切に付けることで、スタイルシートの宣言部分を確認せずにどんな動きをするのかを理解できます。
  • 一般的には動作と関係のないクラス名が使われますが、その理由はわかりにくくなる人が多いためです。
  • わかりやすいクラス名を付けることで、他の人がコードを読む際にも混乱を避けることができます。
回答を見る
  • ベストアンサー

クラス名のネーミング

スタイルシートでクラス名を宣言してbody内で使う場合は、 クラス名だけ見てどんな動きをするのかわからなくなってしまわないですか? 例えば、 <HTML> <HEAD> <TITLE></TITLE> <STYLE type="text/css"> <!-- BODY .pe { font-size: 200% } --> </STYLE> </HEAD> <BODY> <SPAN class="pe">test</SPAN><Br> </BODY> </HTML> の時、ソースを見たときに、「<SPAN class="pe">って何を宣言してるんだっけな?」と分からなくなり、いちいちスタイルシートの宣言部分を確認しに行っています。 なので、どんな動きをするかわかりやすいクラス名をつけたいのですが、 (例 pe  → font-size) ネットでサンプルコードを見ていると、皆動作とは関係ないクラス名をつけてますよね。 わけわかんなくなんないのでしょうか? こんがらがるのは私だけなのでしょうか?

  • HTML
  • 回答数3
  • ありがとう数3

質問者が選んだベストアンサー

  • ベストアンサー
  • ORUKA1951
  • ベストアンサー率45% (5062/11036)
回答No.3

No.2です。読み返してみるとわかりにくいかもしれないので、HTML5的に説明しましょう。 <body>!-- HTML4.01の場合は、それぞれが<div class="header">になります。  <header>略</header>  <section>   <h2>HTML 4による文書の著述</h2>   <p>本仕様は、HTML 4で作業を行う著者並びに実装者に対し、次の一般原則に従うよう推奨する。</p>   <section>    <h3>構造とプレゼンテーションの分離</h3>    <p>     <abbr title="Hyper Text Markup Language">HTML</abbr>は、常に構造的マーク付けを規定するところの<abbr title="Standard Generalized Markup Language">SGML</abbr>をルーツに持っている。<abbr title="Hyper Text Markup Language">HTML</abbr>の性質上、プレゼンテーションに関する要素や属性は、次々と他の機構、とりわけ<a href="http://www.asahi-net.or.jp/%7Esd5a-ucd/rec-html401j/present/styles.html">スタイルシート</a>に置換えられていく。 また、<em>文書の構造をプレゼンテーションと<strong>切り離すことで</strong>広汎なプラットフォームや多様なメディアでの文書提供コストを低下でき、文書の改訂も容易になるということが、経験的に知られている。</em>    </p>   </section>   <section>    <h3>広汎なWebアクセス性の考慮 </h3>    <p>     ・・・【中略】・・・    </p>   </section>  </section>  <footer>略</footer> </body> >スタイルシートでクラス名を宣言してbody内で使う場合は、クラス名だけ見てどんな動き--プレゼンテーション?---をするのかわからなくなってしまわないですか?  No.1さんが言われるように、そもそも順番が逆なのです。HTMLに必要なことは、上記のように徹底的に文書構造だけをマークアップするのです。  だから、HTMLの段階ではどのようにプレゼンテーションするかは、まったくわからないのです。               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^  なぜなら、どのようにプレゼンテーションするかのためにマークアップするのではないからです。  一方のスタイルシートは、その文書構造を元に指定していくのです。 [例] section p{text-indent:1em;margin:0 1em;line-height:1.6em;} section p abbr{font-weight:bold;}  スタイルシートを見るだけで、どのようにデザインされているかがわかります。 ★面白い例を見つけたので  ⇒ナビゲーションリストを様々にデザインしてみよう。( http://www.ichiya.com/WebService/Howto/sample/HTML/nav/navigation1.html )  1) まず、HTMLのソースを見る--極めてシンプル  2) 印刷プレビューで印刷したらどうなるかを確認  3) ブラウザの表示メニューのスタイルで、沢山あるスタイルのどれかを選択してみる。 ・文書構造とプレゼンテーションを分ける ・HTMLを見たってプレゼンテーションはわからない。わかるほうがおかしい。 が理解できますよね。

OHWIMRMJUPMK
質問者

お礼

ありがとうございました。

その他の回答 (2)

  • ORUKA1951
  • ベストアンサー率45% (5062/11036)
回答No.2

 1度仕様書を通して読んで置かれると良いです。はじめはチンプンカンプンでも、とにかく目を通すこと。 <HTML> ではなく <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"> <html lang="ja"> <head> と書き始める。 「HTML文書を作る場合には、この仕様における、他のDTDセットではなく strict DTD に適合する文書を作るよう推奨する。」 「DIV要素とSPAN要素は、id属性及び class属性と併用することで、文書に構造を付加するための一般機構を提供する。( http://www.asahi-net.or.jp/%7Esd5a-ucd/rec-html401j/struct/global.html#h-7.5.4 )」  ですから >「<SPAN class="pe">って何を宣言してるんだっけな?」と分からなくなり  と言うことはありえないのですよ。  なぜなら、 ・HTMLは、その文書を読み解き、その文書を構成する要素(Element)に分解し、それぞれの要素をタグでマークアップしていくのです。  <h1></h1>で囲まれていれば、その部分が見出し(heading)要素だとわかります。  <strong></strong>だと重要なのだな・・ ・それらでは表しきれないときにDIVやSPANをidやclass名をつけてマークアップします。  <div class="header"></div>見出しのセクションだなとわかります。  <div class="figure"></div>ああ、挿絵だな  <span class="mark"></span>ああ、他所から参照されるテキストだな とね。  その上で、スタイルシートを div.section p span.mark{text-decoration:underline;color:green;} とか書くのですから、わからなくなるわけありません。もしわからなくなるのでしたら、class名のつけ方がおかしいといわざるを得ません。  ところが現実には、「文書構造を補完するため」ではなく「デザインのために」適当なclass名やidが使われてきたのです。--そのようなサイトは参考にしないほうが良い--  その反省からHTML5では、「文書をよりよく構造化するために、新しい要素が追加されました」  実際にどのようなclass名がよいかは、HTML5の「3.1. 新しい要素( http://standards.mitsue.co.jp/resources/w3c/TR/html5-diff/#new-elements )」が参考になるでしょう。上記のmarkは、そのひとつです。 >皆動作とは関係ないクラス名をつけてますよね。  動作がプレゼンテーションを意味し、文書構造を意味するのでしたら、それが正しいのです。 [例] <span class="red">ここはメモしておこう</span>   span.red{color:red;} <span class="message">ここはメモしておこう</span>   span.message{color:red;}  明らかに、下が正しいですね。先で背景をマゼンタにしたので、この色を青くしようとしたら   span.red{color:aqua;}   span.message{color:aqua;} ・・・ ※<font color="red">じゃまずい(非推奨)から<span class="red">にしたのと変わりません。意味ないですね。<strong>,<em>,<abbr>,<code>,<dfn>,<samp>,<kbd>,<cite>など( http://www.asahi-net.or.jp/~sd5a-ucd/rec-html401j/struct/text.html#h-9.2.1 )を探して、適当なものがなければ、最後の手段として<span>とclass名やidを組み合わせてマークアップするのです。  後でデザインを変更するのもとっても楽になります。 div.section div.nav{position:absolute;left:0;width:20%;} と本文(section)中のナビゲーションを左においていたけど  右にしたり、div.section div.nav{position:absolute;right:0;width:20%;}  下に置いたり、div.section div.nav{position:absolute;bottom:0;width:100%;}  消したり、div.section div.nav{display:none;} 自由自在・・に、もしこれを <div class="leftMenue">なんてしていたら・・・(^^)  

OHWIMRMJUPMK
質問者

お礼

ありがとうございました。

  • kmee
  • ベストアンサー率55% (1857/3366)
回答No.1

考え方が逆のような気がします。 クラスは、タグに意味を追加するものであって、CSSで書式を変えられるのは、副次的なものだと思います。 「fontを2倍に大きくする」クラスを作って「peと名付ける」 のではなく 「『同じ種類』と考えられる部分を クラスpeと名付け」て、「peクラスは文字を倍の大きさにする」 という考え方 だから、動作を意味する名前ではなく、「種類、性質」を表わすような(広告、とか、ヘッダ/フッタとか)名前を付けます。 あとは、入門サイトで説明用に、とりあえず区別さえ付けばいいと、適当に付けてるとか プログラムで自動生成されたものだとか。

OHWIMRMJUPMK
質問者

お礼

ありがとうございました。

関連するQ&A

  • スタイルシートで指定した大きさにならない・・・

    スタイルシートにチャレンジしているのですが、 文字の大きさが指定したとおりになりません。 以下のようにした場合、 BODYの文字を12PXにしているのですが、 14PXの文字の方が大きく見えてしまいます。 ---------------------------------------------- <HTML> <HEAD> <TITLE>CCS勉強</TITLE> <STYLE type="text/css"> <!-- BODY{ font-size : 12pt; } .16 { font-size: 16px ; } /* 16 */ .14 { font-size: 14px ; } /* 14px */ .10 { font-size: 10px ; } /* 10px */ --> </STYLE> </HEAD> <BODY><SPAN class="16">16pxの文字</SPAN> <BR> <SPAN class="14">14pxの文字</SPAN><BR> <SPAN class="10">10pxの文字</SPAN> <P>BODYのもじ12px</P> </BODY> </HTML> ---------------------------------------------- 初心者なのでどこが間違っているのかよく分からず 困っていますので、ご存知の方がおられましたらよろしくお願いします。

  • DreamWeaverで</head>の前のスタイルタグを使わない設定

    DreamWeaverで、既にリンクして使うスタイルシートを使用しているので、それ以外の属性は、HTMLのタグ内に記述したいのですが、DreamWeaverは、ごく些細な文字の大きさのような属性でも、</head>の前のスタイルタグの中で、その属性を指定してしまいます。 これを、</head>の前のスタイルタグの中ではなく、HTML本文のそれぞれのタグ内で普通に指定するには、どこの設定画面の何を設定したらよいのでしょうか? 具体的には、文字の大きさだけでも、 <style type="text/css"> <!-- .style2 {font-size: 36px} --> </style> </head> <body> <span class="style2">文字</span> とDreamWeaverはしてしまうので、これを </head> <body> <font size="7">文字</font> ないし、 </head> <body> <span style="font-size:36px;">文字</span> など、指定の方法はどうでも良いので、HTML内でDreamWeaverに指定して欲しいのです。 もう、別に記述したい事項はスタイルシートをリンクしているので…。

    • ベストアンサー
    • HTML
  • スタイルシートでのセンタリングについて。

    スタイルシートでセンタリングをしたいのですが、できなくて困っています。 以下のような場合に、センタリングをしようと思い「text-align:center;」を追加しましたがセンタリングされません。 どうしたらセンタリングできるでしょうか? ソース ------------------------------------ <html> <head> <title></title> <style type="text/css"> <!-- .test{ font-size: 10pt; font-family: MS 明朝; margin: 1px; padding: 1% 10%; border: outset 1px #EEDDFF; } --> </style> </head> <body> <span class=test>○○○○○</span> </body> </html>

    • ベストアンサー
    • HTML
  • 外部のスタイルシートが働かない

    HTML文書に外部からのスタイルシートを持って来て使いたいのですが、全く働きません。 スタイルシートは次のようなもので、"mystyle.css" としてHTMLと同じフォルダーに入れてあります。 <style> body{ background-color:gray; color:black; } .title{ font-size:14pt; color:blue; } a{ color:yellow; } .prompt{ color:pink; } </style> そしてHTML内では <link rel="stylesheet" href="mystyle.css">  としてリンクさせています。 <body> も <a>も class="title" としてクラス名を付けたものも、全く影響されていません。 何処がおかしいのか、詳しい方、ぜひ教えてください。お願いします。 ちなみに、このスタイル部分をHTMLの<head>内に貼り付けると期待通りになります。

    • ベストアンサー
    • HTML
  • DreamWeaverMXでスタイルシートを使わない方法

    DreamWeaverMXを使用しています。 文字に色をつけたり大きさを変えたりするときに、自動的にスタイルシートでタグが入力されてしまいます。 例えば赤文字にしたときに <font color="red">赤い文字</font> こうしたいのに <head> <style type="text/css"> <!-- .style1 {color: #FF0000} --> </style> </head> <body> <span class="style1">赤い文字</span> </body> こういうタグが入ってしまいます。 これをHTMLだけのタグがはいるようにしたいのですが、そういう設定方法はないでしょうか? ご存知の方がいましたらよろしくお願いします。

  • 携帯でスタイルシートが利用できますか?

    携帯電話で見れるホームページで文字サイズの指定をしたいと思っております html言語で<font size="7">フォントサイズを指定したい</font>とすれば文字サイズが変更できるのですが スタイルシートを利用して下記のように記述すると フォントサイズが変更されません。携帯ではスタイルシート利用できないのでしょうか?詳しい方お教えください。 <style type="text/css"> .large {font-size:large} .small {font-size:small} </style> <body> スタイルシートで<span class="large">フォントサイズを指定したい</span> </body>

    • ベストアンサー
    • HTML
  • タイトルに太枠を付けるために

    <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <HTML> <HEAD> <style type="text/css"> <!-- .title { background-color:lightyellow; font-size:24px; font-weight:bold; margin-top:20px; margin-left:50px; margin-bottom:20px; margin-right:50px; border-color:blue; border-style:solid; border-width:5px; } --> </style> </HEAD> <BODY> <span class=title> 大石倉之助 </span> </BODY> </HTML> としたのですが 「大石倉之助」 に左右の太枠はつくのですが上下の太枠がつきません どうしたら上下にも太枠がつくのでしょうか?

    • ベストアンサー
    • HTML
  • CSSが反映されない… 初心者です。

    <html> <head> <title>タイトル</title> <meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS"> <style type="text/css"> <!-- .f1{ font-family: "book antique"; font-size: 10px; } --> </head> <body> <span class="f1">本文</span> </body> </html> という簡単な指定をしてみたのですが、実際には何も書かれていない真っ白な画面になり、スタイルシートが反映されないです。 ブラウザが悪いのかと思いFirefoxとIEで試したのですが、やはり真っ白な画面になってしまいます…。 他のサイトのCSSを含んだソースをコピーして試したところ、問題なく反映できるのでブラウザのせいではないと思うのですが、自分で書いた書き方では反映されないので、やはり書き方に問題があるのでしょうか? geocitiesを利用しております。 よろしくお願いします。

    • ベストアンサー
    • HTML
  • スタイルシートの優先順位について

    以下のようなHTMLとCSSを記述したとします。 <p>タグに囲まれた「test」という文字に対して、Bodyタグから font-size:10emと、PタグからFontChangeクラスを指定して、 font-size:0.1emを適用しています。 一見、優先順位の高いFontChangeクラスの0.1emが「test」に対して適用されそうに見えますが、 実際には両方のスタイルが適用され、中途半端なフォントサイズになります。 優先順位を無視してスタイルが2重適用されるのは何故でしょうか? ご教授下さい。 宜しくお願いします。 <html> <head> <style type="text/css"> <!-- body { font-size:10em; } .FontChange{ font-size:0.1em; } --> </style> </head> <body> <p class="FontChange" >test</p> </body> </html>

    • ベストアンサー
    • HTML
  • HTMLファイルのフォント指定

    こんにちは。HTMLファイルの編集についてです。 スタイルシートによるフォントの指定について、 お尋ねします。 ヘッダ部分に、 h1{color:blue;font-size:18pt} とか、 .type { font-family:"MS 明朝"; font-size:20px; color:blue; } と書きますと、 <h1> </h1>、<SPAN CLASS="type"> </SPAN> で、文字を挟んで、フォントの指定が可能ですが、 HTMLファイルすべてのフォントについて、フォントサイズを13pxにしたい場合は、 どうしたらいいのでしょう。 ヘッダに書き込むことで、どうにか出来ないでしょうか? それで、なおかつ、部分的に<SPAN CLASS="type"> </SPAN>を 使いたいというような場合は、どうしたらいいのでしょう。

専門家に質問してみよう