Php haben nervigen oberen Rand

7

Ich weiß nicht, warum ich jedes Mal, wenn ich versuche, meinen Header mit PHP include einzufügen, einen oberen Rand habe. Ich habe es mit Firebug überprüft und es steht ein Offset von 22px auf der Oberseite. Hat jemand dieses Problem? Ich denke, es ist eine CSS Propietät: top: 22px. Aber nichts kann es ändern, selbst wenn ich h1 style="top: 0px; margin-top: 0px;" schreibe. Ich denke, es ist ein php-CSS Mysterium, das niemals gelöst werden wird.

edit: Der einzige Weg, um den oberen Rand Offset oder was auch immer es ist loszuwerden, ist die folgenden Eigenschaften zum H1 hinzufügen: oben: 0px;                          Position: absolut;

Werden diese Eigenschaften in der Zukunft zu weiteren Problemen führen?

Gibt es einen besseren Weg, dieses Problem mit dem oberen Randabstand zu lösen?

edit2: Ich denke, es gibt ein Problem mit der Codierung. Gibt es einen Konflikt zwischen der Codierung der enthaltenen Datei (header.html) und der Indexdatei?

Mein Index geht so:

%Vor%

Mit diesem CSS:

%Vor%

Mein header.html (dasjenige, das enthalten ist):

%Vor%

Und das ist die Ausgabe:

%Vor%
  • Gott ist so einfach, dass ich wirklich nicht weiß, woher der obere Rand kommt (in allen Browsern).
  • Es passiert nur, wenn ich php includes verwende.
  • Der Quellcode sieht genauso aus wie wenn ich php include nicht verwende.
alexchenco 13.06.2009, 21:24
quelle

12 Antworten

16

Das ist ziemlich seltsam, aber ich kopierte & amp; klebte die Ausgabe HTML in Notepad ++, und es gab ein seltsames Zeichen kurz vor der h1. Beim Einfügen in Notepad wurde die h in der h1 subskribiert.

Daher sieht es für mich so aus, als ob Sie ein falsches (oder für PHP unerwartetes) Zeichen in Ihrem eingeschlossenen HTML (oder in PHP einschließlich) haben könnten. Mein Verdacht? Die gefürchtete UTF-8 BOM. Versuchen Sie, die Codierung der enthaltenen HTML-Datei zu ändern, um die Stückliste zu entfernen (mit der ich im Umgang mit PHP immer Probleme hatte).

Bearbeiten: Ja. Nur mit einem Hex-Editor verifiziert. Es gibt eine Byte-Reihenfolge-Markierung am Anfang Ihres eingeschlossenen HTML. Ich weiß nicht, welchen Editor Sie verwenden, aber Sie sollten die Möglichkeit haben, Ihre Einstellungen für die Textkodierung zu ändern.

Siehe dies für weitere Informationen zu PHP & amp; die Stückliste.

    
Jacob 13.06.2009, 21:07
quelle
3

Sie sollten Ihren generierten HTML-Code posten, indem Sie z. B. kopieren, was Sie sehen, wenn Sie in Ihrem Webbrowser "View Source" auswählen. Oft habe ich mysteriöse Leerzeilen in PHP-generiertem HTML gesehen, da PHP so konfiguriert ist, dass es Fehler und Warnungen ausgibt. Selbst wenn dies nicht dadurch verursacht wird, können wir das Problem leichter diagnostizieren, wenn wir das ausgegebene HTML sehen.

    
Jacob 13.06.2009 19:02
quelle
1

Nun, ohne zu wissen, was in Ihrem PHP-Include enthalten ist, ist es schwer zu sagen, aber stellen Sie sicher, dass darin kein CSS enthalten ist. Stellen Sie außerdem sicher, dass das geladene CSS gefunden und geladen wird. Ich debugge, indem ich die Hintergrundfarbe oder etwas anderes visuelles ändere, also kann ich sicher sein, dass es geladen wird.

    
Roy Rico 13.06.2009 18:49
quelle
1

Ich wette, alles, was es mit dem PHP nicht zu tun hat, schließt es ein. Wie bereits erwähnt, kann es in der mitgelieferten Datei etwas CSS geben, das es tut, aber ich habe PHP noch nie etwas Ähnliches gesehen, was du beschreibst.

