Из вашего ответа я бы предположил, что элемент с идентификатором «заголовок» находится в верхней части страницы, и иногда правило css применяется до остальной части загружается страница. Это означает, что выражение пытается оценить offsetHeight раздела «content-section» до того, как этот элемент существует.
У меня есть пара предложений о том, как с этим бороться, но вы должны попробовать их, чтобы оценить их полезность.
1/Вместо того, чтобы создавать правило на основе идентификатора раздела заголовка, создайте его на основе заголовка класса. Не добавляйте в этот класс для разметки, но добавить его после завершения загрузки документа, с помощью JQuery - оставьте идентификатор элемента, как это ...
$(document).ready(function(){
$("#header-section").addClass("header-section");
});
2/Изготавливают правило более терпимы к «контент-раздел» не найден - не уверен, как часто оценивается выражение, поскольку я никогда не чувствовал необходимости использовать выражение в правилах CSS, поэтому это может не сработать.
#header-section {margin-top: expression((0 - (this.offsetHeight + (document.getElementById("content-section") ? document.getElementById("content-section").offsetHeight : 0))) + "px");}
Дайте мне знать, как вы поживаете.
P.S. Я понятия не имею, что правило пытается достичь - я издевался над страницей с тем, что, как я полагаю, является одним и тем же макетом, и все, что он делает, - это перемещение большого количества контента с верхней части страницы, что предотвращает это никогда не видели.
Хороший совет, спасибо! Бьюсь об заклад, это именно то, что происходит. Да, кажется, он просто перемещает навигационную секцию, расположенную вниз по странице, вверху. Но я также не понимаю, почему это делается. Я просто удалил код и поместил раздел nav, где он должен идти в обычном потоке страницы ... отлично работает. Парень, который делал это изначально, больше не существует, и никто, кажется, не знает, что, во всяком случае, он это делал. – Stuart