Php включает надоедливую верхнюю маржу - PullRequest
7 голосов
/ 13 июня 2009

Я не знаю, почему каждый раз, когда я пытаюсь включить свой заголовок, используя PHP include, есть верхнее поле. Я проверил это с помощью Firebug, и там написано, что сверху есть смещение в 22 пикселя. Кто-нибудь испытывает эту проблему? Я думаю, что это CSS пророчество: top: 22px. Но ничто не может изменить это, даже если я напишу h1 style = "top: 0px; margin-top: 0px;". Я думаю, что это тайна php-CSS, которая никогда не будет разгадана.

edit: Единственный способ избавиться от этого смещения верхнего поля или чего бы то ни было, это добавить следующие свойства в H1: top: 0px; положение: абсолютное;

Будут ли эти свойства создавать больше проблем в будущем?

Есть ли лучший способ решить эту проблему смещения верхнего поля?

edit2: я думаю, что есть проблема с кодировкой. Есть ли конфликт между кодировкой включенного файла (header.html) и индексного файла?

Мой индекс выглядит так:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <meta content="text/html; charset=utf-8" http-equiv="Content-Type" />
    <title>Untitled 1</title>
    <link rel="stylesheet" type="text/css" href="style2.css" />
</head>
<body>
    <div id="page-wrap">
    <?php include_once("header2.html"); ?>
    </div>
</body>
</html>

С этим CSS:

* {
    padding: 0px;
    margin: 0px;
}

Мой header.html (включенный):

<h1>Header 2</h1> 

И вот результат:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <meta content="text/html; charset=utf-8" http-equiv="Content-Type" />
    <title>Untitled 1</title>
    <link rel="stylesheet" type="text/css" href="style2.css" />
</head>
<body>
    <div id="page-wrap">
    <h1>Header 2</h1>  </div>
</body>
</html>
  • Боже, это так просто, что я действительно не знаю, откуда берется верхнее поле (во всех браузерах).
  • Это происходит только тогда, когда я использую php include.
  • Исходный код выглядит так же, как когда я не использую php include.

Ответы [ 12 ]

0 голосов
/ 14 июня 2009

Это очень интересно, потому что я только что использовал вашу разметку и ваш CSS. Я также поместил его в php-файл и включил html-файл. Но нет никакого запаса. Нигде нет.

Поэтому убедитесь, что ваш браузер может найти файл css с * { margin: 0; padding: 0 }

И я предлагаю вам использовать такой лист сброса - http://meyerweb.com/eric/tools/css/reset/index.html.

p.s. если у вас есть веб-пространство, разместите его в Интернете и отправьте нам ссылку.

0 голосов
/ 13 июня 2009

У вас есть возможность дать нам ссылку? Я только что попробовал локально пару вещей, и вы можете получить эту «нежелательную» новую строку, по всей видимости, «без причины» между вашим контентом и объявлением «doctype», если есть непечатаемый символ. Попробуйте удалить все символы после «>» и посмотрите на него с помощью шестнадцатеричного редактора, чтобы убедиться в этом. Пожалуйста, предоставьте нам больше информации.

...