Indice del forum Olimpo Informatico
I Forum di Zeus News
Leggi la newsletter gratuita - Attiva il Menu compatto
 
 FAQFAQ   CercaCerca   Lista utentiLista utenti   GruppiGruppi   RegistratiRegistrati 
 ProfiloProfilo   Messaggi privatiMessaggi privati   Log inLog in 

    Newsletter RSS Facebook Twitter Contatti Ricerca
* evidenziare voce menù selezionata
Nuovo argomento   Rispondi    Indice del forum -> Linguaggi per Internet
Precedente :: Successivo  
Autore Messaggio
atigra
Semidio
Semidio


Registrato: 21/09/05 11:14
Messaggi: 249

MessaggioInviato: 06 Giu 2006 13:43    Oggetto: Rispondi citando

Meraviglioso!!! Funziona alla perfezione! Grazzzzzzisssssime!

Posto il codice delle pagine interessate magari torna buono a qualcuno.

Il css:
Codice:

#menu {
   width: 100%;
   margin: 3px auto 3px auto;
   border: none; /*1px solid #2A73F8;*/
   }
   
   #menu ul {
         list-style: none;
         margin: 0px;
         padding: 0px;
         }

         #menu ul li {
        display: inline; /*trasformazione di un elemento blocco in un elemento in linea */
        margin: 0px;
        padding: 12px;
        }
   
      #menu a {
         color: #0292D9;
               font-weight: bold;
               text-decoration: none;
               }

            #menu a:visited {
               color: #056788;
         }

            #menu a:hover {
               color: #FFFFFF;
               background: #7EDAF8;
         }

#corpo {
   height: auto;
   width: 100%;
   position: relative; /*margin: 10px auto 3px auto;*/
   border: none; /*4px solid #06D388;*/
   }

   #corpo a {
              color: #0292D9;
              text-decoration: none;
             }

         #corpo a:visited {
                 color: #056788;
           }

         #corpo a:hover {
                        color: blue;
               text-decoration: none; /*underline;*/
         }

.attivo a {color: #f7f6f5; background: #ff0000;}


menu.php
Codice:

<?php
// definisce l'array di pagine
$pagine = array ('Home' => 'index.php','Utility' => 'utility.php','Fotogallery' => 'fotogallery.php','TPR' => 'tpr.php', 'Links' => 'link.php', 'Portfolio' => 'portfolio.php');

// inizia l'elenco
echo '<ul>';

// per ogni elemento dell'array di pagine
foreach ($pagine as $text => $link)
{
    // inizia la voce di elenco
   echo '<li';
   
   // se sono nella pagina linkata
   if (substr($_SERVER['SCRIPT_NAME'],strrpos($_SERVER['SCRIPT_NAME'],'/')+1) == $link)
   {
      // aggiunge la classe appropriata
       echo ' class="attivo"';
   }
   
   // inserisce link e testo
   echo '><a href="' . $link . '">' . $text . '</a></li>';
}

// chiude l'elenco
echo '</ul>';
?>


index.php (vale anche per le altre pagine che devono contenere il menù)
Codice:

      <div id="menu">
         <?php include ("menu.php"); ?>      
      </div>
Top
Profilo Invia messaggio privato
rebelia
Dio maturo
Dio maturo


Registrato: 17/07/03 09:22
Messaggi: 7987

MessaggioInviato: 06 Giu 2006 20:55    Oggetto: Rispondi citando

atigra ha scritto:
Meraviglioso!!! Funziona alla perfezione! Grazzzzzzisssssime!

Posto il codice delle pagine interessate magari torna buono a qualcuno....


ottima idea Very Happy
Top
Profilo Invia messaggio privato HomePage
atigra
Semidio
Semidio


Registrato: 21/09/05 11:14
Messaggi: 249

MessaggioInviato: 25 Lug 2006 12:21    Oggetto: Rispondi citando

Domanda da cento milioni Laughing Laughing Laughing come si modifica lo script php nel caso in cui il menù fosse un po' più complicato? tipo questo intendo...
Codice:

<ul>
<li><div id="chisiamo"><a href="chisiamo.php">Chi siamo</a></div></li>
<li><div id="contatti"><a href="contatti.php">Contatti</a></div></li>
<li><div id="fotogallery"><a href="fotogallery.php">Fotogallery</a></div></li>
<li><div id="cronaca"><a href="cronaca.php">Cronaca</a></div></li>
<li><div id="link"><a href="link.php">link</a></div></li>
<li><div id="regolamento"><a href="regolamento.php">Regolamento</a></div></li>
</ul>


Sono un po' imbranato col php... Rolling Eyes
Top
Profilo Invia messaggio privato
horus
Macchinista
Macchinista


Registrato: 22/03/05 10:48
Messaggi: 2554
Residenza: Sirio e dintorni

MessaggioInviato: 25 Lug 2006 14:46    Oggetto: Rispondi citando

Basta fare un paio di modifiche:

1) trasformiamo l'array di pagine in modo che l'elemento link sia a sua volta un array che contenga id e url
Codice:
'Chi siamo' => array('id' => 'chisiamo','url' => 'chisiamo.php')

