Нажатая кнопка меню активной страницы

#
Нажатая кнопка меню активной страницы
подскажите, кто знает, как проще всего добиться эффекта "нажатой" кнопки в меню. То есть допустим у меня есть несколько состояний для кнопок меню, реализованных таким вот способом http://www.wellstyled.com/files/css-nopreload-rollovers/example.html. Мне нужно, чтобы когда мы заходим на одну из страничек состояние соответствующей кнопки меню менялось и ОСТАВАЛОСЬ таким до тех пор пока мы не перейдем на другую страницу и тогда уже "зажималась другая кнопочка.
На форуме найти решения не получилось, через css как сделать я не додумался.
Подскажите, как проще всего осуществить сие, чтобы даже новичок смог справиться (уверен, я тут не один такой)
Модератор
#
Re: Нажатая кнопка меню активной страницы
25mute,
Посмотрите XSL-шаблон от меню, в нем есть готовый код:
<!-- Определяем стиль вывода ссылки -->
               <xsl:variable name="link_style">
                  <xsl:choose>
                     <!-- Выделяем текущую страницу жирным (если это текущая страница, либо у нее есть ребенок с ID, равным текущей) -->
                     <xsl:when test="current_structure_id=@id or count(.//structure[@id=$current_structure_id])=1">font-weight: bold</xsl:when>
                     <!-- Иначе обычный вывод с пустым стилем -->
                     <xsl:otherwise></xsl:otherwise>
                  </xsl:choose>
               </xsl:variable>


Соответственно определяете текущий узел и как нужно выделяете его, например, меняете class для сущности.
#
Re: Нажатая кнопка меню активной страницы
так все уже предусмотрено! спасибо, попробую
Модератор
#
Re: Нажатая кнопка меню активной страницы
25mute,
Пожалуйста
#
Re: Нажатая кнопка меню активной страницы
А как все таки изменить стиль вывода текщей страницы? не нашел я ни где ответ.
Вот код меню, у меня стиль привязан не к ссылке а к ячейке в которой она находится, как изменить стиль вывода ячейки активного пункта меню?
<?xml version="1.0" encoding="windows-1251"?>
<!DOCTYPE xsl:stylesheet>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
   <xsl:output xmlns="http://www.w3.org/TR/xhtml1/strict" doctype-public="-//W3C//DTD XHTML 1.0 Strict//EN" encoding="Windows-1251" indent="yes" method="html" omit-xml-declaration="no" version="1.0" media-type="text/xml"/>
   
   <xsl:template match="/document">
      
      <tr>
         <td></td>
         <!-- Выбираем узлы структуры -->
         <xsl:apply-templates select="structure[show=1]"/>
      </tr>
   </xsl:template>
   
   <xsl:template match="structure">
      
      <!-- Запишем в константу ID структуры, данные для которой будут выводиться пользователю -->
      <xsl:variable name="current_structure_id" select="/document/structure/current_structure_id"/>
      <tr>
         
            
            
            
            <!-- Показывать ссылку, или нет -->
            <xsl:if test="show_link=1">
               
               <!-- Определяем адрес ссылки -->
               <xsl:variable name="link">
                  <xsl:choose>
                     <!-- Если внешняя ссылка -->
                     <xsl:when test="is_external_link=1">
                        <xsl:value-of disable-output-escaping="yes" select="external_link"/>
                     </xsl:when>
                     <!-- Иначе если внутренняя ссылка -->
                     <xsl:otherwise>
                        <xsl:value-of disable-output-escaping="yes" select="link"/>
                     </xsl:otherwise>
                  </xsl:choose>
               </xsl:variable>
               
               <!-- Определяем стиль вывода ссылки -->
               <xsl:variable name="link_style">
                  <xsl:choose>
                     <!-- Выделяем текущую страницу жирным (если это текущая страница, либо у нее есть ребенок с ID, равным текущей) -->
                     <xsl:when test="current_structure_id=@id or count(.//structure[@id=$current_structure_id])=1"><td class="leftmenu2"><a href="{$link}">
                  <xsl:value-of disable-output-escaping="yes" select="name"/>
               </a></td></xsl:when>
                     <!-- Иначе обычный вывод с пустым стилем -->
                     <xsl:otherwise></xsl:otherwise>
                  </xsl:choose>
               </xsl:variable>
               <td class="leftmenu1">
               <a href="{$link}">
                  <span style="{$link_style}">
                     <xsl:value-of disable-output-escaping="yes" select="name"/>
                  </span>
               </a></td>
            </xsl:if>
            
            <!-- Если не показывать ссылку - выводим просто имя ссылки -->
            <xsl:if test="show_link=0">
               <xsl:value-of disable-output-escaping="yes" select="name"/>
            </xsl:if>
      </tr>
   </xsl:template>
