是否可以组成HTML标签?

时间:2011-06-01 06:14:26

标签: html css

阻止我这样做的原因是什么:

<head>    
<style type="text/css">
red{
    display:block;
    background:red;
    height:20px;
    width:20px;
}
</style>
</head>
<body>

<red></red>

这会有用吗?什么会阻止它?

根据我的理解,浏览器会根据选择器规则找到并匹配css样式,只要你指定所有必需的规则(我确定还有更多),什么阻止我看到屏幕上有一个小红框?

5 个答案:

答案 0 :(得分:6)

虽然可以对所有浏览器提供一定程度的支持,但它可能会在开箱即用的所有浏览器中运行。如果您真的想要创建自己的HTML标记子集,那么您应该考虑为它创建自己的DTD。

DTD是一种文档类型定义,它基本上是浏览器读取的文件,用于查看html标记语言的特定子集中可用的标记。

This article介绍了如何创建自己的DTD,但这样做not recommended,因为它不是有效的HTML。

答案 1 :(得分:3)

它应该可行,但是,除非您还创建自定义DTD,否则这将导致HTML无法验证。

答案 2 :(得分:2)

  

是否可以组成html标签?

您可以加入the working group并提出新元素。

  

这会有用吗?

对于某些“工作”的定义,即Internet Explorer,屏幕阅读器,搜索引擎等敌对。

它不会是HTML。

HTML有各种各样有用的语义元素(以及一些非语义元素),可以通过class属性扩展(,并且可能(我没有仔细观察){ (草案)HTML 5规范中的{1}} )。坚持那些。

答案 3 :(得分:1)

虽然为其提供css规则时会显示红色元素,但它仍然是文档中的外星人。例如,您的浏览器将无法像往常一样识别id,class或style等属性。因此,您无法在脚本中通过id获取元素,并且您无法通过CSS中的类选择器设置元素的样式。但是,像getElementsByTagName这样的XmlDom方法可以正常工作。在引入红色元素时要注意这一点。

答案 4 :(得分:0)

我可以建议使用替换的一个PHP技巧。

<?
  function red_rpl($buffer)
  {
    $buffer = str_replace('<red>', '<div class="red">', $buffer);
    $buffer = str_replace('</red>', '</div>', $buffer);
  return $buffer;
  }
  ob_start('red_rpl');
?>

<style>
  .red {
    display:block;
    background:red;
    height:20px;
    width:20px;
  }
</style>

<red></red>

当然,DOM中不会有任何新标记,但您的源文件看起来会更漂亮:)