Erich: Warum kommt ein Leerzeichen wenn keines da ist ???

Hallo Forum :-))

Kann mir Bitte jemand folgendes erklären:

Habe in meiner Seite einen langen Text mit
<font size="2"> Textanfang...........Textende.</font>
erstellt.

Wenn jetzt in der HTML-Datei am Textende zwischen dem LETZTEN Punkt und dem FONT-Tag KEIN Leerzeichen ist, dann bekomme ich im MS-IE 4.01 und 5 ein Leerzeichen der Schriftgröße size="3" angezeigt. Bemerke ich dadurch, daß der Zeilenabstand größer als sonst ist und sich dieses Zeichen auch markieren läßt. Wenn ich den ganzen Text auf size="3" stelle funzt alles.

Jetzt aber meine Frage:  
Wenn  ich in der HTML-Datei ein Leerzeichen zwischen Textende und FONT mache dann tritt dieser Effekt nicht auf.
Was ist der unterschied zwischen
<font size="2"> Textanfang...........Textende. </font> und
<font size="2"> Textanfang...........Textende.</font>

Da mir das schon öfter aufgefallen ist (auch im Netz) würde mich das sehr interessieren.

Danke im vorhinein
Erich

  1. Hi,

    Was ist der unterschied zwischen
    <font size="2"> Textanfang...........Textende. </font> und
    <font size="2"> Textanfang...........Textende.</font>

    1.) Ein Zeilenumbruch wirkt wie ein Leerzeichen.
    2.) Es wird immer nur ein Leerzeichen in Folge ausgegeben.

    => Ist bereits ein Leerzeichen der Größe 2 ausgegeben worden, wird das nachfolgende Leerzeichen der Größe 3 nicht mehr ausgegeben; andernfalls schon.

    Cheatah, das war ja einfach :-)

  2. Moin

    Was ist der unterschied zwischen
    <font size="2"> Textanfang...........Textende. </font> und
    <font size="2"> Textanfang...........Textende.</font>

    Das eine ist korrekt, das andere nicht :-)

    Das Problem hängt inho mit der Definition der white spaces in HTML zusammen. Wir sind es zunächst gewohnt, als whitespace nur das zu betrachten was zu "sehen" ist, wenn wir die Leertaste der tastatur drücken. HTML sieht das anders, was ja auch praktisch ist: Ein Zeilenumbruch in unseren Text, den wir im Sourcecode wegen der Übersichtlichkeit einfügen, ist für HTML eben white space. Aus http://www.w3.org/TR/html4/struct/text.html#idx-white_space-2 lernen wir deshalb, dass direkt nach einem Start-Tag bzw unmitelbar vor einem Ende-Tag kein whitespace stehe sollte

    <cite>
    Thus, authors, and in particular authoring tools, should write:

    <P>We offer free <A>technical support</A> for subscribers.</P>

    and not:

    <P>We offer free<A> technical support </A>for subscribers.</P>

    </cite>

    Viele Grüße

    Swen

    1. Hallo Swen
      Danke für die Antwort

      Was ist der unterschied zwischen
      <font size="2"> Textanfang...........Textende. </font> und
      <font size="2"> Textanfang...........Textende.</font>

      Das eine ist korrekt, das andere nicht :-)

      Welches der beiden ist korrekt bei <FONT> (obere oder untere)

      Das Problem hängt inho mit der Definition der white spaces in HTML zusammen. ...

      Aushttp://www.w3.org/TR/html4/struct/text.html#idx-white_space-2 lernen wir deshalb, dass direkt nach einem Start-Tag bzw unmitelbar vor einem Ende-Tag kein whitespace stehe sollte

      <cite>

      »»  Thus, authors, and in particular authoring tools, should write:

      <P>We offer free <A>technical support</A> for subscribers.</P>

      and not:

      <P>We offer free<A> technical support </A>for subscribers.</P>

      </cite>

      Das habe ich mir schon vorher angesehen, komme aber nicht klar damit.

      Denn:
      <font size="2"> Textanfang...........Textende.</font>
      (ohne Leerzeichen) bringt mir ein Leerzeichen der größe size="3" und
      <font size="2"> Textanfang...........Textende. </font>
      (mit Leerzeichen) bringt mir kein Leerzeichen.

      Irgendwie widerspricht sich das mit dem was du geschrieben hast, denn das ungewollte Leerzeichen kommt dann wenn ich zwischen dem Textende und dem FONT-Tag KEIN Leerzeichen mache.

      Soll man jetzt zwischem dem letzten sichtbaren Zeichen und dem FONT ein Leerzeichen machen oder nicht ???
      Ist da vielleicht ein Unterschied zwischen <FONT> und <P>???

      Auch der Nachfolgende Text kann es nicht sein da nach diesem Font das Ende der Datei kommt.
      <font size="2"> Textanfang...........Textende. </font>
      </body></html>

      mfg Erich

      1. Hi Erich,

        "richtig" ist der untere.

        Auch der Nachfolgende Text kann es nicht sein da nach diesem Font das Ende der Datei kommt.
        <font size="2"> Textanfang...........Textende. </font>
        </body></html>

        Oh doch! Denn - wie Cheatah schon sagte - Dein Zeilenumbruch zw. </font> und </body> wird von HTML als Leerzeichen betrachtet (mit Standardgröße 3). Hast Du vor </font> ein Leerzeichen drin, wird dieses angezeigt (und Dein Zeilenumbruch unterdrückt). Hast Du keines drin, wird Dein Zeilenumbruch als Standardgrößenleerzeichen angezeigt. Um gar kein Leerzeichen zu kriegen, musst Du folgendes tun:

        <font size="2">Textanfang...........Textende.</font></body></html>

        (Wichtig: _kein_ Zeilenumbruch zw. </font> und </body>)

        Grüße,

        Utz

        1. Hallo Utz :-))
          Danke für die Antwort

          <font size="2">Textanfang...........Textende.</font></body></html>

          (Wichtig: _kein_ Zeilenumbruch zw. </font> und </body>)

          Jetzt ist mir (fast) alles Klar.
          Da ich fast alles im Editor erstelle ist es mit den Leerzeichen und Zeilenumbrüchen nicht immer so einfach.

          Hoffe letzte Frage zu diesem Thema:
          Habe jetzt den Code auf <font size="2">Textanfang...........Textende.</font></body></html> geändert und *gewohnheitstier* einen kleinen Kommentar <!-- Letzte Änderung --> angefügt, und siehe da -- das Leerzeichen ist wieder da !!!
          Das Leerzeichen kommt auch dann wenn man nur einfach Enter drückt und eine neue Zeile im Editor beginnt (Ich glaube das habe ich bei jeder Datei).

          Wann ist eine Html-Datei wirklich zu ENDE ???
          Mit </HTML> oder mit dem letzten Zeichen (Auch Leerzeichen) in der Datei (Was bringt dann </html> ausser das es gut aussieht und alle machen???).

          Danke nochmals im vorhinein
          und entschuldigt wenn ich lästig erscheine
          mfg. Erich

          1. Hi Erich

            Das Leerzeichen kommt auch dann wenn man nur einfach Enter drückt und eine neue Zeile im Editor beginnt (Ich glaube das habe ich bei jeder Datei).

            Genau. Wenn es Dir im Editor zu lästig ist, so breite Zeile zu haben: schau Dir mal Phase5 http://www.meybohm.de an, ein Textbasierter HTML-Editor, der den Quelltext praktischerweise im Fenster umbricht, ohne Zeilenumbrüche einzufügen.

            Wann ist eine Html-Datei wirklich zu ENDE ???
            Mit </HTML> oder mit dem letzten Zeichen (Auch Leerzeichen) in der Datei (Was bringt dann </html> ausser das es gut aussieht und alle machen???).

            Mit </HTML>

            Grüße,

            Utz

            1. Hallo Utz

              Genau. Wenn es Dir im Editor zu lästig ist, so breite Zeile zu haben: schau Dir mal Phase5 http://www.meybohm.de an, ein Textbasierter HTML-Editor, der den Quelltext praktischerweise im Fenster umbricht, ohne Zeilenumbrüche einzufügen.

              Hab schon alles mögliche probiert, komme aber immer wieder nach kurzer (sehr kurzer) Zeit nach dem Test verschiedenster Editoren auf den Standart-Editor zurück. Mir erscheint jedoch 1.st Page von EvrSoft.com als die beste Freeware Lösung. Am Kommerzmarkt gibt es nichts besseres als HotDog6 von Sausage.com aber darüber läßt sich streiten.

              Wann ist eine Html-Datei wirklich zu ENDE ???
              Mit </HTML> oder mit dem letzten Zeichen (Auch Leerzeichen) in der Datei (Was bringt dann </html> ausser das es gut aussieht und alle machen???).

              Mit </HTML>

              Das glaube ich nicht !!
              Denn wenn ich folgendes mache:

              <html>
              <head>
              <title>Test</title>
              </head>
              <body>
              <font size="2">Das ist ein Text im BODY</font><br>
              </body>
              </html>
              <font size="2">Das ist ein Text nach HTML</font>

              schreibt mir der MS-IE 4 auch den 2.Text heraus.

              Warum????
              sag jetzt BITTE nicht das ist beim MS halt so!!

              mfg. Erich

              1. Moin

                sag jetzt BITTE nicht das ist beim MS halt so!!

                Keine Angst :-) Auch Lynx zeigt das so an :-)))

                Viele Grüße

                Swen

                1. Hallo Swen:-))

                  Kommt es mir nur so vor, manuipulierst du die Zeiten im Forum oder bist du immer um einen Tick schneller als ich :*)) ????

                  Mit vielen :D
                  Erich

          2. Wann ist eine Html-Datei wirklich zu ENDE ???

            Gute Frage. Wen wollen wir fragen, die Browser oder die Spec ?

            Utz geht vom Normalfall aus.
            Was sagt aber die Spec? Dort steht, dass http://www.w3.org/TR/1999/REC-html401-19991224/struct/global.html#h-7.1 die Elemente HEAD und BODY vom Element HTML umgeben werden _sollen_.
              
            Und da fängt für den Browser dann das Problem an.
            Er muss also auch ein Dokument anzeigen können, das - völlig korrekt, denn der Start- und der Endtag des Elementes HTML sind optional http://www.w3.org/TR/1999/REC-html401-19991224/struct/global.html#edef-HTML - den Endtag des HTML-Elementes nicht beinhaltet.

            Was dann? Er kann sich aber nicht einfach das letzte Endtag als Ende schnappen, denn nicht jedes Element muss mit einem Endtag schließen.

            Und nun? Er kann sich ja auch nicht einmal darauf verlassen, dass er überhaupt irgendwo einen offenen Tag findet, den er nach irgendwelchen Regeln irgendwann als geschlossen betrachtet. Denn auch das hier ist ja ein valides HTML 4.01 Dokument:

            <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
            "http://www.w3.org/TR/html4/loose.dtd">
            <title></title>Duda

            Deshalb verlassen sich (manche?) Browser anscheinend auf die schon genannten Regeln mit den Leerzeichen.

            Nun könnte man ja einwenden, dass das alles ja nicht sein müsste, _wenn_ der Endtag </html> vorhanden ist, das Ende also exakt bestimmbar ist. Ich persönlich wage aber mal die Behauptung, dass die meisten Browser gar nicht mal wissen, dass es das Element HTML überhaupt gibt.

            Swen

            1. Danke für diese Antwort.

              Gute Frage. Wen wollen wir fragen, die Browser oder die Spec ?

              Damit hat sich glaube ich meine Frage an Utz erübrigt.

              Am besten also man *wurstelt* so irgendwie dahin, hat möglichts viele Browser auf möglichst vielen Rechnern installiert und kümmert sich nicht so wie du um die ganzen specs sondern machts irgendwie mit Flash oder Java und hofft auf bessere Zeiten (Punkt und Ende)

              Danke nochmals für alle Antworten
              mfg. Erich :-)))

              1. Moin

                Am besten also man *wurstelt* so irgendwie dahin, hat möglichts viele Browser auf möglichst vielen Rechnern installiert und kümmert sich nicht so wie du um die ganzen specs sondern machts irgendwie mit Flash oder Java und hofft auf bessere Zeiten (Punkt und Ende)

                Nix da :-)
                Du

                • schreibst einfach "korrektes" HTML

                • hörst bitte auf, font-tags zu benutzen,
                    (das wollte ich überhaupt schon die ganze Zeit sagen)

                • probierst mal ein wenig CSS (und wirst erst richtig glücklich :-))

                • sparst dir deine Kommentare nach </html> ;-)

                • bist sparsam mit High-end-DHTML-Schnick-Schnack

                • bleibst so aufmerksam, wie du bislang sicherlich warst :-)))

                und schon nahen die bessere Zeiten ...

                Wenn du aber Flash magst, dann geh besser ins Kino, da sehen Filme irgendwie immer besser aus :-))

                Viele Grüße

                Swen

  3. Hi,

    Wenn  ich in der HTML-Datei ein Leerzeichen zwischen Textende und FONT mache dann tritt dieser Effekt nicht auf.
    Was ist der unterschied zwischen
    <font size="2"> Textanfang...........Textende. </font> und
    <font size="2"> Textanfang...........Textende.</font>

    Da mir das schon öfter aufgefallen ist (auch im Netz) würde mich das sehr interessieren.

    Die Frage ist ja schon ausreichend beantwortet worden - bei mehreren aufeinanderfolgenden Whitespaces (wozu auch ein Zeilenumbruch im HTML-Quelltext gehört) wird halt nur das erste mit der aktuell definierten Größe ausgegeben -, aber mich wundert es auch immer wieder, daß man auf so vielen Websites auf diesen Fehler trifft, der dann dazu führt, daß die letzte Zeile eines Absatzes einen größeren Zeilenanstand aufweist als die übrigen Zeilen davor, was dann ziemlich "unprofessionell" aussieht. Ich frage mich nur: Wieso fällt den betreffenden Webdesignern das eigentlich nicht auf? Tritt das Phänomen evtl. in diversen "WYSIWY(HT)G"-Editoren nicht in Erscheinung und wurden die Seiten nicht im Browser getestet...?

    Gruß,
    Stefan

    1. Hallo Stefan :-))

      Ich glaube daß es neben den Leuten die es wirklich wissen, es nur wenig so *verrückte* gibt (meine unteranderem mich) denen so kleine Formfehler wirklich auffallen und dann auch noch so STÖREN, daß sie einige Zeit dafür aufbringen.
      Aber ich glaube an solchen KLEINIGKEITEN erkennt man ob eine Seite durchdacht ist oder nicht und ob die Seite nur einfach gemacht wurde weil es gerade *HIP* ist.

      mfg. Erich