sobota, 7 sierpnia 2010

SIEROTY i WDOWY na stronie, justowanie tekstu

Na stronach internetowych nie ma raczej zwyczaju doskonałego formatowania tekstu, ale zawsze możemy trafić na klienta, który ma coś więcej wspólnego z typografią i powie nam, że to niedopuszczalne żeby w wyjustowanym tekście były literki "i", czy inne pojedyncze znaki na końcu linii. Trudno żebyśmy teraz siedzieli i poprawiali każdy tekst na stronie, który często jest w dodatku kopiowany i wstawiany przez CMS...
Kiedyś wykombinowałem na to prosty skrypcik, który pozwolił uspokoić 2óch bardziej wymagających klientów, a wygląda on tak: Skrypt wciska tzw. "twardą spację" (  jak mówił Pan z PHP skrót od: "niech będą spacje") po każdym jednoznakowym słowie - wtedy automatycznie to słowo doklei się do kolejnego tak, jakby były jednym wyrazem. Dwu-znakowe i trzy-znakowe zakomentowane, bo uważam to za przesadę, a w dodatku z 3znakowymi jeśli mamy w tekście 3znakowe tagi to też pozamienia i nie zawsze to wyjdzie na dobre :)
tekst powinien się znajdować w elemencie o ID='tresc', ale to chyba widać ;)

4 komentarze:

  1. ooo i to mi się podoba, proste i skuteczne :)
    Pozdrawiam
    Arek

    OdpowiedzUsuń
  2. skrypt nie radzi sobie z tekstem w którym następują po sobie dwie pojedyncze litery, np. z tekstu "...z mlekiem i z miodem..." zrobi: "z mlekiem i z miodem" - litera Z zostanie bez nbsp

    OdpowiedzUsuń
    Odpowiedzi
    1. trzeba zmienić drugą linijkę na dwie poniższe:

      tekst = tekst.replace(/(\s)([\S])([\s])([\S])([\s])+/g,"$1$2 $4 ");
      tekst = tekst.replace(/(\s)([\S])[\s]+/g,"$1$2 ");

      Usuń
  3. Witam.
    Mam na stronie tekst oraz przycisk po wciśnięciu którego rozwija się dalsza część tekstu.
    Dlaczego skrypt usuwa sieroty tylko z pierwszego tekstu (tego widocznego na początku), a ten rozwijany pomija. Dodam, że jak za komentuje widoczny tekst, to skrypt usuwa sieroty z tekstu ukrytego.

    OdpowiedzUsuń

Masz uwagę, sugestię, albo po prostu ochotę - zostaw komentarz