代码之家  ›  专栏  ›  技术社区  ›  Emanuil Rusev

可选HTML语法

  •  1
  • Emanuil Rusev  · 技术社区  · 15 年前

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

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

    而不是:

    <div id="id" class="class1 class2"><!-- content --></div>
    
    4 回复  |  直到 15 年前
        1
  •  8
  •   Joey Gumbo    15 年前

    也许对于只写HTML和CSS的人来说,这更有意义。但是,记住

    • CSS的发明比HTML晚得多
    • HTML在很大程度上是向后兼容的;您仍然可以使用古老的浏览器查看当前的网页,并且不需要更改这一点。
    • 您建议的语法与XML不兼容。所以你把所有的xhtml人都扔了
    • 此外,是否还要更改其他依赖于CSS进行样式设置的语言,例如SVG(同样,XML,因此不兼容)?

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

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

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

    Zen编码是一个用于高速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
  •  4
  •   Core Xii    15 年前

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

        3
  •  4
  •   robertc    15 年前

    你可能喜欢使用 HAML (与任何 these implementations ):

    %body
        #header
            %h1 BoBlog
            %h2 Bob's Blog
    
        4
  •  2
  •   Phil.Wheeler    15 年前

    这可能适用于您提供的示例,但是您如何标记以下内容?

    <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 )如果去掉键,值就会变得模糊不清,而且很难看到哪个属性应该采用哪个值。