Trafiłam ostatnio na artykuł http://pornel.net/ramki - czy naprawdę ramki to takie nieeleganckie rozwiązanie? Argumenty wydają mi się przekonujące, ale szkoda mi tego, co mogłabym osiągnąć za pomocą ramek. A to mój problem:
Strona podzielona na dwie częsci - z lewej menu z prawej treść. Problem jest w tym, że menu jest duże a treść poszczególnych pozycji stosunkowo niewielka (ale nie na tyle mała, żeby wczytać całość i tylko wyświetlac przy kliknięciu na link). Dodatkowo w menu można ograniczyć liczbę pozycji przez zaznaczenie kategorii i opcję wyszukiwania.
Wydawało mi się, że ramiki będą wygodniejsze, bo treść jest dużo mniejsza od całej zawartości strony, no i jak sobie coś wyszukam to nie trzeba tego wyszukiwania powtarzać przy każdym klinięciu na wyszukaną pozycję w menu.
A może da się to zrobić w inny sposób?
ja swoje meny umieściłem w zewnetrznym pliku JS, a w treści strony mam jedynie wywołanie. menu jest możnaby powiedzieć w tym przypadku trywialne i o ile dobrze zrozumiałem tobie potrzebne jest coś więcej, ale widziałem sporo bardziej zaawansowanych skryptów w necie, rozwijane, drzewiaste, jakie ci potrzeba..
U mnie to wygląda tak: link
Robiąc menu w JavaScript znowu uniemożliwiasz oglądanie strony osobom nieobsługującym JS. Pornel pisał nie tylko o wadach ramek, ale także o javascript: (void). Twoje zastosowanie JS jest IMVHO nielepsze. Już nawet pomijając zupełnie poprawność pisania stron i całą ideologię dostępności dla wszystkich. Twoja strona po prostu nie zostanie zindeksowana przez wyszukiwarki internetowe.
Originally posted by Sombria:
Wydawało mi się, że ramiki będą wygodniejsze, bo treść jest dużo mniejsza od całej zawartości strony, no i jak sobie coś wyszukam to nie trzeba tego wyszukiwania powtarzać przy każdym klinięciu na wyszukaną pozycję w menu.
A może da się to zrobić w inny sposób?
Być może nawigacja została, źle zaprojektowana.
Można to menu zrobić na liście i zwijać dla przeglądarek z js, a dla tych z wyłączoną obsługą zostawić rozwinięte.
http://psphome.dhtml.pl
Można też tak: http://www.cssplay.co.uk/menus/dd_valid.html
http://www.alistapart.com/articles/dropdowns/
http://lofotenmoose.info/-/item/depth-of-sequential-navigation Moose gdzieś to ładnie graficznie pokazał. Połazisz po jego stronie to załapiesz jego sposób rozumienia drzewa linków.
Originally posted by Sombria:
Jeśli tworzysz stronę w oparciu o elegancki kod, użytkowni nawet dobrze nie zauważy przeładowania całego szablonu. Natomiast mnie doprowadza do szału, gdy otwierając któryś z działów w nowej karcie w tle tracę menu.Strona podzielona na dwie częsci - z lewej menu z prawej treść. Problem jest w tym, że menu jest duże
skoro JS jest "nieelegancki" to jak realizować najlepiej menu, które się może rozrastać, dodatkowe opcje czy rosnąca lista podstron. chodzi mi o wyeliminowanie sytuacji, kiedy każda nowa pozycja w menu jest dodawana na 20-30 podstronachprzymierzam się do czegoś takiego i chciałbym uniknąć blędu. czyli chcę mieć stronę zgodna z "zasadami" a znowu nie babrać się w dodawanie kolejnych pozycji w wielu dokumentach. stosowałem 2 różne rozwiązania i jak widać w obu przypadkach chybiłem...
Dziękuję za odpowiedzi.
Originally posted by zielski:
Być może nawigacja została, źle zaprojektowana.
Chyba nie. To menu to około 200 punktów - konkretna numeracja, więc i kolejność, przy czym część zagadnień należy do kilku kategorii, czyli logiczny podział odpada. Niektóre mają podpunkty (i tu mogłoby się przydać jedno z twoich rozwiązań). Myślałam też o tym, żeby to zrobić w zupełnie inny sposób (jakieś podstrony itp.) ale szkoda wysiłku - zagadnień jest za mało i byłoby to komplikowanie prostego i wygodnego (moim zdaniem) rozwiązania.
Originally posted by Zajec:
Jeśli tworzysz stronę w oparciu o elegancki kod, użytkowni nawet dobrze nie zauważy przeładowania całego szablonu.
Chyba masz rację. Całość jest na tyle prosta że nawet z dużym menu nie powinno być problemu.
Został mi jeszcze jeden problem. Menu jest długie w porównaniu z treścią, więc wygodniej jest je umieścić w okienku z suwakiem. Takie okienko da się zrobić w CSS, ale przypadku ramek menu nie jest przewijane, kiedy wybierze się jakąś pozycję. Czy da się tak zrobić bez ramek?
Originally posted by JeZZ83:
skoro JS jest "nieelegancki" to jak realizować najlepiej menu, które się może rozrastać, dodatkowe
Nie jest nieelegancki. Trzeba go tylko dobrze zastosować.
Originally posted by Sombria:
Dziękuję za odpowiedzi.
Originally posted by zielski:
Być może nawigacja została, źle zaprojektowana.
Chyba nie. To menu to około 200 punktów - konkretna numeracja, więc i kolejność, przy czym część zagadnień należy
Daj linkę.
Jeśli chodzi o to czego szukam to nie musi być to żaden JS, ale tylko coś takiego udało mi sie znaleść aby nie robić ramek i nie gmerać w wielu podstronach, ale jeśli jest jakiś lepszy sposób, to chętnie go sprawdzę, jakieś sugestie??
Originally posted by Sombria:
Wiem, że za pomocą JS można przewijać całą stronę - może tymi samymi funkcjami da się przewinąć zawartość div'a.przypadku ramek menu nie jest przewijane, kiedy wybierze się jakąś pozycję. Czy da się tak zrobić bez ramek?
Originally posted by JeZZ83:
Jest jeden, bardzo popularny od dobrych kilku lat. Nazywa się server side, php, inlcude.Jeśli chodzi o to czego szukam to nie musi być to żaden JS, ale tylko coś takiego udało mi sie znaleść aby nie robić ramek i nie gmerać w wielu podstronach, ale jeśli jest jakiś lepszy sposób, to chętnie go sprawdzę, jakieś sugestie??
Originally posted by zielski:
Daj linkę.
Jeszcze nie mam i pewnie to porwa zanim będę miała
W ogóle trudno mi coś więcej o tym powiedzieć. Mój kumpel z biologii prosił mnie o pomoc. Ma umieścić w internecie streszczenie jakiejś broszurki czy skryptu. Pierwszą rzeczą, jaką zaproponowałam to układ standardowy - strona ze spisem treści a na podstronach linki wstecz, dalej, do góry. Ale w ten sposób można zrobić tylko kilka rozdziałow, bo reszta to są wymienione jakieś rzeczy (nie mam zielonego pojęcia co to jest ). No i chciał, żeby to wyglądało podobnie jak w niektórych słownikach komputerowych, że po lewej słowa, po prawej definicja. Dodatkowo powinna być taka opcja, żeby można było wybrać tylko pozycje z jakiejs grupy i ma być wyszukiwarka. Możliwe, że z tą ilością 200 trochę przesadziłam, ale nie mam tej książki.
Na razie sprawdzam, czy i ewentualnie jak to zrobić, bo może się okazać za trudne.
Originally posted by Zajec:
Originally posted by Sombria:
funkcjami da się przewinąć zawartość div'a.
A css to już nie ma?
Originally posted by zielski:
Nie widzę.A css to już nie ma?
Na stronie nie ma konkretnego przykładu...
<p style="width:100px; height:100px; background-color:#DDD; overflow:scroll; font-size:48px; white-space:nowrap">dlugi tekst dlugi tekst dlugi tekst dlugi tekst</p>
Wklej w źródło dowolnej strony, zapisz i wtedy: tools -> advanced -> reload from cache (swoją drogą kto wymyślił żeby to tak ukryć? u mnie jest to po prostu CTRL+R, ale o ile dobrze pamiętam nie jest to domyślny skrót).
Na pewno wczytałeś się, co chcemy osiągnąć? Za każdym załadowaniem strony paski div'a są na początku ustawione.
http://zajec.net/test/autoscrolling
Dzięki za rady. Strona powstanie jednak bez ramek Przyszły mi one do głowy na tej stronie http://kuchnia.mckornik.com/start.php bo układ podobny, ale jak widać można inaczej.
A przewijanie można zwyczajnie, dzięki etykietom osiągnąć; przynajmniej tak we wstępnych testach mi wyszło - jeszcze posprawdzam. Tylko dziwnie to działa w IE (coś się sypie przy odświeżaniu) :/
Originally posted by Zajec:
Na pewno wczytałeś się, co chcemy osiągnąć? Za każdym załadowaniem strony paski div'a są na początku ustawione.
http://zajec.net/test/autoscrolling
Chodzi Ci o to, że przewija się do góry czy o to, że są od począku ładowania się tego testu?
Scrolle powinny być od początku. My się jednak zastanawialiśmy jak zrobić, aby Opera pokazywałą domyślnie ostatnią linijkę tekstu. Czyli przewinęła prawy suwak w dół.
Np. ostatnie słowo otaczasz elementem liniowym <span id="przewin"></span> i używasz adresu http://zajec.net/test/autoscrolling#przewin
Faktycznie działa :-) Byłem pewien, że tego nie da się osiągnąć. Dzięki :-)
Zainteresowani: http://zajec.net/test/autoscrolling#przewin
To podobne do mojego rozwiązania (tylko jak zwykle napisałam to tak, że nie wiadomo o co chodzi ) Etykietami w różnych kursach nazywane są konstrukcje <a name="nazwa"></a>
Jak lepiej w takim razie takie "etykiety" tworzyć: przez id czy name?
Zależy czego życzysz sobie używać :-)
Originally posted by http://www.w3.org/TR/REC-html40/struct/links.html:
Destination anchors in HTML documents may be specified either by the A element (naming it with the name attribute), or by any other element (naming with the id attribute).
Czyli name dla <a>, id dla innych znaczników.
To dobrze. Już myślałam, że to kolejny przypadek: niby dobrze, ale lepiej robić inaczej