Visualizzazione dei risultati da 1 a 2 su 2
  1. #1
    Utente di HTML.it L'avatar di Rickycast
    Registrato dal
    Apr 2007
    residenza
    CHIERI (TO)
    Messaggi
    263

    Barra di navigazione con elementi "mobili"

    Costruendo il mio sito ho sperimentato una barra di navigazione nella quale ogni elemento che viene "Linkato" si sposta all'estremo lato sinistro, mentre gli altri, compreso quello che prima era linkato, si spostano a destra. Questa scelta mi da modo di identificare sempre molto bene la posizione nel sito, specialmente quando ci sono due barre di navigazione: una principale ed una secondaria. Purtroppo sono stato violentemente criticato da un sostenitore dell'ergonomia a tutti i costi che mi dice che le voci del menu non devono MAI spostarsi. La seconda critica è anche la mia domanda: per poter spostare a sinistra l'elemento linkato, la sola soluzione che ho trovato è stata di spostarlo fisicamente al primo posto dell'elenco, mentre non sono riuscito a posizionarlo utilizzando i CSS, anche perchè ad ogni diversa voce dell'elenco gli spostamenti cambiano. È anche vero che per ogni pagina bisogna comunque intervenire nel codice per indicare che quella è la pagina linkata e quindi non è una grossa fatica fare anche lo spostamento, però mi domando se esiste un modo più elegante per farlo.
    Ecco quindi il codice (essenziale) di due diverse pagine, ed il relativo CSS:

    Pagina Home:
    <div id="navcnt">
    <div class="navspace"></div>
    <div class="navigation">
    <ul>
    <li class="activelink">Home
    [*]Frutta
    <li class="vuoto">Verdura
    <li class="vuoto">Formaggi
    <li class="vuoto">Carni
    [*]Bevande
    [/list]
    </div>
    </div>

    Pagina "Frutta":
    <div id="navcnt">
    <div class="navspace"></div>
    <div class="navigation">
    <ul>
    <li class="activelinkB">Frutta
    [*]Home
    <li class="vuoto">Verdura
    <li class="vuoto">Formaggi
    <li class="vuoto">Carni
    [*]Bevande [/list]
    </div>
    <div class="navigation" style="margin-top: -1px">
    <ul>
    <li class="activelinkC">Pere[*]Mele[*]Ciliegie[*]Banane[*]Albicocche
    [/list]
    </div>
    </div>

    Il background-color di tutte le pagine è #333333

    Questo è il CSS:
    div#navcnt{width:746px; margin: auto !important; margin: -585px 0 0 0}

    div.navspace {width:168px; height:22px; float:left; display: inline}

    div.navigation {width:548px;height: 22px; background-color:#333333;float:right;display:inline; margin: 0;
    border-color:#EAEAEA; border-style:solid; border-width: 1px 0 1px 0}

    div.navigation ul{list-style-type: none; margin: 0; padding: 0; border:0}

    div.navigation li{margin: 0; padding:0; display:inline; border:0}

    div.navigation a, div.navigation li.vuoto{text-decoration: none; padding:6px 15px 4px 15px;
    background-color:transparent;
    color:#FFFFFF;
    text-align: center;
    font-weight: normal;
    font-style: normal;
    font-variant: normal;
    font-size:12px;
    line-height: 22px;
    font-family: Verdana, Arial, Helvetica, sans-serif;
    text-decoration: none; border:0}

    div.navigation li.vuoto{padding:0px 15px 4px 15px}

    div.navigation a:visited{color:#CCFF99; border:0}

    div.navigation a:hover{color:#CCCCCC; margin:0;line-height: 22px; border:0}

    div.navigation li.activelink a, div.navigation li.activelink a:hover{color:#FFFF99; border:0; float:left; padding: 0 ; margin: 0 40px 0 10px; font-weight:bold }

    div.navigation li.activelinkB a, div.navigation li.activelinkB a:hover{color:#FFFF99; border:0; float:left; padding:3px 0 0 0; margin: 0 40px 0 10px; font-weight:bold}

    div.navigation li.activelinkC a, div.navigation li.activelinkC a:hover{color:#FFFF99; border:0; float:left; padding: 0 15px 0 10px; margin: -1px 10px 0 0; border-top: solid 1px #333333; line-height: 15px; font-weight:bold}

    Provando a costruire le altre pagine della barra secondaria (come la pagina "Pere" dell'elenco, per intenderci: "Mele", "Ciliegie", ecc.), la cosa è ancora più chiara.
    Aggiungo che ho provato solo su Firefox e su I.E.7; sono certo che su I.E. 6 o meno non funzioni, ma a questo si può ovviare.
    Specifico meglio la mia domanda: agendo nel CSS sulle diverse regole "activelink" è possibile posizionare all'estrema sinistra della barra l'elemento "activelink" e far scorrere tutti gli altri verso destra con il loro normali padding senza spostare fisicamente l'elemento nel Codice?
    Non ho ancora pubblicato queste pagine e non so come fare a linkarle; se me lo suggerite lo faccio così chi vuole le può vedere.
    Sempre su questo argomento avrei altre ipotesi da fare e se quello che ho esposto è abbastanza chiaro ecco allora il resto delle domanda:
    Se è possibile far scorrere a sinistra l'elemento "linkato" della barra, è anche possibile farlo andare in una posizione fissa che non sia l'etrema sinistra o l'estrema destra? (ad esempio, nel caso di una barra secondaria, esattamente al di sotto del terzo elemento della barra principale?). Questo mi permetterebbe di soddisfare almeno in parte le richieste del patito di ergonomia perchè potrei lasciare "immobile" la barra principale e fare "scorrevole" solo quella secondaria.
    Sono ovviamente a disposizione per altre spiegazioni su quello che ho scritto..
    Saluti e grazie in anticipo.

  2. #2
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    21,188
    I CSS possono gestire il posizionamento degli oggetti.
    Devi pero` dare un posizionamento (absolute o relative), il che` ti obbliga a dare delle dimensioni definite a tutti gli elementi.

    Comunque il lavoro lato server per "cambiare ordine" o per "cambiare posizione" (cambiando il CSS) e` piu` o meno lo stesso.

    Tieni presente che posizionare gli elementi ti puo` portare ad una pagina non-accessibile (e anche non-usabile), dato che se l'utente ingrandisce il carattere rischi di avere delle sovrapposizioni.

    Comunque anch'io sono contrario alla modifica dell'ordine dei link: a mio parere crea piu` confusione che vantaggi.
    Piuttosto cambia il colore del "link" relativo alla pagina in cui sei, e rendilo non-cliccabile (non-link).

    Non so se ho risposto, e soprattutto se la risposta e` esauriente ... nel caso chiedi ancora.
    Nuova politica di maggiore severita` sui titoli delle discussioni: (ri)leggete il regolamento
    No domande tecniche in messaggi privati

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2026 vBulletin Solutions, Inc. All rights reserved.