Zeilensprung: Einzelne Zeilen ansprechen

Hallo

Wie kann man mit Javascript eine einzelne Zeile ansprechen?
Also wenn zum Beispiel ein Text in einem <p> steht, dann kann man ja mit CSS die erste Zeile formatieren.
Ich möchte nun wahlweise auch die 2te, 3te, nte Zeile ansprechen. Geht das?

Ich könnte ja jede Zeile in <span> packen, aber ich weiß ja nicht, was auf dem Browser als Zeile dann dargestellt wird - das geht also nicht.

Danke,
Tobias

  1. Hi,

    Wie kann man mit Javascript eine einzelne Zeile ansprechen?
    Also wenn zum Beispiel ein Text in einem <p> steht, dann kann man ja mit CSS die erste Zeile formatieren.
    Ich möchte nun wahlweise auch die 2te, 3te, nte Zeile ansprechen. Geht das?

    Nein.

    Ich könnte ja jede Zeile in <span> packen, aber ich weiß ja nicht, was auf dem Browser als Zeile dann dargestellt wird - das geht also nicht.

    Eben, und JavaScript weiss es genauso wenig.

    Da wären höchstens sehr eklige Workarounds denkbar - bspw., *jedes* Wort in ein einzelnes Element wie Span packen, und dann schauen, ab wo sich die offsetTop-Eigenschaft eines Spans von der des vorhergehenden unterscheidet - das würde bedeuten, dieser Span wäre in einer neue Zeile (vorausgesetzt, keinerlei weitere Formatierungen nehmen Einfluss auf diese Position).
    Und das müsste man dann auch noch jedes mal bei Änderung der Fenster- oder Schriftgrösse neu ermitteln ... insgesamt ziemlich unperformant.

    MfG ChrisB

    --
    Light travels faster than sound - that's why most people appear bright until you hear them speak.
    1. Hi Chrisb

      Danke für die Antwort.
      Wenn der Browser doch weiß, wo die erste Zeile ist, dann könnte er dem Javascript ja auch "sagen", wo die zweite und dritte ist, dachte ich.
      Kann kaum glauben, daß das nicht geht…

      Das mit den spans kommt wirklich nicht in frage.

      Gruss,
      Tobias

  2. Wie kann man mit Javascript eine einzelne Zeile ansprechen?

    Du kannst dir höchstens mit getClientRects in manchen Browsern eine Liste der Zeilenboxen samt Koordinaten holen und ggf. ein (halbtransparentes) Element genau über eine bestimmte Zeile legen.

    Mathias

    1. Hi

      Du kannst dir höchstens mit getClientRects in manchen Browsern eine Liste der Zeilenboxen samt Koordinaten holen

      Danke. Das kannte ich bislang nicht.
      Nutzt mir aber nichts, da nur die Kordinaten und kein Text angegeben werden.

      1. Nutzt mir aber nichts, da nur die Kordinaten und kein Text angegeben werden.

        Was hast du vor? Wozu brauchst du den Text einer Zeile?

        Mathias

        1. Hi

          Ich muss für meinen Arbeitgeber bei einer Menge von Webseiten testen, wie viele Zeichen die Texte pro Zeile haben (bei vorgegebener Fenstergrösse und Auflösung), für die Lesbarkeit der Texte.
          Da dachte ich Faulheit macht klug und ich bau mir ein Script. Scheint aber nicht zu gehen.

          Jetzt Zähle ich die Zeichen blockweise und teile dann durch die Anzahl der Zeilen. Das scheint einen guten Näherungswert zu geben (stimmt dann allerdings bei floatenden Elementen nicht).

          Gruß,
          Tobias