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%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.
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.
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.
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]
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.
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.
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.
Dreamweaver macht mich mit seinen automatischen Stücklisten-Ergänzungen verrückt. Hier ist das Problem:
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.
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.
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 !!
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.