Столкнулся с проблемой вывода верхнего меню сайта на стандартном шаблоне получается что ссылки меню ложатся 3 сверху и 3 под ними и сливаются как будто это одно слово.
| меню1 | меню2 | меню3
| меню4 | меню5 | меню6
И получается чсто читается как ссылка меню1меню4, меню2 меню5 и тд
Как сдлать пробел между строками.
Для решения данной проблемы необходимо в XSL-шаблоне для тегов <td>, в которых производится отображение меню прописать стиль отображения, например style="padding-top: 4px;". В общем виде часть XSL-шаблона вывода верхнего меню будет выглядеть следующим образом:
<!-- Показывать ссылку, или нет -->
<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>
<!-- Если не показывать ссылку - выводим просто имя ссылки -->
<xsl:if test="show_link=0">
<xsl:value-of disable-output-escaping="yes" select="name"/>
</xsl:if>
<!-- На строку - не более 3-х пунктов, если уже 3 выведено - начинаем новую строку -->
<xsl:if test="position() mod 3 = 0">
<xsl:text disable-output-escaping="yes">
</tr>
<tr>
</xsl:text>
</xsl:if>
</td>
Также можно в CSS-стилях к макету, в котором отображаются страницы с верхним меню создать стиль для ячеек таблицы с отступами и применить данный стиль к ячейкам таблицы, в которой отображается верхнее меню.