Ankündigung

Einklappen
Keine Ankündigung bisher.

String auf bestimmte Breite (Pixel) kuerzen...

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • String auf bestimmte Breite (Pixel) kuerzen...

    Hallo,

    vielleicht stand jemand schonmal vor dem selbem unschoenen "Design"-Thema. Ich bin im Moment gerade dabei und wie jedesmal nervt es mich wieder ein bischen an .

    Einen String auf eine gewisse Zeichenanzahl mit substr() kuerzen ist ja keine Besonderheit. Nur wenn man auf der Seite einen gewissen Anzeigebereich (z.B.: Eine Tabellenzelle mit 150px Breite hat), sieht es optisch nicht schoen aus, wenn ein String auf eine gewisse Zahl gekuerzt ist - dabei der eine String mal laenger und ein weiterer wieder kuerzer ist.

    Beispiel: Beide folgende Zeilen haben eine Zeichenlaenge von 30:
    1: BBCode BBCode BBCode BBCode BB
    2: Smilie Smilie Smilie Smilie Sm
    ...nur sind diese auf Grund des Zeichensatzes unterschiedlich lang.

    Gibt es eine Methode, aus einem String die Zeichenlaenge zu errechnen um in der Laenge z.B. bis an die 150px heranzukommen?

    gruss, mudo...

  • #2
    Vergiß es...

    Grund: Was machst du wenn der User bei sich im Client eine Schriftgröße vorgegeben hat und deine Einstellungen ignoriert?

    Kommentar


    • #3
      Ok, sowas kommt vor

      Aber ich denke, dass dann meine Seite fuer den User nicht die einzige sein wird, die "anders" dargestellt wird...

      Kommentar


      • #4
        Aber ich denke, dass dann meine Seite fuer den User nicht die einzige sein wird, die "anders" dargestellt wird...
        was`n argument ...
        [URL=http://www.mozilla.org/products/firefox/][img]http://www.nophia.de/misc/spreadtheword/feuerfuchs.gif[/img][/URL]

        Kommentar


        • #5
          Zitat von mudo
          Ok, sowas kommt vor

          Aber ich denke, dass dann meine Seite fuer den User nicht die einzige sein wird, die "anders" dargestellt wird...
          :P

          anhand von was soll er es denn zuschneiden?

          überleg dir doch einfach mal wie viele browser es gibt, die vielicht minimale unterschiede haben? welche willst du zum test ranziehen, und warum überlässt du den umbruch nicht einfach html indem du dein "design" dementsprechend aufbaust? hast du mal ein beispiel wo das problem besteht? ich bin mir sicher mit einem vernünftig durchdachten html-design, lässt sich das ganze lösen und es bietet den vorteil, dass php weniger zu tun hat und deine seite performanter ist.

          mfg
          robo47
          [URL="http://www.robo47.net"]robo47.net[/URL] - Blog, Codeschnipsel und mehr
          | :arrow: [URL="http://www.robo47.net/blog/192-Caching-Libraries-and-Opcode-Caches-in-php-An-Overview"]Caching-Klassen und Opcode Caches in php[/URL] | :arrow: [URL="http://www.robo47.net/components"]Robo47 Components - PHP Library extending Zend Framework[/URL]

          Kommentar


          • #6
            Re: String auf bestimmte Breite (Pixel) kuerzen...

            Zitat von mudo
            Gibt es eine Methode, aus einem String die Zeichenlaenge zu errechnen um in der Laenge z.B. bis an die 150px heranzukommen?
            Ja (-> Grafikfunktionen)

            Daß es unklug ist, Websiten mit absoluten Pixelangaben zu erstellen, ist Dir hoffentlich schon bekannt?

            Kommentar


            • #7
              Genau das ist ja das Raetsel, robo47, anhand von was man es zuschneidet

              Mir ist klar, das es immer kleine unstimmigkeiten bei den Browsnern gibt. Es soll ja nun auch nicht Pixel-genau ausgerechnet sein. Ich dachte nur ob es evlt eine Moeglichkeit gibt, es so hinzubiegen, dass die Texte nicht "sooo" untershiedlich lang sind.
              Das mit dem Beispiel ist so ne Geschichte, weils ein interner Bereich wird und bisher nur lokal bei mir laeuft. Aber stell dir z.B. mal eine Uebersichtstabelle vor, bei der die erste Spalte eine feste Breite hat. In der Uebersicht sollten nur die Textanfange vom Ganzen und ohne Zeilenumbruch stehen. Lange Texte mit "..." gekuerzt und bei Klick ein Link auf die Detailseite.

              @meikel
              Stimmt, , da bleib ich dann doch lieber dabei, wie es jetzt ist *g*

              Kommentar


              • #8
                man könnt auch nen bild draus machen, dann kann der benutzer nicht mehr die schriftart wechseln... ganz fiese nutzer surfen aber immer noch mit nem text-browser rum...

                Kommentar


                • #9
                  öhm, weis nciht genau wie man das nennt, aber console-schriftarten z.b. haben keinen unterschied bei der größe der buchstaben, courier z.b ist glaub ich so eine schriftart damit kannst du immer auf die gleiche länge kürzen.

                  mfg
                  robo47
                  [URL="http://www.robo47.net"]robo47.net[/URL] - Blog, Codeschnipsel und mehr
                  | :arrow: [URL="http://www.robo47.net/blog/192-Caching-Libraries-and-Opcode-Caches-in-php-An-Overview"]Caching-Klassen und Opcode Caches in php[/URL] | :arrow: [URL="http://www.robo47.net/components"]Robo47 Components - PHP Library extending Zend Framework[/URL]

                  Kommentar


                  • #10
                    jau, damals in DOS... das waren noch zeiten...

                    Kommentar


                    • #11
                      ja aber z.b. über <pre> die schrift die da verwendet wird, sind doch alle zeichen gleich breit, weis ja ned was genau da für ne schrift verwendet wird, aber damit wäre es ohne probleme möglich anhand der länge eines strings in so zu schneiden, dass alle gleich aussehen.

                      mfg
                      robo47
                      [URL="http://www.robo47.net"]robo47.net[/URL] - Blog, Codeschnipsel und mehr
                      | :arrow: [URL="http://www.robo47.net/blog/192-Caching-Libraries-and-Opcode-Caches-in-php-An-Overview"]Caching-Klassen und Opcode Caches in php[/URL] | :arrow: [URL="http://www.robo47.net/components"]Robo47 Components - PHP Library extending Zend Framework[/URL]

                      Kommentar


                      • #12
                        Consolen-Schriftarten (z.B.: Courier, Fixedsys, Lucida Console) sind in der Buchstabenbreite gleich breit/lang. (Nur das waere ja zu einfach *g*).
                        Evtl. hab ich da einen schlechten Geschmack, aber ich finde die nicht gerade so schoen.
                        Andersrum, was wenn man an eine nicht-Consolen-Schriftart gebunden ist)

                        Interessant faend ichs eben mit den "klassischen" Arten wie z.b. Arial, Verdana, ...

                        Kommentar


                        • #13
                          Aber nicht vergessen, dass es auch bei den unproportionalen Fonts verschiedene Schriftgrößen und -arten gibt, so dass das Ergebnis wieder undefiniert wäre.

                          cu

                          Kommentar


                          • #14
                            monospaced nennt sich sowas. das is imho die einzige option, die du hast...
                            Was ist validität?

                            Kommentar


                            • #15
                              Man könnte versuchen, über die GD den Text selbst in der entsprechenden Schriftart zu rendern... ist aber viel zu viel Aufwand und wohl viel zu langsam.
                              mod = master of disaster

                              Kommentar

                              Lädt...
                              X