2

私は最終的に自分の Web ページを完成させ、すべてのブラウザーで完璧に動作します。

ただし、ヘッダーとフッターのコンテンツをサーバー側のインクルードに抽象化すると、Firefox/Opera/Safari ではレイアウトがわずかに変更されますが、IE ではレイアウトの変更によりページが壊れて見えます。

SSI の使用時にレイアウトが変更される可能性がある既知の問題はありますか? 率直に言って、SSI を使用するとこのような効果が得られることに驚いています。私は HTML5 タグ、modernizr js ライブラリを使用しており、ページはそのいずれかが重要かどうかを検証します。

編集:抽象化されたコードを変更することで問題を修正しました(以前よりも1つの親タグを抽象化しただけです)。ただし、そもそもなぜこのバグが発生したのかを正確に知りたいと思っています。特にこれを引き起こす可能性のあるものに光を当てることができる誰かがそこにいますか?

4

4 に答える 4

1

問題を引き起こしているのは SSI ではない可能性があります。

HTML コードに改行が含まれていて、IE が不要なスペースを挿入し、レイアウトが崩れる可能性は十分にあります。

また、ピースをインクルードに移動したときに、コードを正しく分離したことを確認してください。HTML をバリデーターで実行して、これを確認するのがおそらく最も簡単です。

于 2011-01-03T20:57:48.017 に答える
0

この問題は、サーバーが HTML を解析する方法と HTML5 タグのバグに終わります。なんらかの理由で、SSI に追加のタグ セットを 1 つ追加したところ、機能しました。

私の元のインクルードは次のようになりました:

<header>
    <!--#Include File="/includes/header.shtm"-->
</header>

含まれるファイルは次のとおりです。

<nav>
  <ul>
    <li><a href="#">Home</a></li>
    <li><a href="#">Products</a></li>
    <li><a href="#">About</a></li>
    <li><a href="#">Contact</a></li>
  </ul>
</nav>

しかし、以下に示すように、インクルードからすべての HTML5 タグを削除すると、すべてが正常に機能しました。これが古いバージョンの apache の問題なのかどうかはわかりませんが、これを行うとすべてが修正されました。

<header>
  <nav>
    <!--#Include File="/includes/header.shtm"-->
  </nav>
</header>
于 2011-01-03T22:10:29.300 に答える
0

私は同様の問題を抱えていて、次のように修正しました。

私はこのようなものを持っていました:

<div>
   <include>
</div>

これを次のように変更して修正しました。

<div><include></div>
于 2011-01-03T21:02:12.677 に答える