5

奇妙な質問があります。

しかし、html 5 で無効な属性を使用するとどうなるか知りたいですか?

たとえば、タグに attr 'City' を追加したい場合。

<div data-city="etc"></div> 

が有効な方法です。

ただし、この方法で完全に正常に機能しています

<div city="etc"></div> 

??'city'の代わりに使用すべきではない結果を知りたい'data-city'

javascrpit のデータを渡すためだけに使用する場合、一般的に「都市」だけを使用できますか??

アドバイスありがとうございます。

4

3 に答える 3

7

HTML 4.01 仕様は、無効なドキュメントに関する注意事項で、ブラウザが「認識できない属性に遭遇した場合、属性の仕様全体 (つまり、属性とその値) を無視し」、「サポートを提供する」ことを推奨しています。そのようなエラーをユーザーに通知するため」.

実際には、ブラウザーは、HTML だけが考慮される限り、未知の属性を無視します。ただし、CSS では無視されません。[city]最新のブラウザーでは、要素に一致するような属性セレクター。そして、JavaScript ではそれらを無視するのではなく、適合する属性とは別の扱いcityで、要素ノードのプロパティにはなりませんが、プロパティのプロパティになるため、メソッドとメソッドattributesを介して使用できます。getAttributesetAttribute

このような処理は HTML 4.01 仕様に違反しており、すべてのブラウザーで行われるという保証はありません。HTML5 ドラフトは、この問題に対処していないようです。解析エラーと廃止された機能を処理するためのルールを指定していますが、未定義の属性は指定していません。

さらに、いつか将来の仕様やブラウザがcity属性名として認識し始めるかもしれませんが、おそらくあなたの考えとは深刻に矛盾するでしょう。不可解な名前を使用すると、このような衝突の可能性が非常に小さくなる可能性があります。しかし、属性はサイト固有の拡張を目的としており、標準属性と競合しないことが保証されているため、 を使用するとdata-city問題が回避されます。data-*

于 2013-02-23T07:01:06.217 に答える
4

発生する唯一のことは、検証されないことです。

Javascript は引き続きそれを見つけることができます。ただし、一部のデータ固有の関数では機能しない場合があります。

証明: http://jsbin.com/ujusel/1/edit

于 2013-02-23T04:52:11.597 に答える
3

残念ながら、これは正しくありません。ただし、すべての (最新の) ブラウザーは、すべての (悪いものも含めて) HTML コードと互換性を保つよう努めているため、(表示して DOM に保持できる限り) これで問題ありませんが、そうではありません。真の属性。あなたのコードは真の W3 仕様の HTML 5 コードとして検証されませんが、それでも動作するはずです。

「city」を使用する必要がある場合は、独自の要素に独自の属性を指定できる XHTML を使用することをお勧めします。

于 2013-02-23T04:52:43.780 に答える