Translations: English · বাংলা · Dansk · Deutsch · Español · فارسی · Français · Indonesia · 日本語 · 한국어 · Português (BR) · Română · Русский · Türkçe · Українська · Tiếng Việt · 简体中文 · 正體中文
保守しやすく、規模に依存しないHTML文書のために
DOCTYPEは標準モードを有効にするために必要です。
悪い例:
<html>
...
</html>
良い例:
<!DOCTYPE html>
<html>
...
</html>
もはやDOCTYPEはDTDのためにあるわけではないので、シンプルにしましょう。
悪い例:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
"http://www.w3.org/TR/html4/strict.dtd">
良い例:
<!DOCTYPE html>
まだXHTMLを書きたいんですか?
悪い例:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<!DOCTYPE html>
良い例:
<!DOCTYPE html>
UTF-8でHTML文書を書くなら、Emojiも含めほとんどあらゆる文字はそのまま書けます。
悪い例:
<p><small>Copyright © 2014 W3C<sup>®</sup></small></p>
良い例:
<p><small>Copyright © 2014 W3C<sup>®</sup></small></p>
バグのないHTML文書を作成するためには、これらの文字は常にエスケープされるべきです。
悪い例:
<h1>The "&" character</h1>
良い例:
<h1>The "&" character</h1>
これらの文字は簡単に他の文字と間違えられてしまいます。また仕様では、これらの文字へ人間にわかりやすい名前を付けていることを保証していません。
悪い例:
<p>This book can read in 1 hour.</p>
良い例:
<p>This book can read in 1 hour.</p>
いくつかの文字はコメントの開始直後や終了直前に書けません。
悪い例:
<!--This section is non-normative-->
良い例:
<!-- This section is non-normative -->
多分、あなたは終了タグを省略するためのルールを理解していないでしょう。
悪い例:
<html>
<body>
...
良い例:
<html>
<body>
...
</body>
</html>
一貫性は読みやすさのキーポイントです。
悪い例:
<img alt="HTML Best Practices" src="/img/logo.png">
<hr />
良い例:
<img alt="HTML Best Practices" src="/img/logo.png">
<hr>
そうする必要はまったくありません。
悪い例:
<h1 class=" title " >HTML Best Practices</h1>
良い例:
<h1 class="title">HTML Best Practices</h1>
これも一貫性を与えてくれます。
悪い例:
<a HREF="#general">General</A>
良い例:
<a href="#general">General</a>
同じく良い例:
<A HREF="#general">General</A>
上に同じです。
悪い例:
<img alt="HTML Best Practices" src='/img/logo.jpg'>
良い例:
<img alt="HTML Best Practices" src="/img/logo.jpg">
あなたのよくわからない整形ルールは誰かを混乱させます。
悪い例:
<input name="q" type="search">
良い例:
<input name="q" type="search">
この方が簡単に書けますよね?
悪い例:
<audio autoplay="autoplay" src="/audio/theme.mp3">
良い例:
<audio autoplay src="/audio/theme.mp3">
SVGやMathMLはHTMLの文書では直接扱えます。
悪い例:
<svg xmlns="http://www.w3.org/2000/svg">
...
</svg>
良い例:
<svg>
...
</svg>
我々はHTML文書を書いています。
悪い例:
<span lang="ja" xml:lang="ja">...</span>
良い例:
<span lang="ja">...</span>
タグ文字列はとても複雑になりえます。こういった簡単なルールによってタグ文字列を読みやすくできるでしょう。
悪い例:
<img alt="HTML Best Practices" data-height="31" data-width="88" itemprop="image" src="/img/logo.png">
良い例:
<img alt="HTML Best Practices" src="/img/logo.png" data-width="88" data-height="31" itemprop="image">
いくつかの要素はHTML文章において暗黙的にARIA role
を持っているので、それは指定しないようにしましょう。
悪い例:
<nav role="navigation">
...
</nav>
<hr role="separator">
良い例:
<nav>
...
</nav>
<hr>
lang
属性はHTML文書の翻訳に役立ちます。
悪い例:
<html>
良い例:
<html lang="en-US">
日本語は日本でのみ使われます。つまり国コードは必要ありません。
悪い例:
<html lang="ja-JP">
良い例:
<html lang="ja">
適切な属性は、ブラウザーがうまく扱ってくれるかもしれません。
悪い例:
<span data-language="french">chemises</span>
...
<strong data-type="warning">Do not wash!</strong>
良い例:
<span title="French"><span lang="fr">chemises</span></span>
...
<strong class="warning">Do not wash!</strong>
title
要素の中身は、ブラウザーに限らず、様々なアプリケーションにより利用されます。
悪い例:
<head>
<meta charset="UTF-8">
</head>
良い例:
<head>
<meta charset="UTF-8">
<title>HTML Best Practices</title>
</head>
絶対パスや絶対URLの方が開発者とユーザーの双方に安全です。
悪い例:
<head>
...
<base href="/blog/">
<link href="hello-world" rel="canonical">
...
</head>
良い例:
<head>
...
<link href="/blog/hello-world" rel="canonical">
...
</head>
アプリケーションがそのリソースをどう取り扱うべきかのヒントになります。
悪い例:
<link href="/pdf" rel="alternate">
<link href="/feed" rel="alternate">
<link href="/css/screen.css" rel="stylesheet">
良い例:
<link href="/pdf" rel="alternate" type="application/pdf">
<link href="/feed" rel="alternate" type="application/rss+xml">
<link href="/css/screen.css" rel="stylesheet">
ほとんどのブラウザーは/favicon.ico
を自動的に非同期で取得します。
悪い例:
<link href="/favicon.ico" rel="icon" type="image/vnd.microsoft.icon">
良い例:
<!-- Place `favicon.ico` in the root directory. -->
デフォルトでリクエストされるタッチ・アイコンのパスは突然変わりました。
Bad:
<!-- Hey Apple! Please download `/apple-touch-icon.png`! -->
Good:
<link href="/apple-touch-icon.png" rel="apple-touch-icon">
人間にわかりやすいラベルにより適切なスタイルシートを選択しやすくなります。
悪い例:
<link href="/css/screen.css" rel="stylesheet">
<link href="/css/high-contrast.css" rel="alternate stylesheet">
良い例:
<link href="/css/screen.css" rel="stylesheet">
<link href="/css/high-contrast.css" rel="alternate stylesheet" title="High contrast">
href
属性の値はURLとして解決できます。
悪い例:
<section itemscope itemtype="http://schema.org/BlogPosting">
<meta content="https://example.com/blog/hello" itemprop="url">
...
</section>
良い例:
<section itemscope itemtype="http://schema.org/BlogPosting">
<link href="/blog/hello" itemprop="url">
...
</section>
まだすべてのブラウザーでUTF-8がデフォルトになっていません。
悪い例:
<head>
<title>HTML Best Practices</title>
</head>
良い例:
<head>
<meta charset="UTF-8">
<title>HTML Best Practices</title>
</head>
HTTPヘッダーはサーバー側で指定されるべきで、簡単にしておきましょう。
悪い例:
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
良い例:
<meta charset="UTF-8">
仕様では文書の先頭1024バイトまでに文字エンコーディングを指定することを要求しています。
悪い例:
<head>
<meta content="width=device-width" name="viewport">
<meta charset="UTF-8">
...
</head>
良い例:
<head>
<meta charset="UTF-8">
<meta content="width=device-width" name="viewport">
...
</head>
UTF-8ならEmojiを自由に使えます。
悪い例:
<meta charset="Shift_JIS">
良い例:
<meta charset="UTF-8">
HTMLでは、style
要素におけるtype
属性の初期値はtext/css
です。
悪い例:
<style type="text/css">
...
</style>
良い例:
<style>
...
</style>
この儀式は古いブラウザーのためです。
悪い例:
<style>
<!--
...
-->
</style>
良い例:
<style>
...
</style>
script
要素はDOMの構築をブロックするかもしれません。
悪い例:
<script src="/js/jquery.min.js"></script>
<link href="/css/screen.css" rel="stylesheet">
<script src="/js/main.js"></script>
良い例:
<link href="/css/screen.css" rel="stylesheet">
<script src="/js/jquery.min.js"></script>
<script src="/js/main.js"></script>
同じく良い例:
<script src="/js/jquery.min.js"></script>
<script src="/js/main.js"></script>
<link href="/css/screen.css" rel="stylesheet">
ブラウザーは思っても見ない位置へbody
要素を補完するかもしれません。
悪い例:
<html>
<head>
...
</head>
...
</html>
良い例:
<html>
<head>
...
</head>
<body>
...
</body>
</html>
あまり使われていません。
悪い例:
<hgroup>
<h1>HTML Best Practices</h1>
<h2>For writing maintainable and scalable HTML documents.</h2>
</hgroup>
良い例:
<h1>HTML Best Practices</h1>
<p>For writing maintainable and scalable HTML documents.</p>
address
要素はメールアドレスやSNSアカウント、住所、電話番号など、実際に利用できるあなたとの連絡手段のための要素です。
悪い例:
<address>No rights reserved.</address>
良い例:
<address>Contact: <a href="https://twitter.com/hail2u_">Kyo Nagashima</a></address>
最初の改行はブラウザーに無視されますが、2番目以降はそのまま表示されます。
悪い例:
<pre>
<!DOCTYPE html>
</pre>
良い例:
<pre><!DOCTYPE html>
</pre>
blockquote
要素の中身は引用で、単なる文字の連続ではありません。
悪い例:
<blockquote>For writing maintainable and scalable HTML documents.</blockquote>
良い例:
<blockquote>
<p>For writing maintainable and scalable HTML documents.</p>
</blockquote>
blockquote
要素の中身は引用です。
悪い例:
<blockquote>
<p>For writing maintainable and scalable HTML documents.</p>
<p>— HTML Best Practices</p>
</blockquote>
良い例:
<blockquote>
<p>For writing maintainable and scalable HTML documents.</p>
</blockquote>
<p>— HTML Best Practices</p>
同じく良い例:
<figure>
<blockquote>
<p>For writing maintainable and scalable HTML documents.</p>
</blockquote>
<figcaption>— HTML Best Practices</figcaption>
</figure>
長ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーい行はとっっっっっっっっっっっっっっっっっっっっっっっっっっっても読みづらいです。
悪い例:
<ul>
<li>General</li><li>The root Element</li><li>Sections</li>...
</ul>
良い例:
<ul>
<li>General</li>
<li>The root Element</li>
<li>Sections</li>
...
</ul>
リスト・マーカーは周辺から参照される場合があります。type
属性を使ってリスト・マーカーを変更すれば、安全に参照できるでしょう。
悪い例:
<head>
<style>
.toc {
list-style-type: upper-roman;
}
</style>
</head>
<body>
<ol class="toc">
<li>General</li>
<li>The root Element</li>
<li>Sections</li>
...
</ol>
</body>
良い例:
<body>
<ol type="I">
<li>General</li>
<li>The root Element</li>
<li>Sections</li>
...
</ol>
</body>
HTMLではdl
要素は関連付けリストに限定されています。
悪い例:
<dl>
<dt>Costello</dt>
<dd>Look, you gotta first baseman?</dd>
<dt>Abbott</dt>
<dd>Certainly.</dd>
<dt>Costello</dt>
<dd>Who’s playing first?</dd>
<dt>Abbott</dt>
<dd>That’s right.</dd>
<dt>Costello becomes exasperated.</dd>
<dt>Costello</dt>
<dd>When you pay off the first baseman every month, who gets the money?</dd>
<dt>Abbott</dt>
<dd>Every dollar of it.</dd>
</dl>
良い例:
<p>Costello: Look, you gotta first baseman?</p>
<p>Abbott: Certainly.</p>
<p>Costello: Who’s playing first?</p>
<p>Abbott: That’s right.</p>
<p>Costello becomes exasperated.</p>
<p>Costello: When you pay off the first baseman every month, who gets the money?</p>
<p>Abbott: Every dollar of it.</p>
仕様ではfigcaption
要素をfigure
要素の中ほどに置けません。
悪い例:
<figure>
<img alt="Front cover of the “HTML Best Practices” book" src="/img/front-cover.png">
<figcaption>“HTML Best Practices” Cover Art</figcaption>
<img alt="Back cover of the “HTML Best Practices” book" src="/img/back-cover.png">
</figure>
良い例:
<figure>
<img alt="Front cover of the “HTML Best Practices” book" src="/img/front-cover.png">
<img alt="Back cover of the “HTML Best Practices” book" src="/img/back-cover.png">
<figcaption>“HTML Best Practices” Cover Art</figcaption>
</figure>
main
要素はコンテンツをまとめるために使えます。
悪い例:
<div id="content">
...
</div>
良い例:
<main>
...
</main>
div
要素は最後の手段です。
悪い例:
<div class="chapter">
...
</div>
良い例:
<section>
...
</section>
a
要素はほとんどの要素(フォームコントロールのようなインタラクティブ要素やa
要素自身以外)を括れます。
悪い例:
<h1><a href="https://whatwg.org/">WHATWG</a></h1>
<p><a href="https://whatwg.org/">A community maintaining and evolving HTML since 2004.</a></p>
良い例:
<a href="https://whatwg.org/">
<h1>WHATWG</h1>
<p>A community maintaining and evolving HTML since 2004.</p>
</a>
こうすることでダウンロードするリンク先のリソースを確実にローカルに保存させられます。
悪い例:
<a href="/downloads/offline.zip">offline version</a>
良い例:
<a download href="/downloads/offline.zip">offline version</a>
これらのヒントは、アプリケーションがリンク先のリソースをどう扱えば良いのかの助けになります。
悪い例:
<a href="/ja/pdf">Japanese PDF version</a>
良い例:
<a href="/ja/pdf" hreflang="ja" rel="alternate" type="application/pdf">Japanese PDF version</a>
リンク文字列はリンク先のリソースのラベルであるべきです。
悪い例:
<p><a href="/pdf" rel="alternate" type="application/pdf">Click here</a> to view PDF version.</p>
良い例:
<p><a href="/pdf" rel="alternate" type="application/pdf">PDF version</a> is also available.</p>
それらは深刻なものです。ですからstrong
要素の方がより相応しいはずです。
悪い例:
<em>Caution!</em>
良い例:
<strong>Caution!</strong>
これらの要素のセマンティックスは人類には難しすぎます。
悪い例:
<i class="icon-search"></i>
良い例:
<span class="icon-search" aria-hidden="true"></span>
引用符はブラウザーが提供します。
悪い例:
<q>“For writing maintainable and scalable HTML documents”</q>
良い例:
<q>For writing maintainable and scalable HTML documents</q>
同じく良い例:
“For writing maintainable and scalable HTML documents”
他に完全表記を提示する方法がありません。
悪い例:
<abbr>HBP</abbr>
良い例:
<abbr title="HTML Best Practices">HBP</abbr>
ruby
要素のサポートはまだモダンブラウザー間でも完了していません。
悪い例:
<ruby>HTML<rt>えいちてぃーえむえる</ruby>
良い例:
<ruby>HTML<rp> (</rp><rt>えいちてぃーえむえる</rt><rp>) </rp></ruby>
datetime
属性を使わない場合、time
要素の中身は限定されます。
悪い例:
<time>Dec 19, 2014</time>
良い例:
<time datetime="2014-12-19">Dec 19, 2014</time>
これは正式な方法ではありませんが、仕様では言及されています。
悪い例:
<code><!DOCTYPE html></code>
良い例:
<code class="language-html"><!DOCTYPE html></code>
入れ子にしたkbd
要素は人類には難しすぎます。
悪い例:
<kbd><kbd>Ctrl</kbd>+<kbd>F5</kbd></kbd>
良い例:
<kbd>Ctrl+F5</kbd>
span
要素は最後の手段です。
悪い例:
HTML <span class="best">Best</span> Practices
良い例:
HTML <em>Best</em> Practices
br
要素が使われる場所には、間違いなく改行が必要です。
悪い例:
<p>HTML<br>Best<br>Practices</p>
良い例:
<p>HTML<br>
Best<br>
Practices</p>
br
要素は改行のためにあるのではなく、コンテンツに必要な改行のためにあります。
悪い例:
<p><label>Rule name: <input name="rule-name" type="text"></label><br>
<label>Rule description:<br>
<textarea name="rule-description"></textarea></label></p>
良い例:
<p><label>Rule name: <input name="rule-name" type="text"></label></p>
<p><label>Rule description:<br>
<textarea name="rule-description"></textarea></label></p>
要素は他の要素をまたげません。
悪い例:
<p>For writing maintainable and scalable HTML documents.<del> And for mental stability.</p>
<p>Don’t trust!</p></del>
良い例:
<p>For writing maintainable and scalable HTML documents.<del> And for mental stability.</del></p>
<del><p>Don’t trust!</p></del>
picture
要素のサポートはまだよくありません。
悪い例:
<picture>
<source srcset="/img/logo.webp" type="image/webp">
<source srcset="/img/logo.hdp" type="image/vnd.ms-photo">
<source srcset="/img/logo.jp2" type="image/jp2">
<source srcset="/img/logo.jpg" type="image/jpg">
</picture>
良い例:
<picture>
<source srcset="/img/logo.webp" type="image/webp">
<source srcset="/img/logo.hdp" type="image/vnd.ms-photo">
<source srcset="/img/logo.jp2" type="image/jp2">
<img src="/img/logo.jpg">
</picture>
alt
属性は、画像を表示できなかったり、画像の読み込みを無効にしている環境へ助けになります。
悪い例:
<img src="/img/logo.png">
良い例:
<img alt="HTML Best Practices" src="/img/logo.png">
画像が補助的なものならば、きっと周囲に同等のコンテンツが存在するはずです。
悪い例:
<img alt="Question mark icon" src="/img/icon/help.png"> Help
良い例:
<img alt="" src="/img/icon/help.png"> Help
たまにどのような文字列が適切なalt
属性の値かわからない場合もあります。
悪い例:
<img alt="CAPTCHA" src="captcha.cgi?id=82174">
良い例:
<img src="captcha.cgi?id=82174" title="CAPTCHA">
(If you cannot see the image, you can use an <a href="?audio">audio</a> test instead.)
その内容にはいくつかの制限があります。空にすれば安全です。
悪い例:
<iframe src="/ads/default.html">
<p>If your browser support inline frame, ads are displayed here.</p>
</iframe>
良い例:
<iframe src="/ads/default.html"></iframe>
その中身はスクリーン・リーダーへ提供されます。
悪い例:
<map name="toc">
<a href="#general">General</a>
<area alt="General" coords="0, 0, 40, 40" href="#General"> |
<a href="#the_root_element">The root element</a>
<area alt="The root element" coords="50, 0, 90, 40" href="#the_root_element"> |
<a href="#sections">Sections</a>
<area alt="Sections" coords="100, 0, 140, 40" href="#sections">
</map>
良い例:
<map name="toc">
<p>
<a href="#general">General</a>
<area alt="General" coords="0, 0, 40, 40" href="#General"> |
<a href="#the_root_element">The root element</a>
<area alt="The root element" coords="50, 0, 90, 40" href="#the_root_element"> |
<a href="#sections">Sections</a>
<area alt="Sections" coords="100, 0, 140, 40" href="#sections">
</p>
</map>
HTMLで新しく作られた要素にはフォールバックのためのコンテンツが必要です。
悪い例:
<video>
<source src="/mov/theme.mp4" type="video/mp4">
<source src="/mov/theme.ogv" type="video/ogg">
...
</video>
良い例:
<video>
<source src="/mov/theme.mp4" type="video/mp4">
<source src="/mov/theme.ogv" type="video/ogg">
...
<iframe src="//www.youtube.com/embed/..." allowfullscreen></iframe>
</video>
長い行は把握しづらいです。
悪い例:
<tr>
<td>General</td><td>The root Element</td><td>Sections</td>
</tr>
良い例:
<tr>
<td>General</td>
<td>The root Element</td>
<td>Sections</td>
</tr>
避ける理由はないでしょう。
悪い例:
<table>
<thead>
<tr>
<td><strong>Element</strong></td>
<td><strong>Empty</strong></td>
<td><strong>Tag omission</strong></td>
</tr>
</thead>
<tbody>
<tr>
<td><strong><code>pre</code></strong></td>
<td>No</td>
<td>Neither tag is omissible</td>
</tr>
<tr>
<td><strong><code>img</code></strong></td>
<td>Yes</td>
<td>No end tag</td>
</tr>
</tbody>
</table>
良い例:
<table>
<thead>
<tr>
<th>Element</th>
<th>Empty</th>
<th>Tag omission</th>
</tr>
</thead>
<tbody>
<tr>
<th><code>pre</code></th>
<td>No</td>
<td>Neither tag is omissible</td>
</tr>
<tr>
<th><code>img</code></th>
<td>Yes</td>
<td>No end tag</td>
</tr>
</tbody>
</table>
label
要素はフォーム要素へフォーカスを当てるのに役立ちます。
悪い例:
<p>Query: <input name="q" type="text"></p>
良い例:
<p><label>Query: <input name="q" type="text"></label></p>
label
要素はいくつかのフォーム要素を含められます。
悪い例:
<label for="q">Query: </label><input id="q" name="q" type="text">
良い例:
<label>Query: <input name="q" type="text"></label>
適切なtype
属性により、ブラウザーはinput
要素へちょっとした機能を与えてくれます。
悪い例:
<label>Search keyword: <input name="q" type="text"></label>
良い例:
<label>Search keyword: <input name="q" type="search"></label>
送信ボタンは、そのデフォルトのラベルがブラウザーや言語設定によって変わってしまいます。
悪い例:
<input type="submit">
良い例:
<input type="submit" value="Search">
もし入力したテキストがpattern
属性にマッチしない場合、title
属性の値がヒントとして表示されます。
悪い例:
<input name="security-code" pattern="[0-9]{3}" type="text">
良い例:
<input name="security-code" pattern="[0-9]{3}" title="A security code is a number in three figures." type="text">
label
要素がラベルのためにあり、placeholder
属性は短いヒントのためにあります。
悪い例:
<input name="email" placeholder="Email" type="text">
良い例:
<label>Email: <input name="email" placeholder="[email protected]" type="text"></label>
長い行は把握しづらいです。
悪い例:
<datalist id="toc">
<option label="General"><option label="The root element"><option label="Sections">
</datalist>
良い例:
<datalist id="toc">
<option label="General">
<option label="The root element">
<option label="Sections">
</datalist>
max
属性があると、value
属性を簡単な形式で書けます。
悪い例:
<progress value="0.5"> 50%</progress>
良い例:
<progress max="100" value="50"> 50%</progress>
min
とmax
属性があると、value
属性を簡単な形式で書けます。
悪い例:
<meter value="0.5"> 512GB used (1024GB total)</meter>
良い例:
<meter min="0" max="1024" value="512"> 512GB used (1024GB total)</meter>
仕様がそう要求しています。
悪い例:
<fieldset>
<p><label>Is this section useful?: <input name="usefulness-general" type="checkbox"></label></p>
...
<legend>About "General"</legend>
</fieldset>
良い例:
<fieldset>
<legend>About "General"</legend>
<p><label>Is this section useful?: <input name="usefulness-general" type="checkbox"></label></p>
...
</fieldset>
HTMLでは、script
要素におけるtype
属性の初期値はtext/javascript
です。
悪い例:
<script type="text/javascript">
...
</script>
良い例:
<script>
...
</script>
この儀式は古いブラウザーのためです。
悪い例:
<script>
/*<![CDATA[*/
...
/*]]>*/
</script>
同じく悪い例:
<script>
<!--
...
// -->
</script>
良い例:
<script>
...
</script>
明快さとパフォーマンスの両面でasync
属性が最良です。
悪い例:
<script>
var script = document.createElement("script");
script.async = true;
script.src = "//example.com/widget.js";
document.getElementsByTagName("head")[0].appendChild(script);
</script>
良い例:
<script async defer src="https://example.com/widget.js"></script>
インデントは読みやすさにおいて重要です。
悪い例:
<html>
<head>
...
</head>
<body>
...
</body>
</html>
良い例:
<html>
<head>
...
</head>
<body>
...
</body>
</html>
絶対パスはインターネット回線のないローカルの環境でもうまく動きます。
悪い例:
<link rel="apple-touch-icon" href="http://you.example.com/apple-touch-icon-precomposed.png">
...
<p>You can find more at <a href="//you.example.com/contact.html">contact page</a>.</p>
良い例:
<link rel="apple-touch-icon" href="/apple-touch-icon-precomposed.png">
...
<p>You can find more at <a href="/contact.html">contact page</a>.</p>
プロトコルを指定すると、外部リソースを確実かつ安全に読み込めます。
悪い例:
<script src="//example.com/js/library.js">
良い例:
<script src="https://example.com/js/library.js">