Re: XSL шаблон меню

#
Re: XSL шаблон меню
второй день мучаюсь не могу исправить, как в меню отменить выделение жирным при переходе в данный раздел. а именно как поправить данный код
Модератор
#
Re: Re: XSL шаблон меню
Alexa Listova,

используйте следующий фрагмент кода:
<!-- Если внутренняя ссылка -->
          <xsl:if test="is_external_link=0">
            <a href="{link}"><xsl:value-of disable-output-escaping="yes" select="name"/></a>
          </xsl:if>
#
Re: Re: XSL шаблон меню
извините но не могу , не могли бы Вы привести код на основе стандартного верхнего меню

<?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 method="html" indent="yes" encoding="Windows-1251"/>

<xsl:template match="/document">

<table border="0" width="100%" height="200" cellspacing="0" cellpadding="0" style="margin-left:4px; margin-right:4px;">
        <tr>
                <td width="100%" class="menu_line"></td>
        </tr>

        <!-- Выбираем все, у которых level = 0 и show = 1 -->
        <xsl:apply-templates select="structure[level=0 and show=1]"/>
</table>
</xsl:template>

<xsl:template match="structure">

  <tr>
    <td width="100%"><img border="0" src="/images/menu_point.gif" class="menu_point" width="4" height="7" />

        <!-- Показывать ссылку, или нет -->
        <xsl:if test="show_link=1">

          <!-- Если внешняя ссылка - ставим внешнюю -->
          <xsl:if test="is_external_link=1">
            <a href="{external_link}"><xsl:value-of disable-output-escaping="yes" select="name"/></a>
          </xsl:if>

        <!-- Если внутренняя ссылка -->
        <xsl:if test="is_external_link=0">
                <a href="{link}">

                <!-- Выделяем текущю страницу жирным -->
                <xsl:if test="current_structure_id=@id">
                        <b><xsl:value-of disable-output-escaping="yes" select="name"/></b>
                </xsl:if>

                    <xsl:if test="current_structure_id!=@id">
                            <xsl:value-of disable-output-escaping="yes" select="name"/>
                    </xsl:if>
            </a>
          </xsl:if>

       </xsl:if>

       <xsl:if test="show_link=0">
         <xsl:value-of disable-output-escaping="yes" select="name"/>
       </xsl:if>

</td>
</tr>
<tr>
        <td width="100%" class="menu_line"></td>
</tr>

</xsl:template>

</xsl:stylesheet>
Модератор
#
Re: Re: XSL шаблон меню
Alexa Listova, измененный шаблон:
<?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 method="html" indent="yes" encoding="Windows-1251"/>

<xsl:template match="/document">

<table border="0" width="100%" height="200" cellspacing="0" cellpadding="0" style="margin-left:4px; margin-right:4px;">
<tr>
<td width="100%" class="menu_line"></td>
</tr>

<!-- Выбираем все, у которых level = 0 и show = 1 -->
<xsl:apply-templates select="structure[level=0 and show=1]"/>
</table>
</xsl:template>

<xsl:template match="structure">

<tr>
<td width="100%"><img border="0" src="/images/menu_point.gif" class="menu_point" width="4" height="7" />

<!-- Показывать ссылку, или нет -->
<xsl:if test="show_link=1">

<!-- Если внешняя ссылка - ставим внешнюю -->
<xsl:if test="is_external_link=1">
<a href="{external_link}"><xsl:value-of disable-output-escaping="yes" select="name"/></a>
</xsl:if>

<!-- Если внутренняя ссылка -->
<xsl:if test="is_external_link=0">
<a href="{link}"><xsl:value-of disable-output-escaping="yes" select="name"/></a>
</xsl:if>

</xsl:if>

<xsl:if test="show_link=0">
<xsl:value-of disable-output-escaping="yes" select="name"/>
</xsl:if>

</td>
</tr>
<tr>
<td width="100%" class="menu_line"></td>
</tr>