e modifichiamo la parte che scrive il gli elementi per inserire il div contenitore
Codice:
echo '><div id="' . $link['id'] . '"><a href="' . $link['url'] . '">' . $text . '</a></div></li>';


Risultato finale:
Codice:
<?php

// definisce l'array di pagine
$pagine = array ('Chi siamo' => array('id' => 'chisiamo','url' => 'chisiamo.php'),
                 'Contatti' => array('id' => 'contatti','url' => 'contatti.php'),
                 'Fotogallery' => array('id' => 'fotogallery','url' => 'fotogallery.php'),
                 'Cronaca' => array('id' => 'cronaca','url' => 'cronaca.php'),
                 'Link' => array('id' => 'link','url' => 'link.php'),
                 'Regolamento' => array('id' => 'regolamento','url' => 'regolamento.php'));

// inizia l'elenco
echo '<ul>';

// per ogni elemento dell'array di pagine
foreach ($pagine as $text => $link)
{
    // inizia la voce di elenco
   echo '<li';

   // se sono nella pagina linkata
   if (substr($_SERVER['SCRIPT_NAME'],strrpos($_SERVER['SCRIPT_NAME'],'/')+1) == $link)
   {
      // aggiunge la classe appropriata
       echo ' class="attivo"';
   }

   // inserisce link e testo
   echo '><div id="' . $link['id'] . '"><a href="' . $link['url'] . '">' . $text . '</a></div></li>';
}

// chiude l'elenco
echo '</ul>';
?>


Ti mando in privato il numero di conto per il bonifico da cento milioni Wink
Top
Profilo Invia messaggio privato
atigra
Semidio
Semidio


Registrato: 21/09/05 11:14
Messaggi: 249

MessaggioInviato: 25 Lug 2006 16:30    Oggetto: Rispondi citando

Sapessi che non va... ti metto l'unico link così ci guardi direttamente (se puoi) che non abbia fatto qualche castroneria. Rolling Eyes
Top
Profilo Invia messaggio privato
horus
Macchinista
Macchinista


Registrato: 22/03/05 10:48
Messaggi: 2554
Residenza: Sirio e dintorni

MessaggioInviato: 26 Lug 2006 08:39    Oggetto: Rispondi citando

Ehm... cosa non va? Il codice preso dalla tua pagina:
Codice:
<ul>
<li><div id="chisiamo"><a href="chisiamo.php">Chi siamo</a></div></li>
<li><div id="contatti"><a href="contatti.php">Contatti</a></div></li>
<li><div id="fotogallery"><a href="fotogallery.php">Fotogallery</a></div></li>
<li><div id="cronaca"><a href="cronaca.php">Cronaca</a></div></li>
<li><div id="link"><a href="link.php">Link</a></div></li>
<li><div id="regolamento"><a href="regolamento.php">Regolamento</a></div></li>
</ul>


Mi sembra simile a quello che avevi postato qualche messaggio fa.
Top
Profilo Invia messaggio privato
atigra
Semidio
Semidio


Registrato: 21/09/05 11:14
Messaggi: 249

MessaggioInviato: 28 Lug 2006 09:35    Oggetto: Rispondi citando

Allora forse sbaglio io qualche cosa.
Ti metto un po' di codice.
Il menù (menu.php) è così:
Codice:

<?php

