[解決済み] HTMLのid属性に有効な値は何ですか?
質問
を作成する際に
id
属性の値にはどのような規則がありますか?
どのように解決するのですか?
対象 HTML 4 というのは、技術的な答えです。
IDおよびNAMEトークンは文字([A-Za-z])で始まり、任意の数の文字、数字([0-9])、ハイフン( "-" )、アンダースコア( "_" )、コロン( ":" )、ピリオド( "." )が続くことができます。
HTML 5 はさらに寛容で、idは少なくとも1つの文字を含まなければならず、いかなるスペース文字も含んではならない、とだけ述べています。
の場合、id属性は大文字と小文字を区別します。 XHTML .
純粋に実用的な問題として、特定の文字を避けたい場合があります。ピリオド、コロン、'#' は CSS セレクタでは特別な意味を持つので、これらの文字をエスケープするには CSSのバックスラッシュ またはダブルバックスラッシュで jQuery に渡されるセレクタ文字列 . IDにピリオドやコロンを使う前に、スタイルシートやコードでどれくらいの頻度で文字をエスケープしなければならないか考えてみてください。
例えば、HTMLの宣言である
<div id="first.name"></div>
は有効です。その要素をCSSで選択すると
#first\.name
で、jQueryではこのようになります。
$('#first\\.name').
しかし、バックスラッシュを忘れると
$('#first.name')
を持つ要素を探す、完全に有効なセレクタができあがります。
first
を持ち、かつクラス
name
. これは見過ごしがちなバグです。長い目で見れば、idを選択する方が幸せかもしれません。
first-name
(ピリオドではなくハイフン)。
命名規則を厳密に守ることで、開発作業を簡略化することができます。例えば、小文字に限定して、単語をハイフンかアンダースコアで区切る(ただし両方ではなく、どちらかを選んでもう一方は使わない)と、覚えやすいパターンになります。そうすれば、「あれは何だったんだろう?
firstName
または
FirstName
と入力する必要があることが常にわかるからです。
first_name
. キャメルケースがお好きですか?ハイフンやアンダースコアは使用せず、最初の文字は常に大文字か小文字のどちらかを使用し、混在させないようにします。
今では非常に不明瞭な問題ですが、少なくとも1つのブラウザ、Netscape 6,
は、id 属性の値を大文字と小文字の区別があるものとして誤って扱いました。
. つまり、もしあなたが
id="firstName"
をHTMLに入力し(小文字の'f')、かつ
#FirstName { color: red }
をCSS(大文字の'F')で指定した場合、そのバギーブラウザーは要素の色を赤に設定することに失敗していたはずです。この編集の時点(2015年4月)では、Netscape 6への対応を求められていないことを祈ります。これは歴史的な脚注とお考えください。
関連
-
[解決済み】divの高さを画面の残りスペースで埋めるようにする
-
[解決済み] CSSでテキストや画像の背景を透明にするには?
-
[解決済み] HTML 5: Is it <br>, <br/>, or <br />?
-
[解決済み] <button> vs. <input type="button" />. Which to use?
-
[解決済み] HTMLで表示される上下の三角形(軸のない矢印)に使用できる文字は何ですか?
-
[解決済み] HTMLの "role "属性は何のためにあるのですか?
-
[解決済み] jQueryでdata属性で要素を選択する
-
[解決済み] CSSだけでリンクを無効化する方法
-
[解決済み】なぜHTMLは "chucknorris "を色と見なすのか?
-
[解決済み】HTML5入力のプレースホルダの色をCSSで変更する。
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
Uncaught TypeError: document.getElementsById は関数ではありません。
-
[解決済み] input type="file "ボタンのスタイリング
-
[解決済み] How can I set the default value for an HTML <select> element?
-
[解決済み] Sublime Text 2を使ってHTMLコードを再フォーマットするにはどうしたらいいですか?
-
[解決済み] inline/inline-block要素間のスペースを削除するにはどうすればよいですか?
-
[解決済み] divブロック内のテキストを(水平方向と垂直方向に)センタリングするにはどうすればよいですか?
-
[解決済み] input type="file "ボタンのスタイリング
-
[解決済み] 検索エンジンはAngularJSアプリケーションをどのように扱っているのか?
-
[解決済み] Do I use <img>, <object>, or <embed> for SVG files?
-
[解決済み] localStorage、sessionStorage、session、cookieの違いは何ですか?