</xsl:template>
</xsl:stylesheet>
#
Re: Re: XSL шаблон меню
Тоже вот мучаюсь с xsl.Думаю как же сделать так чтоб верхнее меню в виде кнопочек при наведении меняющих цвет с разделителем между кнопок плиз подскажите выход.
Модератор
#
Re: Re: XSL шаблон меню
Дмитрий Евгеньевич,
покажите Ваш HTML код а также сообщите на примере этого кода что не получется сделать.
#
Re: Re: XSL шаблон меню
Прошу прощения что не в теме.Проблема то в css это код
.top_menu
{
   padding-left: 9px;
   font-weight: bold;
   width: 119px;
   }

добавил к этому пункту еще один и ноль эмоций
.top_menu hover
{
   padding-left: 9px;
   font-weight: bold;
   width: 119px;
   }

Вот что надо сделать чтоб активное было чтоб фон менялся.
Модератор
#
Re: XSL шаблон меню
Дмитрий Евгеньевич,
а к чему применяется стиль "top_menu"?

см. такие же темы в сети:

<html> <head> <style type='text/< css >'> tr.cmenu:< hover > { color: #ffffff; background-color: #000080 } </style> <script> function r(el) { var str = el.innerHTML.replace(/&nbsp;/g, ''; alert(str); } </script> </head> <body> <table border='0' cellpadding='1' cellspacing='0' bgcolor='#000000'> <tr><< td >> <table border='0' cellpadding='1' cellspacing='1' bgcolor='#c0c0c0'> <tr><< td > <table border='0' cellpadding='2' cellspacing='0' style='font-family : Tahoma; font-size:
11px; color: #000000; background-color: #c0c0c0'> <tr><td><b>Quot licet Iovi - non licet bovi.<hr/></td></tr> <tr class='cmenu'><td onClick='r(this)'>&nbsp; &nbsp; &nbsp;Эни</td></tr> <tr class='cmenu'><td onClick='r(this)'>&nbsp; &nbsp; &nbsp;Бени</td></tr> <tr class='cmenu'><td onClick='r(this)'>&nbsp; &nbsp; &nbsp;Раба</td></tr> <tr><td><hr/></td></tr> <tr
class='cmenu'><td onClick='r(this)'>&nbsp; &nbsp; &nbsp;Квинтер</td></tr> <tr class='cmenu'><td onClick='r(this)'>&nbsp; &nbsp; &nbsp;Финтер</td></tr> <tr class='cmenu'><td onClick='r(this)'>&nbsp; &nbsp; &nbsp;Жаба</td></tr> </table> </td></tr> </table> </td></tr> </table> </body> </html>

То есть менюшка, очень похожая на ту, что вылезает по правой кнопки мышки (собственно, и будет вылезать).
В Mozilla ведет себя как и задумано, при наведении мышки на очередную строку таблички фон высвечивается другим цветом. IE не сие игнорирует. Почему? Чей-то не допру никак

Asigo Member Откуда: Россия, МО написано 03.12.2005 13:04 Инфо * Приват * Правка * Ответить * Известить модератора * IP Почему? Чей-то не допру никак Увы, IE не поддерживает событие hover для чего-либо ещё, кроме тега <a>. Есть два варианта:
1. Использовать тег <a> (однако это не слишком удобно, т.к. по сути закрашивается содержимое тега, а не самой ячейки). 2. Использовать javascript: код: function changeBG(tag, rest) { if (rest) { tag.style.backgroundColor = "#c0c0c0"; tag.style.color = "#000000"; } else { tag.style.backgroundColor = "#000080"; tag.style.color = "#ffffff"; } } ... <tr class='cmenu' onmouseover='javascript:changeBG(this, 0);' onmouseout='javascript:changeBG(this, 1);'>

и поиск:
http://www.yandex.ru/yandsearch?text=css+td+hover
Авторизация