// definisce l'array di pagine
$pagine = array ('Chi siamo' => array('id' => 'chisiamo','url' => 'chisiamo.php'),
                 'Contatti' => array('id' => 'contatti','url' => 'contatti.php'),
                 'Fotogallery' => array('id' => 'fotogallery','url' => 'fotogallery.php'),
                 'Cronaca' => array('id' => 'cronaca','url' => 'cronaca.php'),
                 'Link' => array('id' => 'link','url' => 'link.php'),
                 'Regolamento' => array('id' => 'regolamento','url' => 'regolamento.php'));

// inizia l'elenco
echo '<ul>';

// per ogni elemento dell'array di pagine
foreach ($pagine as $text => $link)
{
    // inizia la voce di elenco
   echo '<li';

   // se sono nella pagina linkata
   if (substr($_SERVER['SCRIPT_NAME'],strrpos($_SERVER['SCRIPT_NAME'],'/')+1) == $link)
   {
      // aggiunge la classe appropriata
       echo ' class="attivo"';
   }

   // inserisce link e testo
   echo '><div id="' . $link['id'] . '"><a href="' . $link['url'] . '">' . $text . '</a></div></li>';
}

// chiude l'elenco
echo '</ul>';
?>

Questa, per esempio, la pagina chisiamo.php
Codice:

...
   <div id="menu">
      <?php include ("common/menu.php"); ?>
   </div>
...

Questo il pezzettino di css interessato:
Codice:

.attivo a {
   background-image: url(immagini/bn6.jpg);
   background-repeat: repeat-x;
   background-position: bottom;
   width: 126px;
   height: 30px;
   color: #ffffff;
   font-weight: bold;
   }
#menu {text-align: center; margin: 0px 0px 0px; 0px; font-weight: bold; background: #6a4dfa;}
#menu ul{height: 35px; width: 760px; margin: 0px auto 0px auto; list-style: none; padding: 0px;}
#menu li {float: left; margin: auto 0px auto 0px;}
#menu a {display: block; float: left; width: 100px; border: none; padding-top: 5px;}

#chisiamo a {width: 126px; height: 30px; color: #000000; text-decoration: none;}
#chisiamo a:hover {background-image: url(immagini/bn6.jpg); background-repeat: repeat-x; background-position: bottom; width: 126px; height: 30px; color: #ffffff; font-weight: bold;}

#contatti a {width: 126px; height: 30px; color: #000000; text-decoration: none;}
#contatti a:hover {background-image: url(immagini/bn6.jpg); background-repeat: repeat-x; background-position: bottom; width: 126px; height: 30px; color: #ffffff; font-weight: bold;}

#fotogallery a {width: 126px; height: 30px; color: #000000; text-decoration: none;}
#fotogallery a:hover {background-image: url(immagini/bn6.jpg); background-repeat: repeat-x; background-position: bottom; width: 126px; height: 30px; color: #ffffff; font-weight: bold;}

#cronaca a {width: 126px; height: 30px; color: #000000; text-decoration: none;}
#cronaca a:hover {background-image: url(immagini/bn6.jpg); background-repeat: repeat-x; background-position: bottom; width: 126px; height: 30px; color: #ffffff; font-weight: bold;}

#link a {width: 126px; height: 30px; color: #000000; text-decoration: none;}
#link a:hover {background-image: url(immagini/bn6.jpg); background-repeat: repeat-x; background-position: bottom; width: 126px; height: 30px; color: #ffffff; font-weight: bold;}

#regolamento a {width: 126px; height: 30px; color: #000000; text-decoration: none;}
#regolamento a:hover {background-image: url(immagini/bn6.jpg); background-repeat: repeat-x; background-position: bottom; width: 126px; height: 30px; color: #ffffff; font-weight: bold;}

Forse ho esagerato nel css... ma non mi pare ci siano errori.
Top
Profilo Invia messaggio privato
horus
Macchinista
Macchinista


Registrato: 22/03/05 10:48
Messaggi: 2554
Residenza: Sirio e dintorni

MessaggioInviato: 28 Lug 2006 10:39    Oggetto: Rispondi citando

Sul sito stai cercando il file menu.txt mentre nel codice che hai postato hai scritto menu.php. Direi di sanare questa incongruenza e poi possiamo guardare gli script.
Top
Profilo Invia messaggio privato
atigra
Semidio
Semidio


Registrato: 21/09/05 11:14
Messaggi: 249

MessaggioInviato: 28 Lug 2006 11:59    Oggetto: Rispondi citando

