我应该如何处理自定义元素?

时间:2014-04-09 03:46:50

标签: html css semantics

从理论上讲,我可以在任何地方使用任何内容,并将<table>格式化为<ul>Or style an <imsocool> blue.

<style>
imsocool {
    color: blue;
}
<imsocool>HELLO</imsocool>

有时验证器会抱怨(不像我关心 - 它在css中验证calc()时抱怨“解析错误”),但浏览器从不这样做。我猜的唯一问题是浏览器,屏幕阅读器,搜索引擎以及其他所有内容都不知道<imsocool>是什么。未知标签没有,未知。那么什么时候可以呢?

可以制作这样的特殊小部件(当然是JS)吗?

<calendar>
    <ctrlgroup>
        <ctrl class="left">&lt;-</ctrl>
        <ctrl class="left">-&gt;</ctrl>
    </ctrlgroup>
    <week>
        <day>1</day><day>2</day><day>3</day><!-- Etc. -->
    </week>
</calendar>

我需要使用破折号吗? (正如规范所说 - 它应该防止与未来元素的冲突)

<calendar-widget>
    <ctrl-group>
        <cal-ctrl class="left">&lt;-</cal-ctrl>
        <cal-ctrl class="left">-&gt;</cal-ctrl>
    </ctrl-group>
    <calendar-week>
        <calendar-day>1</calendar-day><calendar-day>2</calendar-day><calendar-day>3</calendar-day><!-- Etc. -->
    </calendar-week>
</calendar-widget>

或者根本不应该使用它?

<div class="calendar">
    <div class="controls">
        <div class="left">&lt;-</div>
        <div class="left">-&gt;</div>
    </div>
    <div class="week">
        <span class="day">1</span><span class="day">2</span><span class="day">3</span><!-- Etc. -->
    </div>
</div>

忽略浏览器支持,使用未知HTML元素的优缺点是什么?什么时候合适?

我能想到的是:

  • 如果规范中的任何元素都不能很好地适应这项工作,那么就不会丢失任何语义含义 - <div>并不仅仅意味着<imsocool>
  • 课程很烦人。
  • 使用正确的元素是个好主意(如果它们存在(比如使用<em>强调,而不是<big-and-red>
  • 不要滥用现有元素。您不应该将<table>设置为<ul> - 它会混淆机器人(浏览器,辅助功能软件,谷歌)。那么,不要滥用可能发生冲突的未来可能元素吗?

2 个答案:

答案 0 :(得分:1)

与代码世界中任何标准的偏差一样,任何非标准的处理方式都会产生不确定的行为,因为不是每个代理都会以同样的方式同意处理这种情况。

所以,要回答你的问题,只有你可以使用unexpected behavior from the browsers等等,这是可以的。这意味着遇到HTML的每个人都不会有相同的体验。这就是遵循HTML / CSS标准的保证。

您提供的示例实际上似乎与XML类似,这使您在标记名称方面拥有更多自由。如果更适合您的偏好,您可以轻松创建XML documents with style sheets

<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/css" href="mytest2.css"?>
<people>
    <person>
        <name status="real">Deron Eriksson</name>
        <birthdate>January 22, 1972</birthdate>
        <eyes>blue</eyes>
    </person>
    <person>
        <name status="imaginary">Bob Smith</name>
        <birthdate>December 25, 1989</birthdate>
        <eyes>brown</eyes>
    </person>
</people>

此外,还有standard being developed个自定义HTML标记。

答案 1 :(得分:0)

使用自定义标签确实没有优势。唯一的好处是它可以提高可读性,但类足够可读。

这是另一个类似的stackoverflow问题:Is there a way to create your own html tag in HTML5?