</xsl:stylesheet>
в таком виде не работает
В говно может вступить любой желающий. (с)
#
Re: Нажатая кнопка меню активной страницы
<?xml version="1.0" encoding="windows-1251"?>
<!DOCTYPE xsl:stylesheet>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
   <xsl:output xmlns="http://www.w3.org/TR/xhtml1/strict" doctype-public="-//W3C//DTD XHTML 1.0 Strict//EN" encoding="Windows-1251" indent="yes" method="html" omit-xml-declaration="no" version="1.0" media-type="text/xml"/>
  
   <xsl:template match="/document">
      
      <tr>
         <td></td>
         <!-- Выбираем узлы структуры -->
         <xsl:apply-templates select="structure[show=1]"/>
      </tr>
   </xsl:template>
  
   <xsl:template match="structure">
      
      <!-- Запишем в константу ID структуры, данные для которой будут выводиться пользователю -->
      <xsl:variable name="current_structure_id" select="/document/structure/current_structure_id"/>
      <tr>
        
            
            
            
            <!-- Показывать ссылку, или нет -->
            <xsl:if test="show_link=1">
              
               <!-- Определяем адрес ссылки -->
               <xsl:variable name="link">
                  <xsl:choose>
                     <!-- Если внешняя ссылка -->
                     <xsl:when test="is_external_link=1">
                        <xsl:value-of disable-output-escaping="yes" select="external_link"/>
                     </xsl:when>
                     <!-- Иначе если внутренняя ссылка -->
                     <xsl:otherwise>
                        <xsl:value-of disable-output-escaping="yes" select="link"/>
                     </xsl:otherwise>
                  </xsl:choose>
               </xsl:variable>
              
               <xsl:choose>
                     <!-- Текущий пункт -->
                     <xsl:when test="current_structure_id=@id or count(.//structure[@id=$current_structure_id])=1">

                     <td class="leftmenu2"><a href="{$link}">
                     <xsl:value-of disable-output-escaping="yes" select="name"/>
                     </a></td>

                     </xsl:when>

                     <!-- Обычный пункт -->
                     <xsl:otherwise>

                     <td class="leftmenu1"><a href="{$link}">
                     <xsl:value-of disable-output-escaping="yes" select="name"/>
                     </a></td>

                     </xsl:otherwise>

               </xsl:choose>

            </xsl:if>
            
      </tr>
   </xsl:template>
</xsl:stylesheet>
#
Re: Нажатая кнопка меню активной страницы
спасибо. заработало
В говно может вступить любой желающий. (с)
#
Re: Нажатая кнопка меню активной страницы
а как подправить этот код чтто бы выводились разные классы в <li>?
<?xml version="1.0" encoding="windows-1251"?>
<!DOCTYPE xsl:stylesheet>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
   <xsl:output xmlns="http://www.w3.org/TR/xhtml1/strict" doctype-public="-//W3C//DTD XHTML 1.0 Strict//EN" encoding="Windows-1251" indent="yes" method="html" omit-xml-declaration="no" version="1.0" media-type="text/xml"/>
   
   <xsl:template match="/document">
      <ul>
         <!-- Выбираем узлы структуры -->
         <xsl:apply-templates select="structure[show=1]"/>
      </ul>
   </xsl:template>
   
   <xsl:template match="structure">
      <ul>
         <!-- Запишем в константу ID структуры, данные для которой будут выводиться пользователю -->
         <xsl:variable name="current_structure_id" select="/document/structure/current_structure_id"/>
         
         <!-- Показывать ссылку, или нет -->
         <xsl:if test="show_link = 1">
            
            <!-- Определяем адрес ссылки -->
            <xsl:variable name="link">
               <xsl:choose>
                  <!-- Если внешняя ссылка -->
                  <xsl:when test="is_external_link=1">
                     <xsl:value-of disable-output-escaping="yes" select="external_link"/>
                  </xsl:when>
                  <!-- Иначе если внутренняя ссылка -->
                  <xsl:otherwise>
                     <xsl:value-of disable-output-escaping="yes" select="link"/>
                  </xsl:otherwise>
               </xsl:choose>
            </xsl:variable>
            
            <!-- Определяем стиль вывода ссылки -->
            <xsl:variable name="link_style">
               <xsl:choose>
                  <!-- Выделяем текущую страницу жирным (если это текущая страница, либо у нее есть ребенок с ID, равным текущей) -->
                  <xsl:when test="current_structure_id=@id or count(.//structure[@id=$current_structure_id])=1">font-weight: bold</xsl:when>
                  <!-- Иначе обычный вывод с пустым стилем -->
                  <xsl:otherwise></xsl:otherwise>
               </xsl:choose>
            </xsl:variable>
            
            <a href="{$link}">
               <span style="{$link_style}">
                  <xsl:value-of disable-output-escaping="yes" select="name"/>
               </span>
            </a>
         </xsl:if>
         
         <!-- Если не показывать ссылку - выводим просто имя ссылки -->
         <xsl:if test="show_link=0">
            <!-- <img border="0" src="/images/menu_point.gif" class="menu_point" width="4" height="7" /> -->
            <xsl:value-of disable-output-escaping="yes" select="name"/>
         </xsl:if>
         
         
         <!-- ЕСЛИ ДОШЛИ ДО СЕРЕДИНЫ СПИСКА -->
         
         <!-- Если не надо разравать колонку на вторых уровнях, то указать: -->
         <!-- <xsl:if test="position() = round(count(/document/structure) div 2)"> -->
            <!--
            <xsl:if test="level = 0 and position() = round(count(/document//structure) div 2)">
               <xsl:text disable-output-escaping="yes">
                  &lt;/td&gt;
                  &lt;td valign="top" style="padding-left: 20px"&gt;
               </xsl:text>
            </xsl:if>
            -->
            
            <!-- Выбираем подузлы структуры -->
            <xsl:if test="count(structure[show=1]) &gt; 0">
            <li class="level2">   
                                     <!-- Выбираем узлы структуры -->
               <xsl:apply-templates select="structure[show=1]"/>
