どうやら<link rel="stylesheet" ...
、ドキュメント本文を追加することは、W3C 標準では悪い習慣と見なされています。<style>
ボディにブロックを追加する場合も同じです...
<head>
タグの外側に CSS を追加するための標準準拠のソリューションはありますか? ドキュメントの最後にあるように。
CSS スタイルを特定のイベントにのみ含めたい場合は、先頭でそうすることを妨げるものは何もありません。
var linkElement = document.createElement("link");
linkElement.rel = "stylesheet";
linkElement.href = "path/to/file.css"; //Replace here
document.head.appendChild(linkElement);
これには、スタイルシートを非同期の方法で追加するという追加の利点があり、ブラウザーが他のものをダウンロードするのをブロックしません。
この問題を解決する 1 つの方法は、.get() を使用してロードし、CSS
必要な場合にのみ head タグに追加することです。
Jクエリ
var css = "foobar.css";
var callback = function() {
alert("CSS is now included");
// your jquery plugin for a navigation menu or what ever...
};
$.get(css, function(data){
$("<style type=\"text/css\">" + data + "</style>").appendTo(document.head);
callback();
});
このcallback
関数はscript
、ファイルに依存するコードをCSS
適切にフォーマットし、CSS
as が追加された後にのみ実行できるようにするのに便利です!
サーバー側プログラミングや DHTML などの作業を開始すると、この標準はほとんど無視されるようになると思います。
静的な HTML ファイルの場合は、必ず HEAD タグ内に CSS のみを含めるという規則に従うことができます/従うべきですが、条件付き出力と対話機能の場合は、条件付きスタイルを設定することで単純化できる場合もあります。最終的に、これは結果のドキュメントを複雑にすることを考慮してください。ブラウザは問題なくレンダリングできるかもしれませんが、自分でソースを見ると、レイアウト/表示を定義するすべてのスタイルが HEAD 内にあると、読みやすくなります。もちろん、それが悪い習慣である理由については、他にも多くの例と理由があります。
HTML 標準は、サーバー サイド スクリプトや DHTML などとは別に存在します。つまり、HTML/SSS/JavaScript 標準ではありません。
scoped 属性を使用できるのは HTML5 のみですが、DOCTYPE を正しく宣言していることを確認してください。
<style type="text/css" scoped>
.textbox {
color: pink
}
</style>
外部 CSS シートについて話している場合、正しい方法は次のとおりです。
<link href="....link to your style...." rel="stylesheet">
インライン CSS を含めたい場合は、次のようにするだけです。
<style>
....Your style here...
</style>