浏览器如何理解我们使用的命名空间?

MaximPro

例:

@namespace html "http://www.w3.org/1999/xhtml";
@namespace svg "http://www.w3.org/2000/svg";

html|a{ 
    text-decoration: underline;
    color: blue;
}
svg|a {
    stroke: red;
}
<a href="#">link</a>
<svg>
  <a href="#">
    <text y="21" x="60">link</text>
  </a>
</svg>

如您所见,有2个链接,但是每个链接的规则都不同,因为浏览器了解我指的是什么空间。那么浏览器如何理解我正在使用的命名空间?因为如果您编写@namespace my "http://example.com"它,则它不适用于任何东西,因为浏览器无法理解此类名称空间。

阿罗奇

本质上,HTML5解析器查看元素,该元素将是在处理每个令牌时要添加到DOM的下一个元素的父元素。通常,它将每个元素与其父元素放在相同的名称空间中。它开始时期望元素在http://www.w3.org/1999/xhtml名称空间中,但是当它处理<svg>开始标记时,它知道<svg>元素在http://www.w3.org/2000/svg名称空间中。因此,svg元素所包含的元素也会放入http://www.w3.org/2000/svg名称空间中。当它处理</svg>结束标记时,下一个标记的父元素将不是svg元素,因此它将http://www.w3.org/1999/xhtml再次期望名称空间中的元素

其他标签也可能导致切换回http://www.w3.org/1999/xhtml名称空间,但<a>and</a>标签不在其中。有关详细信息,请参见标签名称为“ svg”的开始标签树结构调度程序解析外部内容中的令牌的规则

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

我们如何使用Selenium / TestNg禁用Chrome浏览器的网络安全

我们如何在Web浏览器中使用AWS Kinesis?

我们如何在 Squish Tool 中使用 BDD 执行跨浏览器测试

我们如何使音频在所有浏览器中都能工作,如果浏览器不支持音频,我们可以使用什么原语?

我们如何在robotframework中一次通过不同的浏览器

我们如何打开新的浏览器窗口以预览html

我们如何记录从浏览器到电话的Twilio出站呼叫启动?

我们如何在所有浏览器中控制网页缓存?

如何通过我们的浏览器访问Spark核心?

我们如何在浏览器中缓存嵌入式SVG?

JS,我们如何从浏览器打开桌面应用程序,例如Zoom或Webex

我们如何操纵浏览器表单中的元素值?

我们如何在Web浏览器控件中呈现mathjax方程?

我们可以使用javascript将图像推送到浏览器缓存吗

为什么我们使用\代替命名空间?

我们如何确保深层链接将始终打开我们自己的本机应用程序,而不是打开chrome浏览器

我们如何使用并行亚军或分布式测试执行对多个浏览器的Web用户界面功能的文件?

我们如何从PC的浏览器(都连接相同的网络)向Android设备发送消息

我们如何在并行执行的同时对所有浏览器只执行一次查询

我们如何将值/参数从 android APK 传递到 React JS 浏览器。?

如何在浏览器中修复“我们无法到达此页面”错误或“ err_connection_timed_out”?

我们可以使用javascript获取安装在浏览器中的搜索引擎列表吗?

我们可以使用 Safari 浏览器或 WKWebView 获得正常质量的 YouTube 视频吗?

我们如何使用Shell脚本删除空间?

为什么我们需要下载浏览器(IE,Chrome)驱动程序

我们可以在python selenium webdriver中缩放浏览器窗口吗?

Android浏览器有时无法打开我们的网站

为什么我们的 Gmail 插件列表会导致浏览器内存不足?

我们正在使用哪些浏览器使用Paul Irish的requestAnimationFrame填充程序?