私の友人は、ヘッドセクションの<div style=""></div>
ようlink href
に配置された圧縮されたcssファイルの代わりに使用すると、パフォーマンスがいくらか向上すると言いました。本当?
私の友人は、ヘッドセクションの<div style=""></div>
ようlink href
に配置された圧縮されたcssファイルの代わりに使用すると、パフォーマンスがいくらか向上すると言いました。本当?
回答:
あなたの友人が言及したパフォーマンスの向上は、CSSファイルを使用した(他の要因による)パフォーマンスの向上の量と比較して、おそらく取るに足らないものです。
style属性を使用すると、ブラウザはその特定の要素(この場合は要素)のルールのみを描画し<div>
ます。これにより、CSSエンジンがCSSセレクターに一致する要素(a.hover
または#someContainer li
)を見つけるためのルックアップ時間が短縮されます。
ただし、要素レベルでスタイルを設定すると、CSSスタイルルールを個別にキャッシュできなくなります。通常、CSSファイルにスタイルを配置すると、キャッシュを実行できるため、ページをロードするたびにサーバーからのロード量が削減されます。
スタイルルールを要素レベルに配置すると、どの要素がどのようにスタイル設定されているかがわからなくなります。また、複数の要素を一緒に再描画できる特定の要素をペイントすることによるパフォーマンスの向上を後押しする可能性もあります。CSSファイルを使用するとCSSがHTMLから分離されるため、スタイルが正しいことを確認でき、後で簡単に変更できます。
したがって、比較を見ると、CSSファイルを使用すると、要素レベルでスタイルを設定するよりもはるかに多くの利点があることがわかります。
外部CSSスタイルシートファイルがある場合は忘れないでください。ブラウザはファイルをキャッシュできるため、アプリケーションの効率が向上します。
インラインスタイルとスタイルシートを使用すると、ページの読み込みが速くなります。場合によっては、より速くする必要があります。
hrefを使用してスタイルシートを使用する場合、サーバーへの別の要求が必要であり、応答後にファイルを解析する必要があります。インラインスタイルでは、そのようなことはなく、直接解析するだけです。
クライアントのインターネットが遅い場合、その単一の要求は非常に遅くなり、スタイルシートが配信されるまでページのスタイルが失われる可能性があります。繰り返しますが、インラインの場合、遅延はまったくありません。
スタイルシートを使用する唯一の理由は、整理することです。不要な場合もあるので、インラインスタイルやドキュメント内スタイルシートで十分です。
この場合のパフォーマンスは多くの要因(CSSセレクターの複雑さ、ドキュメントサイズなど)に依存するため、答えるのは簡単な質問ではありません。ただし、孤立したケースを取り上げると、CSSクラスは一般にインラインスタイルよりも高速であることがわかります。
インラインスタイルとCSSクラスの違いです。
リンクされたスタイルシートまたは外部スタイルシートの理由は、特にサイトの複数のページで同じdivを使用している場合に、ブラウザにキャッシュできるようにするためです。つまり、ブラウザがページをリロードするたびにコードをリロードする必要はなく、ブラウザはスタイルシートを1回ロードするだけで済みます。また、コードがクリーンになり、変更やデバッグが容易になります。
真実は「はい」です
大きな違いがあります。特にユーザーインターフェイスを自動化する場合。次のコードを試してください。IE10とメモ帳を使って開発しています。私はテストを行っていくうちに学んでいます。これは短縮バージョンのテストです。(私があなたの答えを示すためにコードを減らしたので多分エラーがあります)
参照している画像をクリックして、アラートメッセージを読んでください。ヒント:編集(テスト)する前に、このファイルを編集として再度保存してください。
よろしくお願いします、ドン
<!DOCTYPE html>
<head>
<style>
div.grid
{
width:180px;
height:42px;
border:none;
}
img
{
width:50px;
height:50px;
margin:2px;
float:left;
border: 1px solid red;
}
</style>
<script>
function handleSelect(xId)
{
//
// TESTPOINT
alert("TESTPOINT\r>Grid: " + xId);
//
// GET BORDER COLOR
// NOTE: An empty or blank value when you can see a border means the tag itself does not
// have 'border properties' (style="border: 2px{width} solid{style} green{color}").
// although there can be a border detailed via css local or external or via code (script).
// If the 'border properties' are returned then they were setup at the tag as
// above or the 'border properties' were updated by script code not css code.
// If the 'border properties' are NOT returned then they were setup via css.
// Thus, since everything seems to be heading toward edit on the fly (live) then css is NOT the way to go (learning).
// HINT: Margin property is also not readable if set via css. Most likely all the properties values are the same way.
// Thus, setting the property values of a tag should be set at the tag control.
// (works) cBorder=document.getElementById(xId).style.borderWidth;
// (works) cBorder=document.getElementById(xId).style.borderStyle;
// (works) cBorder=document.getElementById(xId).style.borderColor;
// (works) cBorder=document.getElementById(xId).style.border;
//cBorder=document.getElementById(xId).style.border;
cBorder=document.getElementById(xId).style.margin;
alert("TESTPOINT\r>Grid: " + xId + "\r>Border: " + cBorder);
//
// SELECT IMAGE
document.getElementById(xId).style.margin="1px";
document.getElementById(xId).style.border="2px solid gold";
document.getElementById(xId).innerHTML=xId;
alert("TESTPOINT\r>Grid: " + xId + "\r>Border: " + cBorder + "\r>[set border color gold]");
//
// GET BORDER COLOR
//var cBorder=document.getElementById(xId).style.border-Color; //Error
//var cBorder=document.getElementById(xId).style.border-color; //Error
//var cBorder=document.getElementById(xId).style.borderColor; //Error
//var cBorder=document.getElementById(xId).style.bordercolor; //Undefined
cBorder=document.getElementById(xId).style.border; //Empty
alert("TESTPOINT\r>Grid: " + xId + "\r>Border: " + cBorder + "\r>[set border color gold]" + "\r>Border: " + cBorder);
}
</script>
</head>
<body>
<div class="grid">
<img style="border: 2px solid green" id="R0C0" src="someimage.bmp" onclick="handleSelect(id)">
<img style="border: 2px solid blue" id="R0C1" src="someimage.bmp" onclick="handleSelect(id)">
<img style="border: 2px solid purple" id="R0C2" src="someimage.bmp" onclick="handleSelect(id)">
</div>
<div class="grid">
<img id="R1C0" src="someimage.bmp" onclick="handleSelect(id)">
<img id="R1C1" src="someimage.bmp" onclick="handleSelect(id)">
<img id="R1C2" src="someimage.bmp" onclick="handleSelect(id)">
</div>
<div class="grid">
<img id="R2C0" src="someimage.bmp" onclick="handleSelect(id)">
<img id="R2C1" src="someimage.bmp" onclick="handleSelect(id)">
<img id="R2C2" src="someimage.bmp" onclick="handleSelect(id)">
</div>
</body>
</html>
外部スタイルシートを使用することは、divに適用したスタイルを思い出すのに役立つため、間違いなくより良いオプションです。HTMLコードが少ないほどロードが速くなるため、ページのロード時間が短縮されます。
ただし、場合によっては、特定のdivのプロパティを変更する必要がある場合があり、インラインスタイルが最適なオプションです。そして、本当に言えば、1つまたは2つのインラインスタイルは、ページの読み込み時間を変更しません。
内部スタイルシートの別のオプションがありますが、テンプレートを作成する場合のように、単一ページのWebサイトがある場合にのみ使用されます。これは、すべてのHTMLページにCSSを記述する必要があるためです。
他のすべての要素または画像に複数の小さなCSSファイルがある外部CSSよりもインラインCSSを使用することを好みます。それぞれに5〜10行のコードを含む複数のCSSファイルをダウンロードしても意味がありません。要素にホバー、アクティブ、チェックなどのプロパティが含まれている場合は、開発プロセスの複雑化を回避するため、外部CSSファイルを使用することになっています。