2011-06-27 9 views
12

HTMLページの<head></head>セクションに外部スタイルシートが含まれている場合、HTMLの前にロードされ、レンダリング時にすぐに適用されますか?具体的なユースケースを紹介しましょう。外部スタイルシートはHTMLの前にロードされますか?

外部Styles.cssをファイル:

form label { 
    display: none; 
} 

ページ含むフォーム:

<head> 
    <link rel="stylesheet" href="styles.css" type="text/css" /> 
</head> 
<form action="process.php" method="post"> 
    <label for="name">Name</label> 
    <input type="text" id="name" name="name" /> 
</form> 

私はラベルが(原因CSSのダウンロードに無ちらつき)ページのロード時に見えなくなることを確信することができますか?

それ以外の場合は、スタイル属性をインラインで追加できますが、これはメンテナンスの悪夢となります。

+1

なぜあなたは 'label'を隠したいのですか? – You

+1

良い質問です!その答えは、通常はラベルが見えないと確信することができますが、100%保証はありません - AFAIK、スタイルシートは常に読み込まれ、ページと平行して解析され、JSのようなものをブロックしませんスクリプトは行います。関連:[Webページの読み込みと実行シーケンス](http://stackoverflow.com/questions/1795438/1795502#1795502) –

+0

これはブラウザによって異なると思いますが...確かにわかりません。 –

答えて

6

CSSをヘッドセクションに含めると、ラベルが表示されないことが確信できます。

最初にHTMLがダウンロードされます。ブラウザは、先頭からhtmlの読み込みを開始し、HEADセクションで参照されているすべてのCSSおよびJavaScriptファイルの取得を開始します。 HEAD内のすべてのCSSおよびJavaScriptファイルがダウンロードされて評価されるまで、ページはペイントされません(表示されます)。

+0

CSSコードを「」に「