HTML 5_html/css_WEB-ITnose の Menu 要素と Menuitem 要素を使用してメニューをすばやく作成する

WBOY
リリース: 2016-06-24 11:53:01
オリジナル
1389 人が閲覧しました

翻訳: HTML 5 の Menu および Menuitem の要素の紹介

翻訳者: dwqs

今日は、HTML 5 の 2 つの要素である Menu と Menuitem を紹介します。これら 2 つの要素は、W3C インタラクティブ要素の 1 つです。一部。現在、Web の進化はドキュメント間のリンクに限定されず、ページの動作はますます増えています。そのため、Web インタラクションの標準を形成する時期が来ています。

Menu と Menuiitem は、開発者の間で最も話題になっている 2 つの要素です。これは、おそらく主流のブラウザーでそれらが十分にサポートされていないためです。この記事を書いている時点で、FireFox はこの要素を実装しています。

Menu と Nav の比較

Menu に関しては、Nav 要素と混同しないように注意してください。これら 2 つの要素を区別するには、ドキュメント仕様が優れたツールです。

Nav 要素は、Web ページのナビゲーション ブロックを表す HTML ナビゲーション要素で、通常、ユーザーがページ内に移動したり、他の Web サイトのページに移動したりできるようにするリンクのコレクションが含まれています。

メニューはメニュー コマンドのコレクションであり、デスクトップ アプリケーションやモバイル アプリケーションに似ています。デスクトップ アプリケーションは通常、ツールバー メニューまたはコンテキスト メニューを使用してさまざまなタスクを表示します。 Nav と Menu の最も基本的な違いは、Nav 要素にはユーザーが Web ページ間を移動できるようにするためのナビゲーション リンクが含まれているのに対し、Menu 要素ではユーザーが特定のタスクを実行できるようにする必要があることです。

Menu 要素の使用

コンテナでは、Menu 要素を使用してコンテキスト、ツールバー、ポップアップ メニューを作成します。ただし、後の 2 つの機能は、FireFox を含むブラウザにはまだ実装されていません。現時点では、ブラウジングがそれらをどのように実装し、どのように見えるかを推測するのは困難です。ただし、次世代のインタラクション デザインにおいて、ツールバーやポップアップ メニューの仕様を変更する良い機会でもあります。

今のところは、コンテキストに焦点を当てます。

コンテキスト

アプリを右クリックすると、コンテキスト メニューが表示されます。表示されるオプションは、ユーザーがクリックした場所によって異なります。

JavaScript オプション

JavaScript および JQuery プラグインを介して Web ページにコンテキスト メニューを追加できます。問題は、このアプローチでは追加のマークアップが必要であり、スクリプトによってブラウザのネイティブ メニューが削除されるため、適切に処理しないとユーザーがイライラすることです。

ローカル ソリューション

Menu と Menuitem を一緒に使用すると、新しいメニューがローカル コンテキスト メニューにマージされます。たとえば、「He​​llo World」というメニューを本文に追加します

<body contextmenu="new-context-menu"><menu id="new-context-menu" type="context">    <menuitem>Hello World</menuitem></menu></body>
ログイン後にコピー

上記のコード スニペットでは、含まれる基本属性は id、type、contextmenu であり、メニュー タイプが context であることを指定し、また、 new メニュー項目が表示される領域。

この例では、マウスを右クリックすると、スコープが本文であると指定したため、新しいメニュー項目がドキュメント内の任意の場所に表示されます。

もちろん、div、main、section などの特定の要素の contextmenu に値を割り当てることで、新しいメニュー項目の範囲を制限することもできます。

<body>    <div contextmenu="new-context-menu">    <!-- content -->    </div>    <menu id="new-context-menu" type="context">        <menuitem>Hello World</menuitem>    </menu></body>
ログイン後にコピー

FireFoxで見ると、新しく追加したメニュー項目が一番上に追加されているのがわかります。

サブメニューとアイコンを追加します

サブメニューは、類似または相互のメニュー項目のグループで構成されます。 PS における画像の回転はその典型的な例です。メニューを使用してサブメニューを追加するのは非常に簡単で直感的です。以下のサンプル コードを確認してください:

rrree

Menu 要素をサポートするブラウザで実行すると、新しいメニューに追加された 4 つのサブメニューが表示されます:

icon

新しい属性の導入 :アイコンの場合は、この属性を使用してメニューの横にアイコンを追加します。 icon 属性は menuitem 要素でのみ使用できることに注意してください。コード例:

<menu id="demo-image" type="context">    <menu label="Image Rotation">        <menuitem>Rotate 90</menuitem>        <menuitem>Rotate 180</menuitem>        <menuitem>Flip Horizontally</menuitem>        <menuitem>Flip Vertically</menuitem>    </menu></menu>
ログイン後にコピー

結果はご覧のとおりです:

メニューに機能を追加する

メニューのように見えるが、機能がまったくないサンプルをいくつか作成しました。メニューをクリックすると、ユーザーは何かが起こることを期待します。たとえば、「コピー」をクリックするとテキストまたはリンクがコピーされ、「新規フォルダー」をクリックすると新しいフォルダーが作成されます。これらの機能は JavaScript を使用して実装できます。 之開始 注: 始める前に、JavaScript を学びたい人にとっては、Jeremy Mcpeak のコースを参照することをお勧めします。 上の「画像の回転」を例に、クリック時に画像を回転する機能を追加してみましょう。 CSS 3 の Transform と Transition は、この機能をブラウザに実装できます。画像を 90 度回転するスタイルは次のとおりです:

<menu id="demo-image" type="context">    <menu label="Image Rotation">        <menuitem icon="img/arrow-return-090.png">Rotate 90</menuitem>        <menuitem icon="img/arrow-return-180.png">Rotate 180</menuitem>        <menuitem icon="img/arrow-stop-180.png">Flip Horizontally</menuitem>        <menuitem icon="img/arrow-stop-270.png">Flip Vertically</menuitem>    </menu></menu>
ログイン後にコピー

このスタイルを使用するには、画像に適用する関数を記述する必要があります。

れーい

把这个函数和每一个menuitem的onclick属性关联,并且传递一个参数:rotate-90

<menu id="demo-image" type="context">    <menu label="Image Rotation">        <menuitem onclick="imageRotation('rotate-90')" icon="img/arrow-return-090.png">Rotate 90</menuitem>        <menuitem icon="img/arrow-return-180.png">Rotate 180</menuitem>        <menuitem icon="img/arrow-stop-180.png">Flip Horizontally</menuitem>        <menuitem icon="img/arrow-stop-270.png">Flip Vertically</menuitem>    </menu></menu>
ログイン後にコピー

 

完成这个之后,再创建将图片旋转180度和裁剪图片的样式,将每一个函数添加到独立的menuitem中,记得传参数 。查看效果:in the demo page.

查看更多关于Menu元素的信息:Interactive Element: The Menu Element

查看我的示例:http://jsfiddle.net/Web_Code/15pc5zfv/1/embedded/result/

 

 

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!