検索

HTMLデータ属性ガイド

目次

  1. 導入
  2. 文法
  3. データ属性を使用したスタイル
  4. JavaScriptのデータプロパティへのアクセス

導入

HTML要素には、アクセシビリティ情報からスタイル制御まで、あらゆる目的で使用される属性を持つことができます。

<div aria-label="Names" role="region"></div>

継承されていないアプローチは、独自のプロパティを作成するか、無関係な機能のために既存のプロパティを再利用することです。

<div highlight="true"></div>
<div width="large"></div>

これを行うには多くの悪い理由があります。あなたのHTMLは無効になり、実際の悪影響はないかもしれませんが、効果的なHTMLの暖かくて曖昧な感覚を失います。最も説得力のある理由は、HTMLが進化する言語であり、今日機能しないプロパティと価値が将来機能しないという意味ではないという理由だけです。

良いニュースは、独自のプロパティを作成できることです。あなたはそれらをdata-*そしてあなたはあなたが望むことを何でもすることができます!

文法

独自のHTML属性を作成し、独自の情報を入力できるようにすることは非常に便利です。幸いなことに、あなたはそれをすることができます!これは、データ属性が使用されるものです。彼らはこのように見えます:

<div data-foo=""></div>
<div data-size="large"></div>
  • データ属性は、常にこの形式にあるため、 data-*属性と呼ばれることがよくあります。 data言葉、そしてダッシュ- 、そしてあなたが考えることができる他のテキスト。

    データ属性だけを使用できますか?

    <div data=""></div>

    これは害を引き起こすことはないかもしれませんが、このガイドでカバーするJavaScript APIを取得することはできません。紹介で述べたように、あなたは実際に自分の属性を作成しています。

    データ属性で何をすべきではありませんか

    アクセス可能なコンテンツを保存します。コンテンツをページに表示または読み取る必要がある場合は、データプロパティに配置するだけでなく、コンテンツがHTMLコンテンツのどこかにあることを確認してください。

    <div data-name="Chris Coyier"></div>
    <div>
      クリス・コイヤー
    </div>

    隠されたコンテンツに関する詳細情報を以下に示します。

    データ属性を使用したスタイル

    CSSは、属性とその値に基づいてHTML要素を選択できます。

     /*このデータ属性と値を持つ要素を選択します*/
    [data-size = "large"] {
      パディング:2レム;
      フォントサイズ:125%;
    }
    /*要素やクラスなどに制限できます*/
    button [data-type = "download"] {}
    .card [data-pad = "extra"] {}

    これは魅力的です。 HTML/CSSのメインスタイルのフックはクラスであり、クラスは優れていますが(中程度の特異性とclassListを介した素敵なJavaScriptメソッドがあります)、要素はそれを持っているか、それを持っていない(基本的にオンまたはオフ)。 data-*属性を使用すると、このターンオン/オフ機能、同じ特異性レベルでその値に基づいて選択する機能を取得できます。

     / *プロパティが存在する場合、選択 */
    [データサイズ] {}
    /*属性に特定の値があるかどうかを選択*/
    [data-state = "open"]、
    [aria-expanded = "true"] {}
    / *「開始...」セレクター。これは「3」または「3.14」などの3で始まる3つの文字に一致することを意味します */
    [data-version^= "3"] {}
    / * "include" valueがどこでも文字列が含まれている場合 */
    [データ - コンパニー*= "Google"] {}

    属性セレクターの特異性

    クラスとまったく同じです。通常、特異性は4部構成の値と見なします。

    インラインスタイル、ID、クラス/プロパティ、タグ

    したがって、個々のプロパティセレクターは0、0、1、0です。このようなセレクター:

     div.card [data-foo = "bar"] {}

    0、0、2、1になります。 2は、クラス( .card )とプロパティ( [data-foo="bar"] )があり、1はタグ( div )があるためです。

    属性セレクターの特異性は、IDよりも低く、要素/タグよりも高く、クラスと同じです。

    症例と感受性のプロパティ値

    データプロパティの可能性のあるケースの矛盾を修正する必要がある場合、プロパティセレクターはこのためにケースに依存しないバリアントを提供します。

     /*一致します<div data-state="open"></div>
    <div data-state="Open"></div>
    <div data-state="OPEN"></div>
    <div data-state="oPeN"></div>
    */
    [data-state = "open" i] {}

    正方形のブラケットセレクターの小文字iです。

    使用データのプロパティを視覚化します

    CSSを使用すると、データ属性の値を抽出し、必要に応じて表示できます。

     /*<div data-emoji="✅"> */
    [data-emoji] ::前{
      コンテンツ:attr(data-emoji); / * return '✅' */
      マージン右:5px;
    }<h4 id="スタイル使用の例">スタイル使用の例</h4>
    <p>データ属性を使用して、グリッドコンテナに必要な列の数を指定できます。</p>
    <pre class="brush:php;toolbar:false"><div data-columns="2"></div>
    <div data-columns="3"></div>
    <div data-columns="4"></div>

    JavaScriptのデータプロパティへのアクセス

    他の属性と同様に、Common Method getAttribute使用して値にアクセスできます。

     let value = el.getattribute( "data-state");
    //値を設定することもできます。
    // data-state = "collapsed"を返す
    el.setattribute( "data-state"、 "collapsed");

    しかし、データ属性には独自の特別なAPIもあります。複数のデータ属性を持つ要素があるとします(これは絶対に問題ありません):

    要素に参照がある場合、次のようなプロパティを設定して取得できます。

     // span.dataset.infoを取得します。 // 123
    span.dataset.index; // 2
    // span.dataset.prefix = "mr."を設定します。
    span.dataset.emojiicon = "?";

    最後の行のラクダの命名法に注意してください。 HTMLのKebabスタイルの属性( data-this-little-piggyなど)をJavaScript( dataThisLittlePiggyなど)のCamel命名法に自動的に変換します。

    このAPIは間違いなくclassListほど良くありません。クラスリストclassList 、追加、削除、切り替え、交換の明確な方法がありますが、何よりも優れています。

    インラインデータセットにアクセスすることもできます。

    データプロパティのJSONデータ

    
    

    なぜだめですか?これは、有効なJSONにフォーマットできる文字列です(引用符などに注意してください)。データを抽出し、必要に応じて解析できます。

     const el = document.queryselector( "li");
    let json = el.dataset.person;
    let data = json.parse(json);
    console.log(data.name); // Chris Coyier
    console.log(data.job); // webパーソン

    JavaScriptユースケース

    概念は、データプロパティを使用して情報をHTMLに入力できることです。これは、特定の操作を実行するためにJavaScriptにアクセスする必要がある場合があります。

    一般的な例は、データベース機能に関連しています。 「いいね」ボタンがあるとします。

    このボタンは、クリックしたときにサーバーにAjax要求を実行するハンドラーをクリックできます。データプロパティから取得するため、どのレコードを更新するかを知っています。

    仕様

    • セレクターレベル4(ワーキングドラフト)
    • セレクターレベル3(推奨)
    • セレクターレベル2、リビジョン1(初期定義)

    ブラウザのサポート

    このブラウザは、Caniuseのデータをサポートしています。これには詳細が含まれています。番号は、このバージョンでブラウザがこの機能をサポートしていることを示しています。

    デスクトップ

    モバイル/タブレットPC

  • 以上がHTMLデータ属性ガイドの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

    声明
    この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
    静的サイトコンテンツ管理にページCMSを使用します静的サイトコンテンツ管理にページCMSを使用しますMay 13, 2025 am 09:24 AM

    私は知っています、私は知っています:たくさんのコンテンツ管理システムオプションが利用可能であり、私はいくつかテストしましたが、実際にはY&#039;知っているものはありませんでしたか?奇妙な価格設定モデル、困難なカスタマイズ、一部は全体になることさえあります&

    HTMLのCSSファイルをリンクするための究極のガイドHTMLのCSSファイルをリンクするための究極のガイドMay 13, 2025 am 12:02 AM

    CSSファイルをHTMLにリンクすることは、HTMLの一部で要素を使用することで実現できます。 1)タグを使用して、ローカルCSSファイルをリンクします。 2)複数のタグを追加することにより、複数のCSSファイルを実装できます。 3)外部CSSファイルは、そのような絶対URLリンクを使用します。 4)ファイルパスとCSSファイルの読み込み順序の正しい使用を確認し、パフォーマンスを最適化すると、CSSプリプロセッサを使用してファイルをマージできます。

    CSS Flexbox vsグリッド:包括的なレビューCSS Flexbox vsグリッド:包括的なレビューMay 12, 2025 am 12:01 AM

    FlexBoxまたはグリッドの選択は、レイアウト要件によって異なります。1)FlexBoxは、ナビゲーションバーなどの1次元レイアウトに適しています。 2)グリッドは、雑誌のレイアウトなどの2次元レイアウトに適しています。この2つは、レイアウト効果を改善するためにプロジェクトで使用できます。

    CSSファイルを含める方法:メソッドとベストプラクティスCSSファイルを含める方法:メソッドとベストプラクティスMay 11, 2025 am 12:02 AM

    CSSファイルを含める最良の方法は、タグを使用してHTMLパーツに外部CSSファイルを導入することです。 1.タグを使用して、外部CSSファイルを導入します。 2。小さな調整のために、インラインCSSを使用できますが、注意して使用する必要があります。 3.大規模プロジェクトでは、@Importを介して他のCSSファイルをインポートするために、SASS以下などのCSSプリプロセッサを使用できます。 4。パフォーマンスのために、CSSファイルをマージし、CDNを使用し、CSSNANOなどのツールを使用して圧縮する必要があります。

    FlexBox対グリッド:両方を学ぶべきですか?FlexBox対グリッド:両方を学ぶべきですか?May 10, 2025 am 12:01 AM

    はい、Youはrelearnbothlexboxandgrid.1)FlexBoxisidealforone-Dimensional、FlexiblleayoutslikenavigationMenus.2)Gridexcelsintwo-digsignssuchasmagazinelayouts.3)Bothenhanceslaysutibulivedibulisunivedivition、floctonsulururを

    軌道力学(またはCSSキーフレームアニメーションの最適化方法)軌道力学(またはCSSキーフレームアニメーションの最適化方法)May 09, 2025 am 09:57 AM

    独自のコードをリファクタリングするのはどのように見えますか?ジョン・レアは、彼が書いた古いCSSアニメーションを選び、それを最適化するという思考プロセスを歩きます。

    CSSアニメーション:それらを作成するのは難しいですか?CSSアニメーション:それらを作成するのは難しいですか?May 09, 2025 am 12:03 AM

    cssanimationsArenotintinlentyhardbutrepracticeanderstanding ofcsspropertiesandtimingfunctions.1)

    @KeyFrames CSS:最も使用されているトリック@KeyFrames CSS:最も使用されているトリックMay 08, 2025 am 12:13 AM

    @keyframesispopularduetoitsversitility andpowerincreatingsmoothcssanimations.keytricksinclude:1)defingsmoothtransitionsbetweenstates、2)AnimatingMultipleProperiessimally、3)3)bendorprefixesforbrows -compativity、4)組み合わせwithjavasfo

    See all articles

    ホットAIツール

    Undresser.AI Undress

    Undresser.AI Undress

    リアルなヌード写真を作成する AI 搭載アプリ

    AI Clothes Remover

    AI Clothes Remover

    写真から衣服を削除するオンライン AI ツール。

    Undress AI Tool

    Undress AI Tool

    脱衣画像を無料で

    Clothoff.io

    Clothoff.io

    AI衣類リムーバー

    Video Face Swap

    Video Face Swap

    完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

    ホットツール

    SublimeText3 Mac版

    SublimeText3 Mac版

    神レベルのコード編集ソフト(SublimeText3)

    VSCode Windows 64 ビットのダウンロード

    VSCode Windows 64 ビットのダウンロード

    Microsoft によって発売された無料で強力な IDE エディター

    WebStorm Mac版

    WebStorm Mac版

    便利なJavaScript開発ツール

    PhpStorm Mac バージョン

    PhpStorm Mac バージョン

    最新(2018.2.1)のプロフェッショナル向けPHP統合開発ツール

    EditPlus 中国語クラック版

    EditPlus 中国語クラック版

    サイズが小さく、構文の強調表示、コード プロンプト機能はサポートされていません