海外サイト Marko Denic で公開された HTML Tips を著者 @denicmarko より許可をもらい、意訳転載しています。
この記事では、あまり知られていないHTMLの小技20個を実例サンプルと一緒にご紹介します。
CSSやJavaScriptなども使わずに、わずかなHTMLコードだけで実装可能な便利テクニックで、手軽に利用できるのもポイントです。
先日紹介したCSS小技テクと一緒に活用してみてはいかがでしょう。
そもそもHTMLってなに?
HTML(Hypertext Markup Language)は、Webブラウザで表示するための基本となる標準的なマークアップ言語です。また、CSS(Cascading Style Sheets)などの技術や、JavaScriptなどのスクリプト言語によってサポートされることもあります。
ホームページを作るときは、まずHTMLをつかって文章の構成を決めてマークアップすることで、表示したい情報をデザインします。ウェブページの基本といって良いでしょう。
では、わずかなCSSコードで実装できるテクニックを詳しくみていきましょう。
あまり知られていない、短いHTMLコードで実装できるテクニックまとめ
- 1. loading=”lazy”属性
- 2. Eメールや電話、SMSショートメッセージへの送信
- 3. リストの順番を決めるstrat属性
- 4. meter要素で数字を表示
- 5. HTMLネイティブ・サーチ
- 6. Fieldset要素でラベルをグループ化
- 7. window.opener を使って元ウィンドウの情報の取得を防止
- 8. base要素ですべてのリンクを新しいタブで開く
- 9. ファビコンのキャッシュ防止
- 10. spellcheck属性でスペルチェック
- 11. HTMLスライダーの表示
- 12. HTMLだけでアコーディオンを表示
- 13. markタグでテキスト強調ハイライト
- 14. ダウンロードファイルにはdownload属性を
- 15. webpファイル形式の使用
- 16. ビデオ動画のサムネイル表示
- 17. type=”search”で取り消しマークを表示
loading="lazy"
属性
ウェブパフォーマンス改善テクニックのひとつで、loading="lazy"
属性利用すると、ユーザーがスクロールするまで読み込みを遅延することができます。YouTube動画の埋め込み用iframeコードや、大きなサイズの画像表示などにも便利。
<img src='image.jpg' loading='lazy' alt='代替テキスト'>
Eメールや電話、SMSショートメッセージへの送信
Eメール作成ページを開いたり、電話に直接発信したり、ショートメッセージを送信できるテクニック。
<a href="mailto:{email}?subject={subject}&body={content}"> Eメールを送信 </a> <a href="tel:{phone}"> お電話ください </a> <a href="sms:{phone}?body={content}"> SMSショートメッセージを送信 </a>
リストの順番を決めるstrat
属性
start
属性を利用することで、リスト形式の数字を自由に決めることができます。
meter
要素で数字を表示
meter
要素を利用すれば、色付きスライダーで数値や数量を表示できます。JavaScriptやCSSを一切必要ありません。
See the Pen
HTML <meter> by Marko (@denic)
on CodePen.
HTMLネイティブ・サーチ
フォーム入力要素にあらかじめデータリストをいくつか指定しておくことで、入力欄にドロップダウンで候補キーワードとして表示できます。
See the Pen
Native HTML Search by Marko (@denic)
on CodePen.
Fieldset
要素でラベルをグループ化
fieldset
要素を利用すれば、ウェブフォーム内の複数のコントロールやラベル(label
)をひとまとめにグループ化できます。
See the Pen
Fieldset Element by Marko (@denic)
on CodePen.
window.opener を使って元ウィンドウの情報の取得を防止
target="_blank
で開いたページでは、元のページのwindow.openerにアクセスできるようになります。「いつの間にか元のウィンドウがフィシングサイトに遷移していた」など、セキュリティやパフォーマンスに悪影響となる可能性も。これを防ぐには、rel="noopener"
またはrel="noreferrer"
を含めるようにしましょう。
<a href="https://markodenic.com/" target="_blank" rel="noopener"> 参考ウェブサイト </a>
base
要素
HTMLドキュメント内のすべてのリンクを新しいタブで開きたいときは、base
要素を使用しましょう。以下のサンプル例では、どちらのリンクも新しいタブで開きます。
See the Pen
Base Element by Marko (@denic)
on CodePen.
ファビコンのキャッシュ防止
ウェブサイトのファビコンを更新するには、ファイル名に?v=2
を追加することで、ブラウザに新しいバージョンをダウンロードさせることができます。
ユーザーが確実に新しいバージョンを入力できるよう、特に本番環境で有効的なテクニック。
<link rel="icon" href="/favicon.ico?v=2" />
spellcheck
属性でスペルチェック
要素のスペルミスをチェックするかどうか決めることができるspellcheck
属性。
See the Pen
spellcheck attribute by Marko (@denic)
on CodePen.
HTMLスライダーの表示
input type="range"
を使えば、数値をスライダーで調整できるように。選択している数値はinput type="number"
で表示できます。
See the Pen
input type="range" by Marko (@denic)
on CodePen.
HTMLだけでアコーディオンを表示
details
要素を使えば、HTMLだけのネイティブアコーディオンを作成できます。
See the Pen
HTML Accordion by Marko (@denic)
on CodePen.
mark
タグでテキスト強調ハイライト
mark
タグを利用すれば、テキストの一部を黄色マーカーで強調できます。
ダウンロードファイルにはdownload
属性を
URLリンクにdownload
属性を使えば、ファイルに移動するのではなく、ファイルを直接ダウンロードできます。
<a href='path/to/file' download> Download </a>
webp
ファイル形式の使用
画像フォーマットに「.webp」を使用することで、画像サイズを小さくすることができ、ウェブサイトのパフォーマンスを向上させることも。
<picture> <!-- サポートされていたら.webp画像を読み込む --> <source srcset="logo.webp" type="image/webp"> <!-- .webp画像や<picture>タグが ブラウザにサポートされていないときの フォールバックとして --> <img src="logo.png" alt="logo"> </picture>
ビデオ動画のサムネイル表示
poster
属性を使えば、動画の読込中や再生ボタンを押すまで表示される画像を細かく指定できます。
<video poster="path/to/image">
type="search"
で取り消しマークを表示
検索ボックスにtype="search"
を使用すると、取り消し用の「X」クリアマークが自動で表示されます。
HTMLのみで実装できる機能は、こんなにもたくさんあるんですね。今後も小技テクニックを追加、アップデート予定です。