IE9 のバグを修正するために、「DOCTYPE」宣言をページの上部に配置する必要がありました。
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<?php
require_once 'navBar.php';
?>
DOCTYPE をファイルの先頭に置くことで、IE9 の「バグ」を修正しました。
IE9 の「バグ」は、ファイルの上部に DOCTYPE がないと、インライン ブロック スタイルを持つ div がインライン ブロック スタイルを無視し、垂直にスタックされることでした。
ページにインライン ブロック スタイルの 3 つの div があり、Firefox と Android ブラウザーでは、インライン ブロックの 3 つの div が左から右に水平に 1 行に表示されます。
しかし、IE9 では、DOCTYPE を 1 行目に追加する必要がありました (2 行目ではなく、上部の php セクションの後ではなく、DOCTYPE を 1 行目に追加する必要がありました)。
その後、IE9 はインライン ブロック スタイルを尊重します。
問題は -- navbar.php 内で session_start() を呼び出します。
ご存じのように、session_start() ALSO は、ブラウザー出力が送信される前の最初の行である必要があります。そうしないと、errmsg が返されます。このような:
Warning: session_start() [function.session-start]: Cannot send
session cache limiter - headers already sent (output started at
/homepages/42/d329883313/htdocs/ourSite/landing_page.php:2) in
/homepages/42/d329883313/htdocs/ourSite/navBar.php on line 1
(ps私のIDEはファイルをUTF-8として保存するので、BOMは問題ではありません。そして、私はすでにチェックしました-DOCTYPEの終わりとsession_start()の始まりの間に余分な空白はありません。 DOCTYPE がブラウザーに何かを送信するため、session_start() が壊れています。)
私の質問:
インライン ブロックと DOCTYPE および session_start() を保持するにはどうすればよいですか?
単純な UI スタイルの機能が、2 つの「MUST-BE-ON-LINE-1」コード要素 (DOCTYPE と session_start) を互いに突き合わせているのは悪いことです。