Ich würde die Doctype-Deklaration ansehen [vorübergehend entfernen, um zu sehen, was passiert], und das aktuelle HTML-Deklarations-Tag entfernen und es durch ein einfaches & lt; html & gt; tag [erneut nur vorübergehend, um zu debuggen]

    
thinbegin 13.06.2009 19:40
quelle
1

Oft wird am Ende einer PHP-Skriptdatei, die Sie nach dem? & gt; Etikett. Dadurch wird ein zusätzliches Zeichen in die generierte Ausgabe eingefügt. Sie können dieses Problem beheben, indem Sie kein Schließen haben? & Gt; Tag am Ende der Datei. PHP kann "annehmen", dass es geschlossen ist.

    
Nolte 13.06.2009 20:08
quelle
0

Haben Sie die Möglichkeit, uns einen Link zu geben? Ich habe gerade ein paar Dinge lokal ausprobiert, und Sie können diese "unerwünschte" neue Zeile für scheinbar "keinen Grund" zwischen Ihrem Inhalt und der "Doctype" -Deklaration bekommen, wenn es ein nicht druckbares Zeichen gibt. Versuche alle Zeichen nach dem "& gt;" und sieh es dir mit einem Hexeditor an, um dich davon zu überzeugen. Bitte geben Sie uns weitere Informationen.

    
merkuro 13.06.2009 18:49
quelle
0

Das ist sehr interessant, weil ich gerade euer Markup und euer CSS benutzt habe. Ich legte es auch in eine PHP-Datei und enthielt eine HTML-Datei. Aber es gibt keinen Spielraum. Nirgendwo.

Stellen Sie also sicher, dass Ihr Browser die CSS-Datei mit finden kann * { margin: 0; padding: 0 }

Und ich schlage vor, dass Sie ein Reset-Blatt wie dieses verwenden - Ссылка .

ps. Wenn Sie Webspace besitzen, stellen Sie ihn online und senden Sie uns einen Link.

    
Tammo 13.06.2009 20:59
quelle
0

Dreamweaver macht mich mit seinen automatischen Stücklisten-Ergänzungen verrückt. Hier ist das Problem:

Ссылка

    
Christopher 14.06.2010 22:04
quelle
0

Ich hatte das gleiche Problem ... also habe ich einen HTML-Eröffnungskommentar am Anfang der zweiten Datei und einen HTML-Kommentar am Anfang der zweiten Datei hinzugefügt. Dies schließt die Stückliste (oder was auch immer zwischen den Dateien erscheint) innerhalb eines Kommentars ein, so dass sie nicht in HTML ausgegeben wird.

Zum Beispiel:

%Vor%

Ich habe versucht, das Problem beim Konvertieren zwischen den Codierungsformaten in Notepad ++ zu beheben, ohne Erfolg. Das ist also nur eine vorübergehende Lösung, bis ich eine bessere Lösung für das Problem gefunden habe.

    
David Graham 01.03.2012 15:53
quelle
0

Ich benutze Notizblock und ich wählte aus dem Menü - & gt; Encoding- & gt; Encoding mit UTF-8 ohne BOM und es funktionierte gut. Dies sollte für jede enthaltene Datei durchgeführt werden. Ich denke, das ist die Lösung für Ihr Problem. Schönen Abend noch.

    
wonder jinnie 30.06.2012 20:43
quelle
0

Ich habe fast meinen Schlüssel getötet, um das Problem zu lösen. Dann habe ich PSPad Editor ausprobiert, ändere explizit .inc oder .php auf UTF-8 und IT WORKED !!

    
shaldan 28.10.2012 17:30
quelle
0

Ich hatte einmal dieses Problem und hier ist der Weg, es zu beheben - es ist wirklich ein Problem in charset.Ich habe 10 Stunden verbracht, um es zu finden. In meiner Situation ändere ich bei allen php-Dateien (alle php-Dateien, alle tpl-Dateien) von UTF-8 nach UTF-8 ohne bom-Zeichensatz und speichere es und versuche es dann. Danach können Sie auch den .htaccess-String "AddDefaultCharset UTF-8" eingeben.

    
Arthur 20.07.2013 17:14
quelle

Tags und Links