</li>
            </xsl:if>
         </ul>
      </xsl:template>
   </xsl:stylesheet>
в смысле что бы в подузле был класс отличный от основного узла?
В говно может вступить любой желающий. (с)
#
Если не затруднит в моем случае подскажите а то уже уморил мозг свой.... просто руки опустились ) не выходит активная кнопка ....
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE xsl:stylesheet>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
   <xsl:output xmlns="http://www.w3.org/TR/xhtml1/strict" doctype-public="-//W3C//DTD XHTML 1.0 Strict//EN"
      encoding="utf-8" indent="no" method="html" omit-xml-declaration="no" version="1.0" media-type="text/xml" />
   
   <xsl:template match="/document">
      
      
      <xsl:apply-templates select="structure[show=1]"/>
      
      
   </xsl:template>
   
   <xsl:template match="structure">
      
      <xsl:param name="posit" select="1" />
      
      
      <xsl:variable name="current_structure_id" select="/document/structure/current_structure_id"/>
      <xsl:if test="show_link = 1">
         <!-- Определяем адрес ссылки -->
         <xsl:variable name="link"><xsl:choose>
               <!-- Если внешняя ссылка -->
               <xsl:when test="is_external_link=1"><xsl:value-of disable-output-escaping="yes" select="external_link"/></xsl:when>
               <!-- Иначе если внутренняя ссылка -->
               <xsl:otherwise><xsl:value-of disable-output-escaping="yes" select="link"/></xsl:otherwise>
         </xsl:choose></xsl:variable>
         
         <!-- Определяем стиль вывода ссылки -->
         <xsl:variable name="link_style"><xsl:choose>
               <!-- Выделяем текущую страницу жирным (если это текущая страница, либо у нее есть ребенок с ID, равным текущей) -->
               <xsl:when test="current_structure_id=@id or count(.//structure[@id=$current_structure_id])=1">font-style: italic</xsl:when>
               <!-- Иначе обычный вывод с пустым стилем -->
               <xsl:otherwise></xsl:otherwise>
         </xsl:choose></xsl:variable>
         
         <xsl:choose>
            <xsl:when test="level=0">
               <xsl:choose>
                  <xsl:when test="count(structure[show=1]) > 0">
                     
                     
                     <td background="/images/m_f.gif" valign="middle" width="155" height="32" style="background-repeat: no-repeat;" OnMouseOver="JavaScript:SlideLayer('id_{@id}';"  OnMouseOut="JavaScript:SlideLayerHide('id_{@id}';">
                        
                        
                        <div align="center">
                        <span class="stm"><a href="{$link}" class="menu_center"><xsl:value-of select="name"/></a></span>
                        </div>
                        
                        
                        <div style="display: none; z-index:10; background-color: #ffffff;  padding: 10px 15px 10px 15px; margin-top:0px; margin-left: 0px; margin-right: 0px;" id="id_{@id}">
                           
                           <table valign="middle" width="160" height="32"  border="0" cellpadding="0" cellspacing="0">
                              
                              <xsl:variable name="posit_var" select="position()"/>
                              
                              <xsl:apply-templates select="structure[show=1]">
                                 
                                 <xsl:with-param name="posit" select="$posit_var"/>
                                 
                              </xsl:apply-templates>
                              
                           </table>
                        </div>
                     </td>
                     
                     
                  </xsl:when>
                  <xsl:otherwise>
                     <td background="/images/m_f.gif" width="155" height="32" valign="middle" align="center" style="background-repeat: no-repeat;">
                        
                     <span class="stm"><a href="{$link}" class="menu_center"><xsl:value-of select="name"/></a></span>
                        
                     </td>
                  </xsl:otherwise>
               </xsl:choose>
               
               
            </xsl:when>
            <xsl:otherwise>
               
               
               <tr>
                  
               <td><span class="stmv"><a href="{$link}" class="menu_link_no_bold"><xsl:value-of select="name"/></a></span>
                  </td>
                  
               </tr>
               
            </xsl:otherwise>
         </xsl:choose>
         
      </xsl:if>
   </xsl:template>
</xsl:stylesheet>
#
Re: Нажатая кнопка меню активной страницы
хотел что бы оставалась как в class=«stmv»
Авторизация