【问题标题】:Alternative HTML syntax替代 HTML 语法
【发布时间】:2011-05-04 10:57:24
【问题描述】:

这是一个主观问题,但您不认为下面的 HTML 语法更有意义吗?

<div #id .class1 .class2><!-- content --></div>

代替:

<div id="id" class="class1 class2"><!-- content --></div>

【问题讨论】:

  • 这将如何与 XHTML 一起工作?
  • @Chris:正是我的想法。或者使用 CSS 以外的样式表。或者使用其他使用 CSS 的语言,例如 SVG ;-)
  • 这不是一个真正的主观问题 - 有一些非常客观的原因说明你为什么不应该这样做
  • @Yi Jiang,有但也有客观原因(可能没有那么多)为什么你应该这样做(例如可读性)。这使问题变得主观。
  • 我添加了一些我刚刚在答案中找到的内容。也许有帮助。

标签: html syntax


【解决方案1】:

对于只编写 HTML 和 CSS 的人来说,这可能更有意义。但是,请记住

  • CSS 的发明比 HTML 晚得多
  • HTML 在很大程度上是向后兼容的;您仍然可以使用旧版浏览器查看当前网页,无需更改
  • 您建议的语法与 XML 不兼容。因此,您将抛弃所有 XHTML 人员
  • 此外,您是否也想更改其他依赖 CSS 进行样式设置的语言,例如SVG(同样是 XML,因此不兼容)?

我同意,对于一个非常狭隘的目的,这可能是一个有益的改变,但从更广泛的角度来看,我怀疑你会看到很多改进,只有痛苦。您当然可以使用预处理器以这种方式编写 HTML 并将其转换为实际内容。

您可能还想看看其他转换成 HTML 的语言,例如 Haml

如果您只满足于输入与您提议的内容类似的内容,那么Zen-Coding 可能是您的选择。引用:

Zen Coding 是一个用于高速 HTML、XML、XSL(或任何其他结构化代码格式)编码和编辑的编辑器插件。该插件的核心是一个强大的缩写引擎,它允许您将表达式(类似于 CSS 选择器)扩展为 HTML 代码。例如:

div#page>div.logo+ul#navigation>li*5>a

... 可以扩展为:

<div id="page">
    <div class="logo"></div>
    <ul id="navigation">
        <li><a href=""></a></li>
        <li><a href=""></a></li>
        <li><a href=""></a></li>
        <li><a href=""></a></li>
        <li><a href=""></a></li>
    </ul>
</div>

【讨论】:

    【解决方案2】:

    不是真的。 HTML 中的属性是通用的,CSS 仅建立在它们之上。 HTML 本身没有“id”或“类”的概念,只有属性。

    【讨论】:

      【解决方案3】:

      您可能会喜欢使用HAML(与these implementations 中的任何一个):

      %body
          #header
              %h1 BoBlog
              %h2 Bob's Blog
      

      【讨论】:

      • 感谢您的建议!看起来很有趣。你知道任何使用 HAML 的流行项目吗?
      • @Emanuil 我不确定是否有一个明确的列表,它已被移植到几个不同的平台并且拥有广泛的编辑器支持这一事实似乎表明它被广泛使用。
      • 再次感谢。我肯定对这个概念很感兴趣。等我有更多时间,我会进一步研究它。
      • @Emanuil Rails 确实支持 HAML:stackoverflow.com/questions/99211/…
      【解决方案4】:

      这可能适用于您提供的示例,但您将如何注释以下内容?

      <a id="my-link" href="http://example.com" rel="external" target="_parent" class="complex" title="click here for no good reason">My Link</a>
      

      HTML 具有特定的属性名称,因此您可以使用键/值对(布尔属性可能除外,例如 checked)。如果你拿走键,值就会变得模棱两可,很难看出哪个属性应该采用哪个值。

      【讨论】:

      • 所有其他属性都将以经典方式工作 - attr="value"
      • 那将是&lt;a #my-link href='http://example.com' rel='external' target='_parent' .complex title='click here for no good reason'&gt;My Link&lt;/a&gt;——我不明白他的想法,他想要一个单字符快捷方式来处理所有可能的属性。
      • Phil:我猜,因为具有广泛样式的现代网页几乎在页面中的任何元素上都放置了一个类或 id。
      • @Phil.Wheeler、classid 被广泛使用,它们适用于每个标签,CSS 使它们很容易与 #. 符号相关联。跨度>
      • @Joey 这表明 HTML 缺乏表现力,HTML5 正在解决一些问题,而且通常缺乏 CSS 选择器的经验,而不是对这两个属性进行特殊封装的论据。
      猜你喜欢
      • 2013-06-04
      • 1970-01-01
      • 2014-03-25
      • 2014-02-18
      • 1970-01-01
      • 2017-01-30
      • 2011-07-26
      • 2013-07-09
      • 2012-12-14
      相关资源
      最近更新 更多