ログインしてさらにmixiを楽しもう

コメントを投稿して情報交換!
更新通知を受け取って、最新情報をゲット!

HTMLコーダー労働組合コミュのidとclassについて

  • mixiチェック
  • このエントリーをはてなブックマークに追加
(既出だったら ごめんなさい)

ずっと議論されていることだとは思いますが、
最近、プログラマーと、この問題について話し合う機会がありましたので、皆さんの意見もお聞きしたいと思い、立てさせていただきました。

------------------------------------------------

emotional webの川島さんの見解にもあるように、
(ttp://www.lllcolor.com/archives/200703/headerclassid.html)
「どちらでも良いのではないか? 製作者側が理解・管理できていればよいのではないか?」との意見にもあるように、絶対的な答えを出すのは難しいとは思いますし、それが極論だなともおもいますが、
以下 私とプログラマーで次のような見解がでたので書きます。


私の見解
------------------------------------------------
idは唯一絶対のものであるにしても、
「エリア別け(セレクタ) としての利用」
「オブジェクト単位でのパーツ分けとしての利用」
に利用するのであれば「idの意味合い」に準拠しているのではないか?

ページが遷移するのであれば、重複しても問題ない。という見解です。

例)
●#header, #content, #footer などの大区分の設定。
●#navigation, #whatsnew などのモジュール別けとしての設定。

私は「idは一回しか出現しないものに定義する」という意見には大いなる語弊が生じると思いますし、上記のような見解がidの意味合いとも考えています。



プログラマーの見解
------------------------------------------------
idはhtmlコーダーだけの物ではなく、プロジェクト全体に関わるルールであるのだから、コーディングの段階ではclassのみを利用するべき。
そもそも普通に考えて、コーディングの段階でidに定義するものが発生するのか?ということ自体が疑問。
idをデザインの目的で利用すること事態が「重複」の危険性を帯びている。

classでまかなえるのであれば、それを利用するべきであり、idにデザイン定義するべきではない、idはhtml内の名前付けとしてのみ利用するべきではないか?

例)
●<div class="header" id="indexHeader"> など、デザインに関してはclassで定義し「DOMの利用」「アンカーなどの名前付け」のために別途idを定義するべき。

という見解です。
みなさんのご意見お聞かせ下さい。

コメント(8)

>私の見解
id はユニークなものですが、それをページ単位で捕らえるか、サイト単位で捕らえるかで大分違いが出てくるのではと。
僕は、基本ページ単位で見ますね。
ですから、上記のように、「ページが遷移するのであれば、重複しても問題ない」ということになります。

>プログラマーの見解
「そもそも普通に考えて、コーディングの段階でidに定義するものが発生するのか?」
から考えて、非常に厳格な考え方をお持ちなのかなと思いますが…
「classでまかなえるのであれば、それを利用するべきであり、idにデザイン定義するべきではない、idはhtml内の名前付けとしてのみ利用するべきではないか?」
って idだってclass だって、CSSの選択子としての役割を備えているわけで、classでまかなえるのであれば、それを利用するべきってのはどうかと…
これっておそらく複数回汎用的に使用できる class の仕様を便利な方向で解釈したものだと思うんですよね。
厳格なものと、便利性重視な意見が同居しているので (まぁ実務的には皆さんそうですが)、どのようなルールのもと id/class を使用しているのか見えづらのでなんとも言えないっす。
コバさん <
コメントありがとうございます。

デザイナー・コーダーの僕としては、idの利便性を考えると利用していきたい要素ですし、仕様的に用意されているものなので、使わない手は無いと考えてます。

プログラマー的には確かに、最初に定義されているとヤリズライ部分もあるのかもしれませんね(まぁ これについては最初のプロジェクト定義が甘いという証拠ですが)。正直偏ってるなと感じましたねw
確かにidガチガチだったら怖くて定義できないでしょうけどw

プロジェクトを進めるにおいてidとclassに対して明確な姿勢がないと難しいということでしょうね。
僕もこの問題については色々考えていましたが、
なかなかデリケートな問題でblogとかで書くとすぐ叩かれそうなので言及できませんでしたw

