質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
CSS

CSSはXMLやHTMLで表現した色・レイアウト・フォントなどの要素を指示する仕様の1つです。

Q&A

解決済

1回答

7237閲覧

CSSのclass名がハイフン始まりの場合にIEでclassとして認識されない

s_ogawa

総合スコア38

CSS

CSSはXMLやHTMLで表現した色・レイアウト・フォントなどの要素を指示する仕様の1つです。

1グッド

2クリップ

投稿2019/01/22 15:04

表題の通りなのですが、CSSのclass名で、「class="--first"」といったハイフンから始まる名前にした場合、IEではclass名として認識されず、スタイルが適用されないという現象が起こりました。class名として認識されていないというのは、デベロッパーツールで確認できました。

ChromeやFirefoxをはじめとしたモダンブラウザでは問題なく表示され、Edgeの場合はVirtualBoxの仮想環境においてはIEと同じくclass名として認識されない現象が起こりました。

最初は原因がわからなかったのですが、下記のように変更したところ解消されたので現状、問題は解決しています、、

CSS

1// class名として認識されない 2.--first { 3 margin: 15px auto; 4} 5 6// class名として認識される 7.__first { 8 margin: 15px auto; 9}

class名において、数字が先頭に来るものは使えないなどは知っていたのですが、このようなケースは知りませんでした。

そもそもハイフン始まりは命名規則として使えないものなのか、また、たまたま解決しただけで他に原因があるのか、あるいはIEのブラウザの仕様なのか、とよくわからずモヤモヤしております。

いろいろ調べたのですが、それに近い情報が見つからなかったので、もし詳しくご存知の方がいれば教えていただけますと幸いです。

宜しくお願いいたします。

set0gut1👍を押しています

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

think49さんのまとめたこの記事が詳しいです。(仕様へのリンクもあります)

【[HTML, CSS, JavaScript] id名/class名に使用できる文字の種類 · GitHub】
https://gist.github.com/think49/d8fbcf7f1c743e21bc79bb7d16178cad

まとめると次のようになります。

  1. 文字[a-zA-Z0-9]およびISO 10646のU+0080以上の文字、さらにハイフン(-)およびアンダースコア(_)のみを含むことができる
  2. 数字([0-9])、2つのハイフン(--)、ハイフンの直後の数字(-[0-9])で開始できない
  3. バックスラッシュ()で文字をエスケープできる(例: \- は - を表す)
  4. Unicodeエスケープシーケンスを利用できる(例: \0030 は 0 を表す)

投稿2019/01/22 15:24

kei344

総合スコア69407

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

s_ogawa

2019/01/22 15:48

早速のご回答ありがとうございます、記事の内容も拝見いたしました。 ここまで詳しいルールがあるとは知りませんでした、、勉強になりました。 そもそも今回のケースはsassでコーディングしており、 ネスト前提でBEMっぽい書き方をしていたのでこのような形になっていました。 記事にも明記されている通り、今回のような命名は気をつけないといけませんね、、 参考になりました、回答ありがとうございました!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問