awdp30: Sätze verkürzt ausgeben lassen...

Hallo Forum,

ich weiss nicht, ob das hier die richtige Rubrik ist aber ich suche nach einer Möglichkeit Sätze zu verkürzen. Habe ich z.B. einen Satz wie: DAS HAUS IST ABER SCHÖN GEWORDEN möchte ich z.B. das nur DAS HAUS IST ABER... ausgegeben wird. Ich möchte diese Variante nutzen, um in vorgegebenen Tabellen eine gleiche optische Formatierung zu bekommen.

Kann mir vielleicht jemand weiterhelfen, bzw. eine Unterstützung leisten?

Danke im vorraus.

  1. Hallo

    ich weiss nicht, ob das hier die richtige Rubrik ist aber ich suche nach einer Möglichkeit Sätze zu verkürzen. Habe ich z.B. einen Satz wie: DAS HAUS IST ABER SCHÖN GEWORDEN möchte ich z.B. das nur DAS HAUS IST ABER... ausgegeben wird. Ich möchte diese Variante nutzen, um in vorgegebenen Tabellen eine gleiche optische Formatierung zu bekommen.

    Kann mir vielleicht jemand weiterhelfen, bzw. eine Unterstützung leisten?

    Wenn du unbedingt CSS einsetzen willst, kannst du den bereffenden Feldern die eigenschaft overflow:hidden; verpassen. Aber, und dieses "aber" ist nicht nur groß, weil es am Satzanfang steht, diese Eigenschaft bewirkt nur, dass der Inhalt der Zelle, bei linksbündiger Ausrichtung, rechts am Rand der zelle abgeschnitten wird, wenn es sich so ergibt auch mitten im Buchstaben.

    Sinnvoller ist es, diese Aufgabe einer Programmiersprache zu überlassen, und den Text, so er länger als X Zeichen ist, nach diesem X-ten Zeichen abzuschneiden und die " ..."-Sequenz dahinterzusetzen. Das ist eine typische Aufgabe einer serverseitigen Programmiersprache wie Perl oder PHP. Es kommt also darauf an, was dir zur Verfügung steht.

    Es geht grundsätzlich auch mit JavaScript. Da hieße es, den Inhalt der betreffenden Zelle(n) auszulesen, wiederum zu prüfen, ob der Text länger als X Zeichen ist, ihn im Bedarfsfall umzubauen und das Ergebnis wieder in die Zelle einzufügen. Allerdings kannst du dich nicht darauf verlassen, dass das bei jedem Benutzer funktioniert, da es sein kann, dass JavaScript nicht zur Verfügung steht.

    Tschö, Auge

    --
    Die deutschen Interessen werden am Liechtenstein verteidigt.
    Veranstaltungsdatenbank Vdb 0.2
    1. Na dann werde ich mal versuchen herauszufinden wie ich das mit PHP lösen kann. Danke erstmal für die raschen Antworten.

      1. Mahlzeit awdp30,

        Na dann werde ich mal versuchen herauszufinden wie ich das mit PHP lösen kann. Danke erstmal für die raschen Antworten.

        Nimm die ersten x Stellen, die Du anzeigen lassen willst, suche das letzte vorkommende Leerzeichen darin. Schneide alles vom Anfang bis zur Position des Leerzeichens aus - fertig.

        MfG,
        EKKi

        --
        sh:( fo:| ch:? rl:( br:> n4:~ ie:% mo:} va:) de:] zu:) fl:{ ss:) ls:& js:|
        1. Hallo

          Na dann werde ich mal versuchen herauszufinden wie ich das mit PHP lösen kann. Danke erstmal für die raschen Antworten.

          Nimm die ersten x Stellen, die Du anzeigen lassen willst, suche das letzte vorkommende Leerzeichen darin. Schneide alles vom Anfang bis zur Position des Leerzeichens aus - fertig.

          Das Anhängen der drei Punkte nicht vergessen (und auch in die Berechnung der Länge mit einbeziehen), die sind für den (deutschsprachigen) Benutzer ein deutlicher Hinweis auf einen willentlich verkürzten Text.

          Tschö, Auge

          --
          Die deutschen Interessen werden am Liechtenstein verteidigt.
          Veranstaltungsdatenbank Vdb 0.2
        2. Nimm die ersten x Stellen, die Du anzeigen lassen willst, suche das letzte vorkommende Leerzeichen darin. Schneide alles vom Anfang bis zur Position des Leerzeichens aus - fertig.

          wenn in diesem string html vorkommt, sollte man zudem darauf prüfen und ggf sämliches markup mit strip_tags bereinigen

  2. @@awdp30:

    ich weiss nicht, ob das hier die richtige Rubrik ist aber ich suche nach einer Möglichkeit Sätze zu verkürzen. Habe ich z.B. einen Satz wie: DAS HAUS IST ABER SCHÖN GEWORDEN möchte ich z.B. das nur DAS HAUS IST ABER... ausgegeben wird. Ich möchte diese Variante nutzen, um in vorgegebenen Tabellen eine gleiche optische Formatierung zu bekommen.

    Du hast zwei Möglichkeiten:

    (1) Du lässt nur einen http://de.selfhtml.org/javascript/objekte/string.htm#substr@title=Teil ausgeben, an den du "…" anhängst. Das hieße eine festgelegte Anzahl von Zeichen. Hilft nicht wirklich, da 42 'm' viel breiter sind als 42 'i'.

    (2) Du http://de.selfhtml.org/css/eigenschaften/positionierung.htm#overflow@title=schneidest in den betreffenden Tabellenzellen ab. Das bedeutet den Verzicht auf "…".

    BTW, IEs verstehen schon 'word-break: break-all'. [CSS3-TEXT §4.1]

    (3) Eine dritte Möglichkeit wäre, den betreffenden Test außerhalb des Anzeigebeichs hinzuschreiben und solange zu verkürzen, bis dessen berechnete Breite (mit angehängtem "…") kleiner als die dir Verfügung stehende ist, dann erst den verkürzten an die richtige Stelle schreiben. Sehr aufwendig.

    Live long and prosper,
    Gunnar

    --
    Erwebsregel 208: Manchmal ist das einzige, was gefährlicher als eine Frage ist, eine Antwort.
    1. [latex]Mae  govannen![/latex]

      (1)
      (2)
      (3)

      (4) Er setzt durch, daß CSS3 endlich mal in die Puschen kommt und die entsprechenden CSS3 in die Browser eingebaut wird

      Cü,

      Kai

      --
      Ash nazg durbatulûk, ash nazg gimbatul,ash nazg thrakatulûk, agh burzum-ishi krimpatul
      selfcode sh:( fo:| ch:? rl:( br:< n4:# ie:{ mo:| va:) js:) de:> zu:) fl:( ss:| ls:?
      1. Hallo,

        (4) Er setzt durch, daß CSS3 endlich mal in die Puschen kommt und die entsprechenden CSS3 in die Browser eingebaut wird

        Hm? -webkit-text-overflow, -o-text-overflow und -ms-text-overflow (nur in IE 8, aktuell ist es noch text-overflow) sind in Browsern eingebaut, wenn auch nicht perfekt, letztendlich ist derzeit nur (-x-)text-overflow:ellipsis; browserübergreifend nützlich. Mozilla arbeitet gerade an -moz-text-overflow.

        Allerdings: Es gab letzten Monat noch Diskussionen zur Sprachabhängigkeit und zum Rendering dazu auf der CSS Mailingliste, eine Wiederaufnahme in CSS 3 Text könnte also durchaus subtile Änderungen beinhalten.

        Tim