使声明的名称空间正常工作时遇到问题

2024-03-17

我试图获取用外部 css 编写的命名空间(实际上是两个单独的文件)。当我在浏览器上运行该文件时,它不会使用声明的名称空间。我认为该文件正在调用 css 文件,但它没有应用命名空间样式

HTML

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<?xml version="1.0" encoding="utf-8"?>


<html xmlns:act="http://www.superstarmovies.com/actors" 
  xmlns:mov="http://www.superstarmovies.com/movies"
  xmlns="http://www.w3.org/1999/xhtml" >

<head>
<meta http-equiv="Content-Type" content="application/xhtml+xml; charset=utf-8" />
<title>Superstar Movies: Stars of the Month</title>
<link rel="stylesheet" href="movies.css"  type="text/css" ?>
<link rel="stylesheet" href="actors.css" type="text/css" ?>
<link rel="stylesheet" href="superstar.css" type="text/css" />
</head>

<body>
<div id="heading"><img src="logo.gif" alt="Superstar Movies" /></div>

<div id="main">
<h1>Stars of the Month</h1>
<h3>Movies by Our Featured Stars!</h3>
<act:actors>

    <act:actor>
        <act:name>Halle Berry</act:name>
    <act:date>August 14, 1966</act:date>
    <act:birthplace>Cleveland, Ohio</act:birthplace>
          <mov:movie genre="action" star="Halle Berry">
        <mov:name>Catwoman</mov:name>
    <mov:date>(2004)</mov:date>
    <mov:length>104 minutes</mov:length>
    </mov:movie>

    <mov:movie genre="horror" star="Halle Berry">
        <mov:name>Gothika</mov:name>
    <mov:date>(2003)</mov:date>
    <mov:length>98 minutes</mov:length>
    </mov:movie>

    <mov:movie genre="drama" star="Halle Berry">
        <mov:name>Monster&apos;s Ball</mov:name>
    <mov:date>(2001)</mov:date>
    <mov:length>111 minutes</mov:length>
    </mov:movie>

    <mov:movie genre="fantasy" star="Halle Berry">
        <mov:name>X-Men</mov:name>
    <mov:date>(2000)</mov:date>
    <mov:length>104 minutes</mov:length>
    </mov:movie>

    <mov:movie genre="romance" star="Halle Berry">
        <mov:name>Jungle Fever</mov:name>
    <mov:date>(1991)</mov:date>
    <mov:length>132 minutes</mov:length>
    </mov:movie>
    </act:actor>

    <act:actor>
    <act:name>Tom Hanks</act:name>
    <act:date>July 9, 1956</act:date>
    <act:birthplace>Concord, California</act:birthplace>

<mov:movie genre="drama" star="Tom Hanks">
    <mov:name>Catch Me If You Can</mov:name>
<mov:date>(2002)</mov:date>
<mov:length>141 minutes</mov:length>
</mov:movie>

<mov:movie genre="adventure" star="Tom Hanks">
    <mov:name>Cast Away</mov:name>
<mov:date>(2000)</mov:date>
<mov:length>143 minutes</mov:length>
</mov:movie>

<mov:movie genre="action" star="Tom Hanks">
    <mov:name>Saving Private Ryan</mov:name>
<mov:date>(1998)</mov:date>
<mov:length>170 minutes</mov:length>
</mov:movie>

<mov:movie genre="adventure" star="Tom Hanks">
    <mov:name>Apollo 13</mov:name>
<mov:date>(1995)</mov:date>
<mov:length>140 minutes</mov:length>
</mov:movie>

<mov:movie genre="comedy" star="Tom Hanks">
    <mov:name>Forrest Gump</mov:name>
<mov:date>(1994)</mov:date>
<mov:length>142 minutes</mov:length>
</mov:movie>

<mov:movie genre="drama" star="Tom Hanks">
    <mov:name>Philadelphia</mov:name>
<mov:date>(1993)</mov:date>
<mov:length>125 minutes</mov:length>
</mov:movie>

<mov:movie genre="comedy" star="Tom Hanks">
    <mov:name>Big</mov:name>
<mov:date>(1988)</mov:date>
<mov:length>104 minutes</mov:length>
</mov:movie>
    </act:actor>

</act:actors>
</div>

 <address>
Superstar Movies &#183; 123 Moviestar Lane &#183; Hollywood, FL 12345
</address>