僕の見解ですが、思っている事は以下の感じです
-------------------------------------
・HTMLは相互文書間参照のマークアップ言語
・今の時代の流れは過去想定されていなかった流れになっている
・相互文書間参照のため、一枚が一コンテンツとして完結
・なのでfooterとかheaderとかの概念がそもそもおかしかったりするかも?
・そもそもdivがグルーピングするっていう曖昧な要素だからみんながわけわかんなくなんだよ
・classでつけるべきかと僕もおもったけど一般慣習は重要
・W3Cが悪いんじゃね?早く次のHTML作れよ
・今与えられた状況だったらプロジェクト毎に便利な方を使えばいいよ
-------------------------------------

と、いうわけで一応headerなどはclassで指定に一票
理想はheaderとかfooterとかはないほうがいいよ!無理ですけど。
でも僕は実践では一般慣習と効率性を重視しているのでid使います。

あと「idはhtmlコーダーだけの物ではなく」には賛同します。
でもDOMなどを使う場合PGがどうしてもと言うなら全部classでも個人的には構わないかと思います。

僕が設計したHTMLを元にDOMも使用してるんですが
うちのPGにヒアリングしたところによると、

「逆にid設置してくれてないと困るよ。適度にね」
だそうです。
普通にセマンティックに近いものをあげていれば不満はないそうです。

デザイナーからすればclassでもidでもどっちでも使えますし、
プロジェクトのメンバーによって変えるのが一番かなとw
kennsuさん <
コメントありがとうございます。
いつも「超CSS(BLOG)」拝見させて頂いておりますw

-------------------------------------
「今の時代の流れは過去想定されていなかった...」
「実践では一般慣習と効率性を重視...」
「プロジェクトのメンバーによって変えるのが一番かなとw」

確かに。

tableレイアウト時代もそうでしたが「自分たち作り手の意識」や「web全体の流れ」って非常に重要ですね。
「言語の思想(理想)」があるにしても、それが絶対ではなく、あくまで根本。

利用する者が不満を感じるのであれば「作りやすい形(ルール)」で対応するべきですし、そうなって行きます。
というか そもそも、その流れをみて「W3C」も含めて仕様を考えているのでしょうし... 。

うちに負けず劣らずの小さな会社で働いてる方も、もしかしたら同じような問題で、気苦労なさってる「コーダー(プログラマー)」もいらっしゃるのでしょうね。
やっぱり idくらいはお互い納得した上で「コーディング規約」しなきゃダメですね(正直、怠ってる部分はありますw)。
サイト制作がメインの会社ではないので、デザインとプログラムはそれぞれ違う会社へ下請けに出されて、ディレクションとコードだけをやっています。
中でも自分は派遣のコーダで、設計やディレクションはしていません。

そういった状況から、
-------------------------------------
1. 自分がいなくなった後も修正がわかりやすい
2. プログラム会社にも理解しやすい
-------------------------------------
というのを心がけている、つもりです。

idは、いなくなってからプログラムとぶつかったら困るなと思い、あまり使わない方向で組んでいますが、逆にheader/footerのように不動のものはidで固めてしまった方が使いやすいんじゃないかと考えています(idの範囲はページ単位派です)。

結果的に、通常はclassを使い、「出来るだけ触らないでね」系の要素にidという感じになりました。

ただし、デザイナさんから来たもので、こんなんここでしか使わねぇんだろ、というような装飾のものが届いたらidにして「特殊指定もの」のcssファイルに分けておき、2回目があったらclassに降ろします。

今のところその方法で、プログラム会社と連絡する担当さんは変更箇所を指定しやすいと言ってくれていますが、全く知らないよその会社がどう見ているのかは正直わからないので不安ではあります。

派遣としては極力、跡を濁したくないですし……。

ログインすると、みんなのコメントがもっと見れるよ

mixiユーザー
ログインしてコメントしよう!

HTMLコーダー労働組合 更新情報

HTMLコーダー労働組合のメンバーはこんなコミュニティにも参加しています

星印の数は、共通して参加しているメンバーが多いほど増えます。