あなたの答えから、IDが「header-section」の要素がページの上部にあり、場合によっては、ページの残りの部分が読み込まれる前にcssルールが適用されていると思います。これは、その要素が存在する前に、式が'content-section'のoffsetHeightを評価しようとすることを意味します。
これに対処する方法についていくつか提案しましたが、それらの有用性を評価するには、それらを試してみる必要があります。
1 /'header-section'のIDに基づいてルールを作成する代わりに、クラス'header-sectionに基づいてルールを作成します。このクラスをマークアップに追加しないでください。ただし、ドキュメントの読み込みが完了したら、jqueryを使用して追加してください。要素のIDはそのままにしておきます...
$(document).ready(function(){
$("#header-section").addClass("header-section");
});
2 /ルールを「content-section」が見つからないことに対してより寛容にします-cssルールで式を使用する必要性を感じたことがないため、式が評価される頻度がわかりません。これは機能しない可能性があります。
#header-section {margin-top: expression((0 - (this.offsetHeight + (document.getElementById("content-section") ? document.getElementById("content-section").offsetHeight : 0))) + "px");}
どうやって乗るのか教えてください。
PSルールが何を達成しようとしているのかわかりません-同じレイアウトであると想定しているページをモックアップしました。それは、ページの上部から多くのコンテンツを移動するだけです。それが見られるのを防ぎます。