-3

object要素を介して XML を埋め込んだ HTML5 ファイルがいくつかあります。さて、HTML ファイルについては、別のスタイルシートがあります。私がやりたいことは、HTML と同時に埋め込み XML のスタイルを変更することです (XML ファイルには独自のスタイルシートがあるため)。そのため、ブラウザーを使用して HTML ページのスタイルを選択するときに、XML のスタイルも変更する必要があります。これを行う方法はありますか?

HTML:

<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
    <title>LondonDiamond Restaurant Menu</title>
    <meta charset="UTF-8" />
    <link rel="stylesheet" type="text/css" href="../css/style.css" media="screen" title="Standard red black white"/>
    <link rel="stylesheet" type="text/css" href="../css/style_print.css" media="print" title="Print"/>
    <link rel="alternate stylesheet" type="text/css" href="../css/alt_style.css" media="screen" title="Monochrome"/>
</head>
<body>
    <object data="../xml/menu.xml"><span></span></object>
</body>
</html>

XML:

<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/css" href="../css/style4xml.css"?>
<!DOCTYPE menu SYSTEM "../dtd/menu.dtd">

<menu>
     irrelevant
</menu>

HTML の代替スタイルシートを選択すると、色が変わりますが、埋め込まれた XML は同じ色を保持します (それは正常です)。

4

1 に答える 1

0

私が行ったことは、HTML ファイルと XML ファイルの両方に同じデフォルトおよび代替スタイルシートを適用することでした。CSS ファイルには、HTML 要素と XML 要素のスタイルがあります。

HTML:

<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
    <title>LondonDiamond Restaurant Menu</title>
    <meta charset="UTF-8" />
    <link rel="stylesheet" type="text/css" href="../css/style.css" media="screen" title="Red Black White"/>
    <link rel="stylesheet" type="text/css" href="../css/style_print.css" media="print"/>
    <link rel="alternate stylesheet" type="text/css" href="../css/altstyle.css" media="screen" title="Monochrome"/>
</head>
.......
</html>

XML:

 <?xml version="1.0" encoding="UTF-8"?>
 <?xml-stylesheet type="text/css" href="../css/style.css" title="Red Black White"?>
 <?xml-stylesheet type="text/css" href="../css/altstyle.css" alternate="yes" title="Monochrome"?>
 <!DOCTYPE menu SYSTEM "../dtd/menu.dtd">

 <menu>
      .....
 </menu>

CSS:

body {...}
header {...}
...
menu {...}
于 2013-02-02T14:39:39.540 に答える