Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Długość stringa
Forum PHP.pl > Forum > Po stronie przeglądarki > JavaScript
misiek172
Witam.

Mam pytanie, czy istnieje poleceniea bądź jakaś metoda którą można zmierzyć długość danego stringa w pikselach.


Miałem pisać sobie taką funkcje ale najpierw zpaytam, bo może istnieje lub już ktoś taką napisał i nie potrzebnie się narobie.

Pozdrawiam, Łukasz.
Kisiol_Ent
strlen($stringi) * szerokosc_literki

Ale niestety dziala tylko na fonty o stalej szerokosci (monotyp czy jakoś tak)
Joy-machine
w PHP przy generowaniu obrazków jest możliwość wyliczenia szerokości danego stringa o danym rozmiarze dla danej (wskazanej, leżącej w katalogu) czcionki, właśnie w pikselach. Niestety wydaje się, że generacja czcionek jest troszkę różna na różnych przeglądarkach (ta sama czcionka ten sam rozmiar) nawet na tym samym komputerze. Plus to, że także pod różnymi wersjami GD2 (biblioteka grafiki w php) tekst jest generowany inaczej.

Najlepiej sprawdz jaką szerokość w pikselach mają średnio litery (znaki) i przelicz sobie prawdopodobny rozmiar.
misiek172
teoretycznie mialem zamiar zrobic dla danego rozmiaru czcionki, musiałbym każdy znak zmierzyć i zapisać do tablicy ale to jest od groma roboty
gekon
A do czego jest Ci to potrzebne?
Kisiol_Ent
albo hmm robisz gdzies na stronie ukryty div z napisem i potem JSem odczytujesz szerokosc tego ukrytego diva i juz masz ;p Jat ma sie nieznam na jawie :/
misiek172
a jak odczytać długość DIVa? biggrin.gif

przeszukałem już całego neta i ni chu chu o długości diva nie widziałem
phpion
  1. document.getElementById('id_diva').offsetWidth

smile.gif
Zajec
Za pomocą clientWidth, ale powiedz lepiej do czego Ci to. Może podamy lepsze rozwiązanie problemu.
misiek172
chodzi o to iż załóżmy mam 6 nazwa i normalnie układać ma tak:

1. nazwa1 vs nazwa2
2. nazwa3 vs nazwa4
3. nazwa5 vs nazwa6

tylko ze jak stringi w miejsce nazwa będa miały różną długość to wyjdzie tak:

1. nazwa1asdassa vs nazwa2
2. nazwa3 sds vs asdasdnazwa4
3. nazwa5 sdsdsd vs sdsdnazwa6

a chcę wby VS było w jednej linijce
i terz jak miałbym długość literek to mógłbym wyliczyć ilość potrzebnych spacji po nazwie.

PS: MUSI TO BYĆ WYPISANE! Aby można było to skopiować myszką.
Joy-machine
To, co chcesz zrobić, bez użycia czcionki o stałej szerokości znaku, jest, delikatnie mówiąc, bardzo kiepskim pomysłem. A obliczyłeś już ile pikseli szerokości ma spacja?
frickle
Jeżeli jedymym wymaganiem jest żeby to vs było w jednej linijce, to ja bym to wyświetlił w tabeli:

| tryeuryeury| vs |jhgsjdah |
| ahksjdhaj| vs |asdka |
| kjhkajshkjh| vs | jaksjd |

może to nie jest bardzo eleganckie rozwiązanie, ale za to jakie proste.

od biedy można to samo zrobić na divach. Jak ukryjesz krawędzie tabeli czy diva, to będzie ładnie wyglądało, jak kilka linijek tekstu.
misiek172
ale o to chodzi żeby właśnie było ze spacjami nie tabelą bo ja potem chcę to sobie skopiowac myszką, wkleić do jakiegoś okienka na stronie internetowej i zeby dobrze wyświetlało ładnie... rozumiecie o co mi chodzi? Juz coś takiego sobie zrobilem ale w Delphi, bo delphi ma funkcję odbliczająca długość str w pikselach. Ale wolałbym to mieć w JS. Musze jeszcze dobrze przetestować pomysł Kisiol_Ent.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.