CSSのセレクタ部分にハイフン(-)を使うべきか

8
shogo ohta @os0x

@teramako あ、最近のFirefoxだと互換モードでもidはグローバルにならないかもしれません。はてなダイアリー&Firefox9&Firebugで確認した限りでは。

2012-01-22 02:32:41
もう暑くってェ グッタリしちゃってェ…んじに🐈にゃーん🍓🫐🍅🌽🍈🍆🥒🍇🦝 @uupaa

(ε・◇・)з <form name="form" id="form" class="form" data-form="form"></form> が ほむほむほむほむほむほむ にしか見えない人がきっとおるで

2012-01-22 02:33:55
テラマコ @teramako

@os0x NightlyのdoctypeなしHTMLでやったところ、アクセスできた(コンソールに警告つきだけど)のでグローバルになってますね

2012-01-22 02:35:05
think49 @think49

"ここで取り上げてるのは、属性セレクタや擬似クラスセレクタについてではなく、IDセレクタ と CLASSセレクタ についてです。" / 伝え方が悪かったかもしれません。idに対して属性セレクタを使うケースもありかなと。

2012-01-22 02:39:02
think49 @think49

id="hoge-foo", id="hoge-piyo" があった時、[id|="hoge"] と指定するケースを想定していました。 個人的にはしっくり来ませんが、用法としてはありな気がします。

2012-01-22 02:39:22
shogo ohta @os0x

@teramako Firefox9でもローカルファイルだとグローバルになりました。はてなダイアリーが何か特殊なのかもしれません。。

2012-01-22 02:44:36
think49 @think49

「id="hoge-foo", id="hoge-piyo" にするなら、class="hoge" にすべき」という意見には個人的には賛成です。

2012-01-22 02:46:14
think49 @think49

ただ、idだけキャメルケースで命名すると他で [att|=val] が使われた時に名前の統一性がなくなるので、しっくり来ないながらも意識改革が必要かなーという気がしてます。

2012-01-22 02:47:15
テラマコ @teramako

@os0x はてなダイアリーでも試しましたが、Nightly, 9どちらもアクセスできましたよ。 >> window["simple-header"]

2012-01-22 02:49:44
shogo ohta @os0x

@teramako なんと、僕の環境がおかしいのかなぁ

2012-01-22 02:52:26
テラマコ @teramako

う~ん、Vimperatorというかliberator.evalがなんか信用できなくなってきた...

2012-01-22 02:52:49
もう暑くってェ グッタリしちゃってェ…んじに🐈にゃーん🍓🫐🍅🌽🍈🍆🥒🍇🦝 @uupaa

@think49 (ε・◇・)з そういえば [att|=val] は IE7+ から使えるんでした~ http://t.co/zcjAMRvB 使い所がわからないまま、存在をわすれちゃうんだよね~

2012-01-22 02:53:46
テラマコ @teramako

@os0x Firefox標準のWeb Consoleで試したので、その違いがあるかも?

2012-01-22 02:55:30
think49 @think49

@os0x @teramako 一応、私も Fx9.0.1 で window['hoge-foo'] === undefined になることを確認しました。 http://t.co/4cNGnNEC

2012-01-22 02:56:13
テラマコ @teramako

Nightly、GCLIのjavascriptはプロパティとして存在しないと実行できないっぽいな。__notSuchMethod__とかで実装されていると実行できない罠があるかも

2012-01-22 03:01:16
テラマコ @teramako

@think49 @os0x jsbinはiframe内にレンダリングされるので、window.frames[0]["hoge-foo"] でアクセスできました。

2012-01-22 03:02:14
think49 @think49

@teramako @os0x うーん…。JSBin の [JavaScript] のコードブロックに入力すればiframe内にscript要素が挿入されますよね。

2012-01-22 03:09:48
think49 @think49

@teramako @os0x window.hoge までは取得できますが、window['hoge-foo'] だけ Fx9.0.1 の [Webコンソール] で取得できませんでした。

2012-01-22 03:12:24
shogo ohta @os0x

@think49 @teramako Firefoxの場合、互換モードであってもIDにハイフンを含む場合はグローバルから参照できるようにはならないみたいですね。

2012-01-22 03:12:50
テラマコ @teramako

@os0x @think49 みたいですね...う~ん、Web Consoleからだとアクセスできちゃうんだけどなあ...

2012-01-22 03:13:54
think49 @think49

@teramako @os0x 一応試してみたんですが、[Webコンソール] で window.frames[0]["hoge-foo"] を叩くと TypeError が返ります。コンソールだけ特権モードってわけでもなさそうですね。

2012-01-22 03:15:34