これは私のHTMLです
<!doctype html>
<html lang="en" id="home">
<head>
<meta charset="utf-8">
<title>Me</title>
<link rel="stylesheet" href="css/reset.css" />
<link rel="stylesheet" href="css/style.css" />
</head>
<body style>
<div class="centered">
<img alt="Me" id="Me" src="cache/me.jpg" />
</div>
</body>
</html>
これはstyle.cssです
.centered {
position: fixed;
top: 50%;
left: 50%;
margin-top: -300px;
margin-left: -200px;
}
#Me {
display: block;
margin: 0 auto;
width: 400px;
height: 600px;
}
style.css ファイルの内容を HTML 内のスタイル タグに入れると、スタイルシートがうまく適用されます。を削除する<!doctype html>
と、ページが正常にレンダリングされます。W3Cバリデーターを使用してHTMLを検証しましたが、問題なく通過しました。
編集:
すべてのファイルをサイトからローカル ドライブにコピーし、Chrome で index.html を開きました。<!doctype html>
正常にレンダリングされていますが、修正を削除する理由も説明されていません。
編集: Firefox の開発者ツールを使用すると、エラーがあります: The resource from this URL is not text: http://foo.foo/css/reset.css。このリンクによると、 「W3C 仕様では、CSS ファイルは "text/css" MIME タイプで提供されるべきであると言及されており、"厳密モード" では仕様に厳密に従い、CSS ファイルを期待するため、これは Web サーバーの構成の問題である必要があります。正しい MIME タイプで提供される」 .
編集: フィドラーを実行して HTTP 接続をデバッグします。CSS ファイルは「application/octet-stream」として送信されています。これは HTTP ヘッダーです。
HTTP/1.1 200 OK
Content-Type: application/octet-stream
ETag: "3420655293"
Last-Modified: Fri, 04 Oct 2013 13:26:57 GMT
Content-Length: 765
Date: Fri, 04 Oct 2013 13:54:49 GMT
Server: lighttpd/1.4.33
編集: 問題が何であるかがわかりました。Web サーバーの構成が間違っていました。CSS の MIME タイプが宣言されておらず、デフォルトでtext/cssではなくtext/plainに設定されていました。