web-dev-qa-db-ja.com

なぜ<script src = "min.js"> </ script>が<link rel = "stylesheet" href = "min">なぜ<style href = "min.css"> </ style>

Web開発を学び始めた私の親relativeが私にこの質問をしました。

<script src="min.js"></script>なのに<link rel="stylesheet" href="min.css">なのに<style href="min.css"></style>なのにlinkタグを使用してページに外部cssを追加するのに、CSSをページにリンクするが<style>...</style>を使用して<head>内に記述するのはなぜですか?

それは仕様のせいだと彼に言った。彼に提供する情報はありますか?

72
Jitendra Vyas

歴史的...偶然ですか?彼に diveintohtml5.infoの過去の部分 を読んでもらうことをお勧めします。ここでは、いくつかの興味深いストーリーがあり、実際にはメールのやり取りがWeb開発者の間で行われます。 Web開発者は、彼らが、、実際には、私たちが最近見ているWebを開発していることを意味します;)

つまり<img>私たちが使用するタグ:

<IMG SRC="file://foobar.com/foo/bar/blargh.xbm">

になり得る:

<ICON name="NoEntry" href="http://note/foo/bar/NoEntry.xbm">

または

<A HREF="..." INCLUDE>See photo</A>

または

<INCLUDE HREF="...">

しかし 最終的に開発者は<img>、すでに実装されています

現在のところ、INCLUDE/EMBEDをサポートする準備はできていません。 …だから、おそらく行こうと思う(ICONではなく、インライン化されたすべての画像を意味のあるアイコンと呼ぶことはできないため)。当分の間、インライン化された画像は明示的にコンテンツタイプではありません。将来的には、(MIMEの一般的な適応とともに)それをサポートする予定です。実際、現在使用している画像読み取りルーチンは、その場で画像形式を把握しているため、ファイル名拡張子は重要ではありません。

あなたの質問に対する直接的な答えはわかりませんが、<link>タグも。答えを見つけるには、おそらくいくつかのWebアーカイブを掘ることが含まれます。

42
Xaerxess

少なくともW3Cの観点からは違いがあります。

<style>要素は、現在のドキュメントに適用されるCSSルールのブロックを導入します。ただし、外部スタイルシートは実際にはドキュメント全体と見なされます 関連 現在のページに、ユーザーエージェントはtypeおよびmediaに応じて、そのようなドキュメントを自由に無視できますリンクの属性。例えば:

<link rel="stylesheet" type="text/css" media="screen" href="screen.css" />
<link rel="stylesheet" type="text/css" media="print" href="print.css" />

この状況では、ユーザーエージェントは通常、リンクの1つ、つまりscreen one(通常のレンダリング用)またはprint one(まあ、印刷用)のいずれかのみに従います。アイデアは、すべてを取得して後でメディアタイプでフィルタリングするのではなく、適切なリソースをダウンロードするだけで帯域幅を維持することでした。

これは仕様に記載されています。

LINK要素が外部スタイルシートをドキュメントにリンクする場合、type属性はスタイルシート言語を指定し、media属性は目的のレンダリングメディアを指定します。ユーザーエージェントは、現在のデバイスに適用されるスタイルシートのみをネットワークから取得することで時間を節約できます。

26

どちらも基本的には同じ意味を持ち、HTMLにある種の矛盾を発見しました。この原因は、標準がさまざまなブラウザーの実装に基づいていたことです。さまざまなブラウザがさまざまなタグの属性を思いついたため、W3Cは後方互換性を維持するために矛盾の一部を保持することにしました。

srcを使用する要素:script img iframe input video frame

hrefを使用する要素:a link base

3
Peter Olson

<link>タグは、他のドキュメントを現在のドキュメントに「リンク」し、それとの関係、つまりrelを記述するために使用されます。

<link>を使用して、他のものをドキュメントにリンクすることもできます。たとえば、ファビコン:

<link rel="shortcut icon" href="favicon.ico" />
1
Rocket Hazmat

これは物事を説明するかもしれない、私は推測する: http://www.w3.org/TR/html4/struct/links.html

1
Edgar

link refstyleの考えられる理由:

linkは、「メタデータコンテンツ」が許可されているhead、通常はhead

styleは、HTML5より前のbodyに入れることができませんでした(現在、scopedを使用できますが、外部スタイルは使用できません)。したがって、link refstyle srcの選択は任意です。

ただし、scriptは、HTML5の前のbodyに外部スクリプトを既に含めることができるため、script srcが必要でした。しかし、それは存在しなければならなかったので、headscriptはすでに許可されていた)でも許可し、重複を避けるためにlink rel=scriptを許可しないのはなぜですか?