misiek172
18.02.2007, 14:50:31
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
18.02.2007, 15:16:36
strlen($stringi) * szerokosc_literki
Ale niestety dziala tylko na fonty o stalej szerokosci (monotyp czy jakoś tak)
Joy-machine
18.02.2007, 15:57:31
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
18.02.2007, 16:08:50
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
18.02.2007, 16:19:42
A do czego jest Ci to potrzebne?
Kisiol_Ent
18.02.2007, 16:37:03
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
18.02.2007, 17:53:31
a jak odczytać długość DIVa?

przeszukałem już całego neta i ni chu chu o długości diva nie widziałem
phpion
18.02.2007, 18:17:47
document.getElementById('id_diva').offsetWidth
Zajec
18.02.2007, 22:23:24
Za pomocą
clientWidth, ale powiedz lepiej do czego Ci to. Może podamy lepsze rozwiązanie problemu.
misiek172
2.03.2007, 15:17:26
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
2.03.2007, 21:36:45
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
2.03.2007, 21:49:39
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
3.03.2007, 12:27:58
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.