Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Dynamiczna wielkość obszaru tekstowego.
Forum PHP.pl > Forum > PHP
Alkan0id
Witam
Spędziłem trochę czasu szukając odpowiedzi na nurtujące mnie pytania jednak nie ma niczego co by pasowało do opisu więc zakładam nowy temat.
Tworzę stronę internetową wraz z forum. Górna część strony głównej składa się z tapety, loga oraz paru odnośników, poniżej są dwa div'y. Pierwszy z nich jest zwykłym białym obszarem, na który jest naniesiony tekst, drugi z tekstem (użyłem dwóch div'ów w celu zrobienia marginesów.
Oto prosty szkic w paint'cie abyście mieli mniej więcej pojęcie o co mi chodzi.
http://img69.imageshack.us/img69/6372/wzorh.jpg
Po kliknięciu odnośnika zmienia się treść tzn. cała strona pozostaje bez zmian jednak zostaje wyświetlony inny tekst .
Zrobiłem to na pętli if(każdemu odnośnikowi przyporządkowałem numer i if ($a==1) {echo 'tekst 1';}.
Chciałbym zrobić czytnik informacji(rss), aby wybrany przeze mnie zakres informacji z innych portali był wyświetlany na mojej stronie(widziałem to na jednym z portali, były dodawane newsy z konkretnej dziedziny a poniżej link do oryginalnego źródła).
Jednak tutaj występują dwa problemy.
Pierwszy z nich to nie mam zielonego pojęcia jak zrobić taki czytnik i czy to w ogóle jest legalne.
Natomiast drugim problemem jest to, że div z białym obszarem zawsze pozostanie jednakowych rozmiarów.
Myślałem aby jakoś zrobić funkcje liczącą długość tekstu i w zależności od długości był by wyświetlany div o odpowiedniej długości(np if ($dltekst==250) {echo'<div#100></div>';} mniejsza teraz ze składnią).
Głównym zamierzeniem jest to aby obszar dostosowywał się do długości tekstu (jednak aby nie był dłuższy niż określona wielkość). Tak jak post na forum, czym dłuższy tym okienko większe. Całość dość chaotycznie napisana jednak mam nadzieję, że ta treść jest dostatecznie zrozumiała.
wry
co do czytnika rss poczytaj sobie o parsowaniu xml'a badz poszukaj gotowego rozwiazania np na http://www.phpclasses.org/ co do drugiego zagadnienia wydaje mi sie ze wystarczy ci jesli albo ustawisz divom okreslana wysokosc i atrybut overflow np na hidden, albo (lepsze rozwiazanie) wyswietlisz pare pierwszych wyrazow badz zdan pochodzacych z wpisu, mozesz do tego uzyc np substr, polecam przed cieciem wpisu wyczyscic go z tagow (strip_tags)
Pilsener
Cytat
Myślałem aby jakoś zrobić funkcje liczącą długość tekstu i w zależności od długości był by wyświetlany div o odpowiedniej długości(np if ($dltekst==250) {echo'<div#100></div>';}
- źle, bo czcionki i znaki mają różną szerokość, "wmawiam" jest o wiele szersze niż "litości" a to ta sama ilość znaków. Trik taki zadziała tylko w wypadku czcionki monotypicznej. Moim zdaniem problemu nie ma, bo przecież div automatycznie się rozciągnie by pomieścić treść, użyj odpowiednich reguł w css: max-height by określić maksymalną wysokość diva oraz overflow, by decydować, czy nadmiar tekstu ma być ukrywany czy przewijany.
Alkan0id
Dodałem jedną linijkę tekstu aby sprawdzić atrybut hidden, jednak tekst został ucięty w połowie(wypadło to mniej więcej w połowie, więc widać tylko górną część liter).
Eksperymentowałem z scroll ale wygląda to kiepsko (pojawiają się paski do przewijania w pionie i poziomie, gdyby usunąć przewijanie w poziomie może bym się jeszcze zastanowił, lecz oprócz html'a nie kojarzę takiej opcji.
Zamiast dwóch div'ów z białym pixelkiem i textem zrobiłem jeden i ustawiłem padding jako margines.
Odnośnie obszaru tekstowego to mam 3 opcje:
- zostawić overflow na scroll i ewentualnie usunąć przesuwanie w poziomie
- poszukać rozwiązania i zrobić kod, który dostosowywuję się do ilości tekstu (jak okienko posta)
- ucinać tekst i dać opcję czytaj dalej
Jeśli chodzi o ucinanie tekstu w połowie to myślę, że można po prostu przedłużyć tego diva o kilka pixeli tak aby tekst był zawsze odpowiednio widoczny.
Natomiast o parsowaniu xml'a nie doczytałem nic konkretnego ale nie chce się o wszystko wypytywać więc poszukam dokładniej.
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.