Ecco sistemato l'errore .txt .php , prima avevo fatto qualche prova per vedere se il problema era il .txt. Tempo fa mi avevi detto che il menù doveva essere .php altrimenti non funzionava. La cosa è inesatta, almeno per come l'ho fatto io va bene .txt che poi viene incluso in una pagina .php (ho già sperimentato la cosa in altri siti).

Adesso resta il problema che la proprietà della pagina attiva non funziona... Crying or Very sad
Top
Profilo Invia messaggio privato
horus
Macchinista
Macchinista


Registrato: 22/03/05 10:48
Messaggi: 2554
Residenza: Sirio e dintorni

MessaggioInviato: 28 Lug 2006 12:02    Oggetto: Rispondi citando

Hai ragione scusa, mi sono dimenticato di modificare il controllo:
Codice:

if (substr($_SERVER['SCRIPT_NAME'],strrpos($_SERVER['SCRIPT_NAME'],'/')+1) == $link['url'])
Top
Profilo Invia messaggio privato
atigra
Semidio
Semidio


Registrato: 21/09/05 11:14
Messaggi: 249

MessaggioInviato: 28 Lug 2006 12:38    Oggetto: Rispondi citando

Ora funziona, solo che non capisco come mai mi fa il testo in colore nero, io nel css gli ho detto che deve essere bianco... any idea? Question
Top
Profilo Invia messaggio privato
horus
Macchinista
Macchinista


Registrato: 22/03/05 10:48
Messaggi: 2554
Residenza: Sirio e dintorni

MessaggioInviato: 28 Lug 2006 14:29    Oggetto: Rispondi citando

