#javascript #html #css #xml
#javascript #HTML #css #xml
Вопрос:
Я создаю список меню из XML-файла, XML-файл используется для создания как горизонтального, так и вертикального списка меню. Сам список стилизуется [по горизонтали / вертикали] в зависимости от того, где размещается содержимое.
Я смог успешно сделать это с помощью JavaScript и CSS. Я также предоставляю запасной вариант, если JavaScript отключен, путем встраивания XML-файла в тег объекта. К XML-файлу прилагается XSL-лист, чтобы позаботиться о форматировании.
Проблема, с которой я столкнулся, заключается в том, что я не могу стилизовать список так, как я могу с помощью JavaScript. Я не уверен, правильно ли я это реализую, но если есть способы обойти это, пожалуйста, дайте мне знать.
CSS
#horMenu ul li{//rules to display it horizontally}
#verMenu ul li{//rules to display it vertically}
HTML
<div id=horMenu>
//build a ul list using js,append it and the menu is diplayed horizontally
<noscript>
<div>
<object data="menu/menu.xml" type="all"></object>
</div>
</noscript>
</div>
<div id=verMenu>
//build a ul list using js,append it and the menu is diplayed vertically
<noscript>
<div>
<object data="menu/menu.xml" type="all"></object>
</div>
</noscript>
</div>
XML
<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="menu.xsl"?>
<menuList>
<menu loc="menu1.htm">menu 1</menu>
<menu loc="menu2.htm">menu 2</menu>
<menu loc="menu3.htm">menu 3</menu>
<menu loc="menu4.htm">menu 4</menu>
<menu loc="menu5.htm">menu 5</menu>
</menuList>
XSL
<?xml version="1.0" ?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/">
<html>
<head>
<link href="../css/Style.css" rel="stylesheet" type="text/css" />
</head>
<body>
<ul>
<xsl:for-each select="menuList/menu">
<li>
<a>
<xsl:attribute name="href">
<xsl:value-of select="@loc"/>
</xsl:attribute>
<xsl:value-of select="."/>
</a>
</li>
</xsl:for-each>
</ul>
</body>
</html>
</xsl:template>
</xsl:stylesheet>
Я могу добавить список UL, который я создал с помощью JavaScript, к разделам horMenu и verMenu. И на основе правил CSS, которые я получил для ULS в horMenu и verMenu, список UL отображается по горизонтали и вертикали соответственно.
Когда я встраиваю XML-файл с помощью тега oject, он не может применить тот же CSS к ULS в XSLT.
Комментарии:
1. Пожалуйста, укажите в своем вопросе желаемый результат и что не так с выводом, который вы получаете в данный момент.
2. @DimitreNovatchev Я могу добавить список UL, который я создал с помощью javscript, к разделам horMenu и verMenu. И на основе правил CSS, которые я получил для ULS в horMenu и verMenu, список UL отображается по горизонтали и вертикали соответственно. Когда я встраиваю XML-файл с помощью тега oject, он не может применить тот же CSS к UL, которые создаются с использованием XSLT. Надеюсь, я понимаю.
3. Нет, это не ясно. Ваша проблема в том, что вы не можете применить преобразование XSLT (в результате преобразования не получается никаких результатов)? Или что-то еще?
4. @DimitreNovatchev Я понимаю, что в результате преобразования не возникает никаких повторных запросов. У меня возник вопрос: как я могу применить правила CSS, которые я применил для UL в HTML, к UL, который я получил в файле XSL. Возможно ли это? UL получает свой стиль, основанный на том, какой DIV он размещен, он отображается горизонтально, если он находится в DIV horMenu, и вертикально, если он находится в DIV verMenu.
5. @_manraj82: Разумно, что
xml-stylesheet
PI теряет свое значение, когда упоминается только XML-документ. Вместо этого вам нужно вручную написать некоторый код Javascript для вызова преобразования, а затем поместить его результат куда-нибудь. Что касается CSS-части вашего вопроса, я почти ничего не знаю о CSS. Если ваш вопрос имеет мало или вообще ничего общего с XSLT, пожалуйста, отредактируйте теги и удалите тег xslt.