logo elektroda
logo elektroda
X
logo elektroda
REKLAMA
REKLAMA
Adblock/uBlockOrigin/AdGuard mogą powodować znikanie niektórych postów z powodu nowej reguły.

[html, css] Jak zintegrować menu w HTML bez użycia iframe?

soulhudson 18 Sty 2011 18:02 4685 12
REKLAMA
  • #1 9023430
    soulhudson
    Poziom 12  
    Posty: 89
    Witam!
    Administruję stronę Link.
    Ma ona prostą budowę: index z menu i nagłówkiem zbudowany na Div-ach, oraz ramka iframe do której wczytywane są strony z menu.

    Chciałbym pozbyć się się ramki, jednak chcę nie zmienić menu, tj. aby podczas dodawania przyciusku do menu nie trzeba było edytować wszystkich podstron - tak jak w przypadku strony tylko na Div-ach.
    Nie chcę także żadnych programów! Tylko czysty html!

    Ramki sprawiają dużo problemów przy otwieraniu strony na różnych rozdzielczościach, oraz legenda głosi że są przeglądarki które ich nie obsługują. Tu nasuwa się jeszcze prośba: Proszę o przetestowanie strony na waszych komputerach, różnych rozdzielczościach. Wszystkie błędy poproszę na maila: dhpasta@gmail.com
  • REKLAMA
  • #2 9023639
    marcinj12
    Poziom 40  
    Posty: 3404
    Pomógł: 1024
    Ocena: 250
    Jeżeli poprzez słowo "Nie chcę także żadnych programów!" rozumiesz również "Nie chcę nawet PHP", to, oprócz ramek, można ewentualnie próbować z javascriptem: musisz menu doprowadzić do postaci pliku javascript:
    menu.js
    Kod: Javascript
    Zaloguj się, aby zobaczyć kod


    a potem załączyć je jako skrypt:
    Kod: text
    Zaloguj się, aby zobaczyć kod
  • #3 9024215
    soulhudson
    Poziom 12  
    Posty: 89
    Spróbuje jutro...

    Nie PHP nie uznaję za program... :)
  • REKLAMA
  • #4 9024478
    makkak
    Poziom 19  
    Posty: 289
    Pomógł: 22
    Ocena: 16
    w operze poziomy pasek przewijania w głównej ramce ma ze 2 kilometry ;) po jaką cholere w takim prostym układzie Ci ramki? ;)
  • REKLAMA
  • #5 9025891
    marcinj12
    Poziom 40  
    Posty: 3404
    Pomógł: 1024
    Ocena: 250
    soulhudson napisał:
    Spróbuje jutro...

    Nie PHP nie uznaję za program... :)

    A więc skoro dopuszczasz PHP, a bardzo możliwe że jego obsługa jest zainstalowana na serwerze którego używasz bo to praktycznie standard, to lepiej i prościej będzie chyba użyć PHP'owego include.
    Pomysł z JavaSciptem to raczej rzadko stosowane rozwiązanie w przypadku prostych menu (choć już np. przydaje się do skomplikowanych, animowanych menu).
    Czyli: wrzucasz cały kod menu w PHPie, zapisujesz np. w pliku menu.php, i dołączasz prostym:
    Kod: PHP
    Zaloguj się, aby zobaczyć kod
    w miejscu, gdzie na stronie ma być wstawiony kod z pliku menu (jednak wszystkim stronom musisz wtedy zmienić rozszerzenie z HTML na PHP).
  • #6 9027282
    soulhudson
    Poziom 12  
    Posty: 89
    A nie można by zrobić tak:

    Kod: PHP
    Zaloguj się, aby zobaczyć kod


    Dodano po 1 [godziny] 5 [minuty]:

    Ale z tym rozszerzeniem nie rozumie...

    Tworzę plik menu.php
    i tu wrzucam:
    Kod: text
    Zaloguj się, aby zobaczyć kod


    I czy teraz muszę wszystkie pliki zmienić na .php?
    Bo np. chrome jak klikne w to menu.php to wyswietla mi kod... chyba że mam coś źle
  • REKLAMA
  • #7 9027685
    blade-mrn
    Poziom 22  
    Posty: 320
    Pomógł: 64
    Ocena: 18
    Wszystko masz dobrze po prostu PHP to język interpretowany po stronie serwera a nie przeglądarki. Więc aby obejrzeć stronę napisaną w PHP czy też pliki z taki rozszerzeniem musisz mieć zainstalowany jakiś serwer PHP lub wrzucić te pliki na jaki serwer w sieci.
    A co do plików to tak musisz bo w przeciwnym razie nie będzie ci działało to includ-owanie menu.
  • #8 9027857
    soulhudson
    Poziom 12  
    Posty: 89
    PHP zostawmy...

    Użyłem proponowanego js i wszystko działa pięknie.
    Proszę przetestować na waszych rozdzielczościach: [url="www.droga.zhr.pl]droga.zhr.pl[/url]

    Tylko teraz zauważyłem kolejny problem...
    IE nie wyświetla mojego menu w css.... W kodzie problemu nie widzę, chyba że w znaczniku meta
  • #9 9027979
    marcinj12
    Poziom 40  
    Posty: 3404
    Pomógł: 1024
    Ocena: 250
    A skąd wziąłeś takie znaczniki <lu> i <la> ? Pierwszy raz coś takiego widzę...
    Jeżeli chodzi o listę niesortowaną (Unordered List), to znaczniki są <ul>...</ul> dla listy i <li>...</li> dla itemów. Odsyłam tutaj po szczegóły.
    O ile FF jakoś sobie radzi z tymi elementami, o tyle już IE - nie.
    Zmień w javascripcie znaczniki na poprawne, potem w CSSie dostosuj wygląd (masz już jakieś style z listy, musisz się tym zająć), najlepiej ustaw list-style na none i to powinno sprawić, że pod IE style się wyświetlą jak trzeba - po prostu teraz nie rozpoznaje on nieznanych znaczników.
    Jeszcze czeka Cię trochę walki z tym, że IE inaczej interpretuje szerokość elementów (padding i margin) i powinno być OK.
    Pozdrawiam
  • #10 9028001
    soulhudson
    Poziom 12  
    Posty: 89
    <lu> i <la> mam określone w css, bo poza menu używam wspomnianej Unordered List, i w tedy używam znaczników <ul> i <li>

    I gdzie jest to list-style?
  • #11 9028539
    marcinj12
    Poziom 40  
    Posty: 3404
    Pomógł: 1024
    Ocena: 250
    soulhudson napisał:
    <lu> i <la> mam określone w css, bo poza menu używam wspomnianej Unordered List, i w tedy używam znaczników <ul> i <li>
    I gdzie jest to list-style?

    OK, masz to w CSSie, co nie zmienia faktu, że takich znaczników w standardzie HTML nie ma :)
    Jeżeli używasz też innych list, to robisz to przy użyciu selektora klasy w CSSie:

    w pliku html:
    Kod: text
    Zaloguj się, aby zobaczyć kod


    ....w pliku CSS
    Kod: CSS
    Zaloguj się, aby zobaczyć kod


    List-style miałem na myśli właściwość list-style-type: none; w CSSie dla elementu ul, żeby wyłączyć domyślne czarne kółeczko przy liście.
  • #12 9032269
    soulhudson
    Poziom 12  
    Posty: 89
    Aha, teraz rozumiem. Dzięki!

    A jak ustawić padding i margin tak żeby IE też je interpretował?
    Głownie chodzi oto, aby wyśrodkowywyał stronę przy dużych monitorach?
  • #13 9033313
    marcinj12
    Poziom 40  
    Posty: 3404
    Pomógł: 1024
    Ocena: 250
    Wyśrodkowanie strony masz OK (div "top"), chodziło mi bardziej o to, że tam gdzie masz a:link i a:visited masz jakieś mniejsze szerokości poustawiane niż szerkokość menu: daj im też po 190px i powinno być OK.

Podsumowanie tematu

LABEL_AI_GENERATED
Użytkownik poszukiwał sposobu na integrację menu w HTML bez użycia iframe, aby uniknąć problemów z responsywnością i kompatybilnością przeglądarek. Proponowano różne rozwiązania, w tym użycie JavaScript do dynamicznego generowania menu oraz PHP do włączenia menu z zewnętrznego pliku. Ostatecznie użytkownik zdecydował się na JavaScript, jednak napotkał problemy z wyświetlaniem menu w przeglądarce Internet Explorer. Dyskutowano również o poprawnym używaniu znaczników HTML oraz stylów CSS, aby zapewnić prawidłowe wyświetlanie w różnych przeglądarkach.
Podsumowanie AI na podstawie dyskusji. Może zawierać błędy.
REKLAMA