33

私はAngularが初めてで、「x-」および「data-」プレフィックスの意味を理解しようとしています。ディレクティブのドキュメント ( http://docs.angularjs.org/guide/directive ) では、これらのプレフィックスによってディレクティブが「HTML バリデーターに準拠」するようになると書かれています。これは正確にはどういう意味ですか?

4

2 に答える 2

31

HTML5 仕様では、次のように data のプレフィックスが付いている限り、任意の属性を使用できます。

<div data-myattribute=""></div>

これは無効な HTML5 になりますが、

<div myattrbute=""></div>

data- 属性の詳細については、こちらをご覧ください。

「x-」属性については、XHTML検証に固有の「x:」属性と要素を意味していると思います...

これを拡張するために、(何らかの理由で) XHTML を使用する場合は、次のように名前空間を使用してカスタム属性を定義できます (ここで要点を要約しているだけです)。

<html xmlns:x="http://sample.com/mynamespace">
<body>
   <div x:whatever=""></div>
   <x:mytag></x:mytag>
</body>
</html>

ここで、xmlns の URL は、類似要素間の競合を防ぐためのものです。また、DOCTYPE 宣言の一部として、検証目的でカスタム要素と属性の DTD を提供することもできます。

*ブラウザーでの動作は、この xmlns アプローチによって異なります。

要約すると、過去 3 年間にリリースされたほとんどのブラウザー、または IE8+ では、これらのことを心配する必要はありません。非常に特定の状況でのみ、本当に気にします。

于 2013-03-06T19:37:52.120 に答える
19

HTML5 仕様から: http://www.w3.org/html/wg/drafts/html/master/single-page.html

「x-」の 2 文字で始まる属性名は、ユーザー エージェント用に予約されており、HTML 言語に正式に追加されないことが保証されています。

また:

HTML 構文での使用を目的としたマークアップ レベルの機能の場合、拡張機能は " " という形式の新しい属性に制限する必要がありますx-vendor-feature。ここで、ベンダーは拡張機能を担当するベンダーを識別する短い文字列であり、機能は機能の名前です。特徴。新しい要素名を作成しないでください。このような拡張機能の属性を排他的に使用すると、複数のベンダーの拡張機能を同じ要素に共存させることができますが、これは要素では不可能です。" x-vendor-feature" 形式を使用すると、仕様への将来の追加と競合するリスクなしに拡張を行うことができます。

于 2013-07-27T20:56:29.497 に答える