Ricordati che hai introdotto un div aggiuntivo nei tuoi elementi pertanto la riga
Codice:
.attivo a {

che faceva riferimento ai link figli di un elemento della classe attivo non ti serve più in quanto non ne esistono.
Ora i tuoi link sono figli di un div che a sua voglia è figlio di un elemento della classe attivo
Codice:
.attivo div a {


Ciò che non capisco però è perché hai inserito il div, a prima vista mi sembrano tutti formattati allo stesso modo, hai intenzione di diversificarli in un secondo momento?
Strutturalmente sarebbe stato comunque più corretto assegnare una classe all'elemento a per formattarlo piuttosto che introdurre un blocco esclusivamente ai fini grafici, al posto di
Codice:
<div id="chisiamo"><a href="chisiamo.php">Chi siamo</a></div>
io preferirei
Codice:
<a id="chisiamo" href="chisiamo.php">Chi siamo</a>

o, se sono tutti uguali
Codice:
<a href="chisiamo.php">Chi siamo</a>
come era prima e li formatti tutti con
Codice:
div#menu ul li a {width: 126px; height: 30px; color: #000000; text-decoration: none;}
div#menu ul li a:hover {background-image: url(immagini/bn6.jpg); background-repeat: repeat-x; background-position: bottom; width: 126px; height: 30px; color: #ffffff; font-weight: bold;}

Attenzione che l'ordine corretto per le pseudo-classi è:
1. link
2. visited
3. hover
4. active
puoi ometterne ma non invertirne altrimenti non vengono interpratate correttamente.
Top
Profilo Invia messaggio privato
atigra
Semidio
Semidio


Registrato: 21/09/05 11:14
Messaggi: 249

MessaggioInviato: 28 Lug 2006 16:59    Oggetto: Rispondi citando

Beh... la previsione era quella, o meglio, all'inizio pensavo di fare ogni link diverso, poi invece mi sono un po' uniformato, ma avevo lasciato appunto un div per ogni voce del menù.

Inoltre, ma potrei anche sbagliare viste le mie scarse conoscenze sull'argomento, non riuscirei ad avere uno sfondo allineato in basso come in questo link. Usando il tag "a" lo sfondo starebbe "sotto" alla voce del menù stesso.
Resta il fatto però, per come stanno adesso le cose, che lo sfondo sul link attivo è corretto ma il colore del testo no... Rolling Eyes Rolling Eyes Rolling Eyes
Top
Profilo Invia messaggio privato
rebelia
Dio maturo
Dio maturo


Registrato: 17/07/03 09:22
Messaggi: 7987

MessaggioInviato: 31 Lug 2006 12:27    Oggetto: Rispondi citando

il link attivo?

Codice:

.attivo a {color: #fff;}


e te lo fara' bianco; se lo vuoi di un altro colore, devi modificarne il valore esadecimale sostituendo #fff con... boh, quel che vuoi tu
Top
Profilo Invia messaggio privato HomePage
atigra
Semidio
Semidio


Registrato: 21/09/05 11:14
Messaggi: 249

MessaggioInviato: 31 Lug 2006 12:33    Oggetto: Rispondi citando

rebelia ha scritto:
il link attivo?

Codice:

.attivo a {color: #fff;}


e te lo fara' bianco; se lo vuoi di un altro colore, devi modificarne il valore esadecimale sostituendo #fff con... boh, quel che vuoi tu

No no no... se guardi qui nel css gli è già stato detto di farlo bianco (mi riferisco a .attivo), ma bianco non esce. Tra l'altro, qualsiasi colore tu gli metta (blu per esempio) resta sempre così come lo vedi adesso. Che si può fare? Rolling Eyes
Top
Profilo Invia messaggio privato
rebelia
Dio maturo
Dio maturo


Registrato: 17/07/03 09:22
Messaggi: 7987

MessaggioInviato: 31 Lug 2006 12:42    Oggetto: Rispondi citando

prova a spostare

Codice:

.attivo a {
   background-image: url(immagini/bn6.jpg);
   background-repeat: repeat-x;
   background-position: bottom;
   width: 126px;
   height: 30px;
   color: #ffffff;
   font-weight: bold;
   }


in calce al resto
Top
Profilo Invia messaggio privato HomePage
atigra
Semidio
Semidio


Registrato: 21/09/05 11:14
Messaggi: 249

MessaggioInviato: 31 Lug 2006 13:23    Oggetto: Rispondi citando

rebelia ha scritto:
prova a spostare

Codice:

.attivo a {
   background-image: url(immagini/bn6.jpg);
   background-repeat: repeat-x;
   background-position: bottom;
   width: 126px;
   height: 30px;
   color: #ffffff;
   font-weight: bold;
   }


in calce al resto

Ho provato a metterlo in fondo al css... ma non cambia niente.
Top
Profilo Invia messaggio privato
rebelia
Dio maturo
Dio maturo


Registrato: 17/07/03 09:22
Messaggi: 7987

MessaggioInviato: 31 Lug 2006 14:02    Oggetto: Rispondi citando

atigra ha scritto:
ondo al css... ma non cambia niente.


hai rimesso tutto come prima? in questo momento io lo vedo ancora a meta' css: http://www.augletorri.it/stile.css

Top
Profilo Invia messaggio privato HomePage
atigra
Semidio
Semidio


Registrato: 21/09/05 11:14
Messaggi: 249

MessaggioInviato: 31 Lug 2006 14:19    Oggetto: Rispondi citando

Avevo fatto quella prova, cioè di metterlo in fondo, e non era cambiato nulla, per quello lo avevo riportato dove era prima. Adesso comunque lo trovi in fondo...
Top
Profilo Invia messaggio privato
rebelia
Dio maturo
Dio maturo


Registrato: 17/07/03 09:22
Messaggi: 7987

MessaggioInviato: 31 Lug 2006 14:41    Oggetto: Rispondi

atigra ha scritto:
Avevo fatto quella prova, cioè di metterlo in fondo, e non era cambiato nulla, per quello lo avevo riportato dove era prima. Adesso comunque lo trovi in fondo...


trovato l'inghippo!

Codice:

#chisiamo a {width: 126px; height: 30px; color: #000000; text-decoration: none;}


questo comando ti sovrascrive l'altro (e' piu' vicino al tag a)

domanda: per quale motivo stai usando quel div all'interno del tag li? probabilmente me lo sono persa in qualche spiegazione precedente, ma me lo potresti riassumere pf? (scusa, sono un po' presa e non ho tantissimo tempo per andarmelo a leggere da sola)
Top
Profilo Invia messaggio privato HomePage
Mostra prima i messaggi di:   
Nuovo argomento   Rispondi    Indice del forum -> Linguaggi per Internet Tutti i fusi orari sono GMT + 2 ore
Vai a Precedente  1, 2, 3  Successivo
Pagina 2 di 3

 
Vai a:  
Non puoi inserire nuovi argomenti
Non puoi rispondere a nessun argomento
Non puoi modificare i tuoi messaggi
Non puoi cancellare i tuoi messaggi
Non puoi votare nei sondaggi