あまりに深い階層の要素までブロックに対する直接のエレメントとすることに気がとがめる場合、適当なところでブロックを区切ればよい。ブロックの中にブロックが内包されている形に整理するということ。場合、ブロックの区切り(とあるブロックにブロックが内包されていた時に、内側のブロックが外に出ても同じ形を保っているべきかどうか)を判断するのはマークアッパーだ。書かせる記法は完全にキモい。慣れの問題という話でもあるが、多くのマークアッパーはキモさを感じたことがあるはず。頑張って慣れる必要は必ずしもない。一貫した規則と機械可読性さえあれば各区切り文字は変えたり消したりしても良いことになっている(本当です)。blockName-elemName_modifierこうなる理由です。単語間のハイフンは単純に文字数の無駄である。キャメルケースで大文字も大いに使おう。クラス名に大文字を使うことに抵抗があれば、それは単なる思い込みでしょう。ハイフンとアンダースコアは逆でもいいと思うけど、使用頻度はエレメント>モディファイアであるから、より打ちやすいハイフンをエレメントとの区切りとした。ようにキャメルケースを使ってつなげればよい。みたいなクラスを付与することがある。いうクラスを汎用クラスと呼ぶことにする。使うことは想定されていない。文書構造と関係ないクラスを付与するという観点から忌避するマークアッパーも多い。原理主義がどうであろうと、使ってもいいと自分は思う。限った話ではないので、節度を守って使うべきだ。個人的には余り使う場面はない(なくせる)と思っている。モディファイアを使えば多くはカバーできるはず。ページによって固有のマージンを持たせなきゃいけない場合などは使い勝手がいいと思う。属性を起点に文脈を特定する手法は見通しが悪くなる。ほうが素直で好感が持てるけれども。ブロックに内包されるすべての要素(タグ)はブロックに対するエレメントである必要がある。条件が整っていればエレメントにしなくてもいいかもしれない。エレメントのなかのエレメントは、その構成を頑張ってクラス名で表現する必要はない。どちらもブロックに対する直接のエレメントと捉えれば十分だ。クラス名ルールは、一貫性があって機械的にエレメントとモディファイアなどの切り分けが可能なルールがあれば自由に決めていい。キモいクラス名を見ずに済む。汎用クラスは、使う必要があれば使えばいいと思う。日本で流行の兆しを見せてきたのはここ数ヶ月のことだが、似たような方法論は昔からたくさんある。僕が以前に勤めていたキノトロープという会社では、エレメントとコンポーネントという言葉をつかって近い方法論を実現していた。似たものを先人がこしらえていたものだ。本来の狙いと近かった。それなりの規模のウェブサイトを手がけている制作会社ならば、どこでも似たような手法は持っていたのではないかと思う。適用してゆくと、結局既存の方法論と大差がなくなってくる。いえ、ブロックごとにスコープを絞ってコーディングするとか、可搬性が高まるように設計することは非常に良いプラクティスであることには違いない。写経して体に覚えさせるのは全然アリだろう。ディスっておこうと思う。いう企業は同名のポータルサイトを立ち上げている。実際見てみると分かる通り、画面はかなりシンプルな構成で機能も薄い。心なしかデザイン的な詰めも甘い。要するに、大層な方法論のわりに実際に使われた実績がしょぼい気がするのだ。日本のウェブサイトは得てして画面構成が詰まっていて多機能だ。十分にテストされているとは言いがたい。信頼し振り回されると痛い目を見るかもね。記法に、自分は以前から高い関心を抱いていたが、いまだにコレといった答えを出せずにいる。これからも飽きずに自分なりの手法を磨いてゆこうと思う。一家言いただきたいと思っている。開設されたものの更新のない社長ブログ、更新されないかな~。»プロフィールid:tsmd株式会社ネコメシに務めるフロントエンドエンジニアです。本ブログは移転しました。月別アーカイブリンク株式会社ネコメシCOOのブログCEOのブログフミヤさんのブログ検索はてなブログをはじめよう!tsmdさんは、はてなブログを使っています。ブログを報告するスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。