Autor Zpráva
Qewa
Profil
Ahoj, mám menu, kde se při najetí myši změní barva položky "tlačítko" a chtěla bych, aby aktuální zobrazená položka, byla barevně odlišená i po kliknutí myši.
PHP menu:
<div id="menu">
     <ul>
      <?php
          echo "<li";
            if ($str=="uvod") {
                echo "class='aktivni'";
               }echo "><a href='?menu=uvod'>Úvod</a></li>";
            echo "<li";
              if ($str=="o_nas") {
                  echo " class='aktivni'";
                  }echo "><a href='?menu=o_nas'>O nás</a></li>"; 
            echo "<li";
              if ($str=="clenove") {
                  echo " class='aktivni'";
                  }echo "><a href='?menu=clenove'>Členové</a></li>";
             echo "<li";
                if ($str=="clanky") {
                    echo " class='aktivni'";
                    }echo "><a href='?menu=clanky'>Články</a></li>";
             echo "<li";
              if ($str=="foto") {
                  echo " class='aktivni'";
                  }echo "><a href='?menu=foto'>Fotogalerie</a></li>";
             echo "<li";
              if ($str=="videa") {
                  echo " class='aktivni'";
                  }echo "><a href='?menu=videa'>Videa</a></li>";
             echo "<li";
              if ($str=="kalendar") {
                  echo " class='aktivni'";
                  }echo "><a href='?menu=kalendar'>Kalendář</a></li>";
             echo "<li";
              if ($str=="odkazy") {
                  echo " class='aktivni'";
                  }echo "><a href='?menu=odkazy'>Odkazy</a></li>";
             echo "<li";
              if ($str=="kontakty") {
                  echo " class='aktivni'";
                  }echo "><a href='?menu=kontakty'>Kontakty</a></li>"; 
          ?>
         </ul>          
      </div> 


CSS: je shodné s #menu a:hover
.aktivni {
  background-image: url(images/menu_hover.jpg);
	background-position: -20px 0px;
	background-repeat: no-repeat;
        width: 180px;
	height: 22px;
	color: #001e46;
	text-decoration: none;
	border-style: none;   
}


Pokud je v tom jen nějaká banalita, tak se omlouvám, ale je to jeden z mých prvních pokusů o web.
Chamurappi
Profil
Reaguji na Qewu:
A je v něčem problém? Nebo chceš jen okouknout kód?
U první položky ti chybí mezera mezi <li a class='aktivni'.
Qewa
Profil
Chamurappi:
Problém je v tom, že to nefunguje :) viz www.bockujem.cz
Chamurappi
Profil
Reaguji na Qewu:
Není to tím, že testuješ parametr str a vybranou položku menu máš v parametru menu?
panther
Profil
Qewa:
Problém je v tom, že to nefunguje :)
problém bude v tom, že jsi zkopíroval kód a nesladil jej se svým webem.

Používáš podmínku
if ($str=="uvod")
, namísto
$_GET['menu']
Taps
Profil
Qewa:
Zkus tento styl zápisu
<? $oznaceni[$_GET["menu"]]= 'class="aktivni"'; 
 
        
        echo'<ul>
    <li><a href="index.php?stranka=uvod" '.$oznaceni["uvod"].'>Uvod</a></li>
   <li><a href="index.php?stranka=test" '.$oznaceni["test"].'>Test</a></li></ul>'; 
       
        ?>
   
Qewa
Profil
Děkuju Vám, jsem fakt slepá a ani opisovat neumím... dík :)
Qewa
Profil
Ještě, že Vás otravuju. Kde může být zádrhel, že se nezmění i barva písma u aktivní založky?
panther
Profil
Qewa:
že se nezmění i barva písma u aktivní založky?
nemáš ji ve stylech
.aktivni a {color: red}
Qewa
Profil
panther:
Měla jsem:
.aktivni a{
  display: block;
	margin: 0px;
	padding: 0px 0px 0px 0px;
	height: 22px;
	color: #001e46;
	font-weight: bold;
	text-decoration: none;
	border-style: none;
}

to nepomohlo. Při určení jen barvy to taky nepomohlo.

EDIT: Řeším to zbarvením pozadí na jinou barvu, když se barva textu nechce nechat přesvědčit:
.aktivni {
  background:#001e46 url("hover_menu.png") repeat-y left top;
  
Martin R.
Profil *
Martin R.:

Pouzivam tohle a slape to .. rozdil oproti tobe je ten, ze nastavuji aktivni na <a> a ne na <li>

html kod:
<li <?php aktiv_menu("index.php") ?>><a href="index.php" title="Úvodní stránka">Úvodní stránka</a></li>
<li <?php aktiv_menu("aktuality.php") ?>><a href="aktuality.php" title="Aktuality">Aktuality</a></li>
<li <?php aktiv_menu("o-nas.php") ?>><a href="o-nas.php" title="O nás">O nás</a></li>

php funkce:
function aktiv_menu($page){
	$path_parts = pathinfo($_SERVER['SCRIPT_NAME']);
	if ($path_parts['basename'] == $page )	{
		echo "class=\"aktiv\"";
	}
}

css
.aktiv a {
    color: #DAFD7E;
    text-decoration: underline;
}

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: