HTML5 の data-* 属性に基づいてコンテンツのスタイルを設定するのは悪い習慣だと読んだことがあります。
html5doctor.com からの引用:
特定のデータ属性の有無は、スタイリングの CSS フックとして使用しないでください。そうすることで、保存しているデータがユーザーにとってすぐに重要であり、よりセマンティックでアクセスしやすい方法でマークアップする必要があることが示唆されます。
誰かがこの声明にもう少し光を当てたり、これがユーザーエクスペリエンスに悪影響を与える可能性がある理由の例を挙げたりできますか?
非常に基本的な例として、data-attribute-error="404"
スクリプトにフィードバックを提供するために on 要素を使用しているとします。補足的なスタイリングのために各要素に 、 などのクラスを追加する必要error-404
はerror-500
ありません。
.error { color: red; }
.error[data-attribute-error]:after { content: attr(data-attribute-error); }
.error[data-attribute-error=404] { color: grey; }
.error[data-attribute-error=404]:after { color: red; }
/* etc */
これはおそらく最良の例ではなく、ブラウザーのサポートについては心配していません。全体的な概念をよりよく理解しようとしています。
CSS3 とカスタム属性を使用して、コンテンツに基づいてスタイルを設定し、コンテンツに基づかない純粋なスタイリングを処理するために「実際の」クラスをより一般的に保ちながら、多くのクールなことができるようです。
これは特定の状況で無視できる単なる一般的なガイドラインですか、それとも恐ろしいクライアント側の罪ですか?
ありがとう!