<span> / <div> css的简写 - 这是合法的吗?</div> </span>

时间:2011-05-31 17:14:51

标签: html css

如果我创建一个HTML元素:

sc {
    font-variant: small-caps;
}

并像这样应用:

I want to display <sc>this text</sc> in small-caps.

它按预期工作(当然,除了在IE中。)它成为

的简写
.sc {
    font-variant: small-caps;
}
I want to display <span class='sc'>this text</span> in small-caps.

这是打算/记录的行为吗?它有名字吗?

5 个答案:

答案 0 :(得分:9)

XHTML(以及它所基于的XML)旨在让您以类似的方式添加自定义元素,而是使用带有元素名称的自定义XML namespace。然后,您可以使用CSS直接设置这些元素的样式,或者使用XSLT将它们转换为真实的HTML元素。这就是为什么(或至少有一个原因)符合标准的浏览器可以处理DOM中的其他非标准元素。

在HTML 4及更早版本中,将自己的非标准元素洒在上面(不确定HTML5的可扩展性)总是无效的。

但是,无论哪种方式,IE都不会自动了解DOM中的自定义元素,因此您需要在DOM完成加载之前使用document.createElement()创建它们。

答案 1 :(得分:2)

如果添加document.createElement('sc');并且它是“合法的”,它也适用于IE。这就是HTML5 shiv所做的。

与大多数javascript函数不同,这必须在 之前称为 元素的实际使用,而不是在页面/ DOM加载之后。

答案 2 :(得分:2)

虽然它可以正常工作,但除非你使用XHTML(真正的XHTML,正确的Content-Type和所有......而不是harmful XHTML)和命名空间,否则它无效:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html 
      PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
      "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
  <head>
    <title>&lt;span&gt; shorthand for css - is this legit?</title>
  </head>
  <body>

    <h1>Custom tags in XHTML</h1>

    I want to display
    <sc xmlns="http://le-dorfier.example.com">
      this text
    </sc>
    in small-caps.

  </body>
</html>

有关详细信息,请查看MDN文档中的Namespace Crash Course

答案 3 :(得分:1)

无法识别的元素会被处理,并且可以在所有现代浏览器中使用。但是它应该显示为无效标记。

在较旧版本的ie中,您无法设置无法识别的元素样式 - 但您可以在JavaScript中执行document.createElement('sc')

答案 4 :(得分:1)

假设,如果您尚未指定HTML文档类型并将文档视为XML文档,则可以将样式表附加到其中,以定义所需任何标记的可视行为。< / p>

有关详细信息,请参阅http://csszengarden.com/

基本上,你可以拥有一个带有CSS样式表的裸XML文档,它可以根据你的需要进行布局。