![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 261 Pomógł: 2 Dołączył: 13.05.2012 Ostrzeżenie: (0%) ![]() ![]() |
Nie wiem czy znalazł już ktoś sposób na dynamiczne skracanie tytułów by pasowały do diva o określonej szerokości. Mam tu na myśli zastąpienie substr czymś bardziej praktycznym. Substr gdy zakończy się w "środku" polskiego znaku powstaje krzaczek. Poza tym, szerokość liter ma znaczenie. Niektóre tytuły nie zmieszczą się gdy inne tytuły są ucinane w 3/4 a mogłyby być wyświetlone w całości - ilość znaków ta sama.
Mam np. tytuł: Wypadek w Kamieniu Pomorskim. Co zeznała pasażerka? Szerokość diva 240 px, chcę by ten tekst zmieścił się w dwóch linijkach do szerokości 240px, jak się nie zmieści to zastąpi ostatnie 3 znaki kropkami. Czy istnieje jakiś sposób na to? |
|
|
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 3 034 Pomógł: 366 Dołączył: 24.05.2012 Ostrzeżenie: (0%) ![]() ![]() |
|
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 1 890 Pomógł: 339 Dołączył: 14.12.2006 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
W PHP dobrze tego nie zrobisz. Zresztą i tak nie miałoby to sensu.
Rzuć okiem na rozwiązanie JS: http://jsfiddle.net/5YrQR/ [edit] A co do substr, który tworzy krzaczki dla polskich znaków, zainteresuj się mb_substr, która działa poprawnie dla Unicode. Ten post edytował sowiq 2.01.2014, 15:08:45 |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 261 Pomógł: 2 Dołączył: 13.05.2012 Ostrzeżenie: (0%) ![]() ![]() |
czy rozwiązanie js nie będzie bardzo obciążające? mam zamiar stosować to na nawet 15 tytułach
|
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 1 890 Pomógł: 339 Dołączył: 14.12.2006 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
To zależy jak dużo znaków bedzie musiał odciąć skrypt (1 znak = jedna iteracja, a w niej pobieranie wysokości elementu). Żeby przyspieszyć, możesz założyć maksymalną ilość znaków (np. 40), powyżej której na pewno tekst będzie za długi. Wtedy na początku ucinasz wszystko powyżej 40 znaków i dopiero potem wchodzisz w pętlę i ucinasz pojedyncze znaki.
Zawsze też możesz zrobić test - wrzucić 50 tytułów i sprawdzić obciążenie. Ale IMO będzie ono pomijalnie małe. [edit] Żeby nie być gołosłownym: http://jsfiddle.net/5YrQR/1/ Oczywiście czas będzie zależał od długości tytułów i szerokości elementu z tytułem (dlatego zmniejszyłem szerokość do 120px). Ten post edytował sowiq 2.01.2014, 16:44:09 |
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 717 Pomógł: 120 Dołączył: 18.04.2009 Ostrzeżenie: (0%) ![]() ![]() |
Nie wiem czy znalazł już ktoś sposób na dynamiczne skracanie tytułów by pasowały do diva o określonej szerokości. Mam tu na myśli zastąpienie substr czymś bardziej praktycznym. Substr gdy zakończy się w "środku" polskiego znaku powstaje krzaczek. Poza tym, szerokość liter ma znaczenie. Niektóre tytuły nie zmieszczą się gdy inne tytuły są ucinane w 3/4 a mogłyby być wyświetlone w całości - ilość znaków ta sama. Mam np. tytuł: Wypadek w Kamieniu Pomorskim. Co zeznała pasażerka? Szerokość diva 240 px, chcę by ten tekst zmieścił się w dwóch linijkach do szerokości 240px, jak się nie zmieści to zastąpi ostatnie 3 znaki kropkami. Czy istnieje jakiś sposób na to? rozwiązanie na czystym CSS: http://jsfiddle.net/yYjh3/ |
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 374 Pomógł: 79 Dołączył: 6.04.2010 Skąd: Ostrów Wielkopolski Ostrzeżenie: (0%) ![]() ![]() |
rozwiązanie na czystym CSS: http://jsfiddle.net/yYjh3/
Cool (IMG:style_emoticons/default/smile.gif) Nie znałem tego wcześniej. Całe życie człowiek się uczy. + Ci za to @PrinceOfPersia (IMG:style_emoticons/default/smile.gif) |
|
|
![]() ![]() |
![]() |
Aktualny czas: 22.08.2025 - 19:55 |