</body>

</html>

CSS

 @namespace act "http://www.superstarmovies.com/actors";

act|actor        {display: block; font-family: Arial, Helvetica, sans-serif;
          margin-bottom: 20pt}

act|name, act|date   {display: block}

act|name         {font-size: 14pt; color: DarkRed; font-style: bold}

act|date, act|birthplace   {display: inline; font-style: italic; color: DarkRed}

act|birthplace         {padding-left: 0.5em}

@namespace mov "http://www.superstarmovies.com/movies";

mov|movie        {display:block; font-family: Arial, Helvetica, sans-serif}

mov|name, mov|date, mov|length  {display: inline}

mov|name         {font-style: bold; color:#003;}

mov|length       {font-style: italics; padding-left: 0.5em}

想法?


在您的 XHTML 中:

  1. 您的标记格式不正确:

    • 您的 XML 声明应该首先出现,然后是您的 doctype 声明:

      <?xml version="1.0" encoding="utf-8"?>
      <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
      "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
      
    • 你的一些<link />标签没有正确关闭,它们应该是:

      <link rel="stylesheet" href="movies.css"  type="text/css" />
      <link rel="stylesheet" href="actors.css" type="text/css" />
      
  2. 您的页面必须作为application/xhtml+xml由服务器。典型的服务器不知道您正在提供 XHTML,因此它们将其发送为text/html反而。浏览器将无法处理text/html文件作为 XML,因此它们不会将 CSS 应用于您的自定义 XML 元素。

    如果您使用 PHP,只需将其添加到 XHTML 文件的最顶部即可:

    <?php header('Content-Type: application/xhtml+xml'); ?>
    

    或者在 ASP 中添加以下内容:

    <% Response.ContentType = "application/xhtml+xml"; %>
    

    您还应该有一个附带的元标记,但您的页面不需要验证,并且浏览器无论如何都会忽略它:

    <meta http-equiv="Content-Type" content="application/xhtml+xml; charset=utf-8" />
    

    您可以在以下位置找到关于 UA 将 XHTML 视为 HTML 标签汤的简短历史课程:这个答案 https://stackoverflow.com/a/8871965/106224为了更好地理解这一点。

在你的 CSS 中:

  1. It's font-weight: bold, not font-style: bold.

  2. It's font-style: italic, not font-style: italics.

  3. 确保您的@namespace语句放置在样式表的开头。来自spec http://www.w3.org/TR/css3-namespace/#syntax:

    Any @namespace规则必须遵循所有 @charset 和 @import 规则,并位于样式表中所有其他非忽略的 at 规则和规则集之前。


但话虽如此,为什么不将演员和电影放入他们自己的 XML 文件中,然后使用 XSLT 将它们转换为熟悉的、实际的XHTML?

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使声明的名称空间正常工作时遇到问题 的相关文章

  • 如何在 Safari 上打开本地 html 文件?

    我想打开本地 html 文件Safari集成到我的Swift 3应用 我知道如何使用网址来做到这一点 这是我用来执行此操作的代码 let encodedString url addingPercentEncoding withAllowed
  • Python。短语表示,如何改变?

    我不知道这个短语中存在的编码是什么 我也想知道这个问题的答案 主要是 我想改变我的措辞 例如 你好世界 变成你好 20世界 0A 老天啊 变成ol C3 A1 20mundo 0A 0A 我想要一个 python 解决方案 如果我有 gt
  • 如何用纯JavaScript控制变换距离

    我做的http codepen io adamchenwei pen dOvJNX http codepen io adamchenwei pen dOvJNX 我尝试对 dom 应用某种移动方式 使其移动固定距离并停止 而不是动画并移动穿
  • 是否可以将整个“卡片”包装在 标记中?

    在我的网站中 我有 卡片 每张卡片都包含许多元素 图像 文本 日期等 这有点像 Twitter 中的推文卡 我希望整个卡片都是可点击的 应该是到另一个页面的链接 目前 我有顶级元素作为 a 标记和使用aria label and aria
  • 不要让最终用户保存密码[重复]

    这个问题在这里已经有答案了 可能的重复 禁用浏览器 保存密码 功能 https stackoverflow com questions 32369 disable browser save password functionality 是否
  • 使网格项跨越到隐式网格中的最后一行/列

    当我不知道行数时 是否可以使网格项跨度从第一行到最后一行 假设我有以下 HTML 内容 其中包含未知数量的框 我怎样才能做到第三个 box从第一条网格线到最后一条网格线 container display grid grid templat
  • 在 XSD 中哪里放置版权信息?

    将版权信息放入 XML 架构定义 XSD 时 是否有官方 或半官方 普遍接受的 位置 基于在哪里将版本添加到 XSD 架构 https stackoverflow com questions 2138705 where to add a v
  • 未捕获的类型错误:无法读取未定义的属性“prop”

    我有 6 个输入复选框 如果选中的复选框超过 3 个 则最后一个复选框将被取消选中 为了更好地理解 请参阅我之前的question https stackoverflow com questions 35195235 if checkbox
  • Swift - 将图像插入 PDF 不再适用于 iOS 13

    目前正在开发在我的贷款计算器应用程序上导出 PDF 的功能 我有一个预览屏幕 可以在您保存 PDF 之前显示它 预览屏幕由带有 html 的 webView 组成 其中包含占位符 我能够成功地将图像插入到正确的占位符上 并将其显示在 PDF
  • Intro.js 2页然后返回首页

    我在用intro js http introjs com 为我的网站创建一个小介绍 我希望游览从第 1 页 主页 2 另一页 然后回到第 1 页 主页 我已经成功地从第 1 2 页开始 但不确定如何让它返回到第 1 页 我对 javascr
  • 如何使用 Webpack 加载器导入 XML,而不自动转换为 JSON

    Webpack 4 的 xml loader 自动将导入的 XML 文件转换为 JSON 通过什么方式可以导入XMLwithout转换为 JSON XML 数据将使用现有的 应用程序专用的 XML 解析器进行处理 明确地说 我绝对愿意not
  • Firefox CSS 大纲错误?

    在 Chrome 和 IE9 上 我指定的 CSS 轮廓完全符合我的要求 并充当我正在设计的元素周围的第二个边框 但在 Firefox 上 轮廓会向外扩展 以便包含我生成的 after 伪元素以及主元素 这是一个错误 还是预期的 有什么好的
  • 以 HTML 格式发送电子邮件

    我想发送 HTML 格式的电子邮件 如下图所示 我怎样才能做到这一点 请帮我 提前致谢 String body new String table tr td br header td tr br br Get b Best Score b
  • 文本视图不显示全文

    我正在使用 TableLayout 和 TableRow 创建一个简单的布局 其中包含两个 TextView 这是代码的一部分
  • 具有挑战性的问题 - 使用 PHP 对 XML 数据进行排序

    我有 xml 文件 其中包含大量产品数据 我需要根据我的字段 ProductRange 的数据对我的产品进行排序 ProductRange urldecode GET Range XML 文件数据
  • Onblur 事件在另一个 div 的 onclick 之前触发

    如上所述 我有一个按钮 单击该按钮将打开子菜单 对于子菜单中的每个选项 都有三个元素 我认为实际上还有更多元素 但为了简单起见 将其保留为 3 我将焦点放在子菜单的主 div 白色 框架 上 Onblur 这个 div 然后我隐藏子菜单 这
  • 中心引导表宽度为 100%?

    table class table table striped table hover table responsive table
  • 在桌面和移动设备上编写 2 列和 3 列的 Flexbox 代码(换行)

    我真的很难弄清楚这个 CSS flexbox 解决方案 基本上有两个问题 一个是 2 列布局 另一个是 3 列布局 2 列 我认为这可能非常简单 3 列 这可能更高级一些 容器类是 嗯 container 而孩子们只是 left right
  • iframe 主体删除空间

    我的 iframe 风格为style width 100 几乎覆盖了页面宽度 但它在左侧和右侧留下了一个小边距 所以我添加了body margin 0px 删除空间 它有效 但问题是删除边距影响其他事物 例如段落 p inside 有没有办
  • 用 Beautiful Soup 进行抓取:为什么 get_text 方法不返回该元素的文本?

    最近我一直在用 python 开发一个项目 其中涉及抓取一些网站的一些代理 我遇到的问题是 当我尝试抓取某个知名代理站点时 当我要求 Beautiful Soup 查找 IP 在代理表中的位置时 它并没有按照我的预期执行操作 我将尝试查找每

随机推荐