红牛11
U途骑士
U途骑士
  • UID57270
  • 粉丝1
  • 关注0
  • 发帖数1
  • 铜币12枚
  • 威望12点
  • 贡献0点
阅读:3594回复:0

[HTML5技术]前端编码风格规范之 HTML 规范

楼主#
更多 发布于:2014-01-17 13:12

[*]
[*] I'm important!
[*]
[*]

复制代码

推荐


    [*]
    [*]
    [*]
    [*]
    [*]
    [*]
    [*]
    [*]
    [*]
    [*]
    [*] I'm a subtitle and I'm bold!
    [*]
    [*] Dare you center me!
    [*]
    [*] I'm important!
    [*]
    [*]
    [*]
    [*]
    [*]

复制代码

HTML 内容至上

不要让非内容信息污染了你的 HTML。现在貌似有一种倾向:通过 HTML 来解决设计问题,这是显然是不对的。HTML 就应该只关注内容。

HTML 标签的目的,就是为了不断地展示内容信息。


    [*]不要引入一些特定的 HTML 结构来解决一些视觉设计问题
    [*]不要将 img 元素当做专门用来做视觉设计的元素

以下例子展示了误将 HTML 用来解决设计问题的这两种情况:

不推荐


    [*]
    [*]
    [*]
    [*] See the square next to me?
    [*]

复制代码

    [*].text-box > .square {
    [*] display: inline-block;
    [*] width: 1rem;
    [*] height: 1rem;
    [*] background-color: red;
    [*]}

复制代码

推荐


    [*]
    [*]
    [*] See the square next to me?
    [*]

复制代码


    [*]/* We use a :before pseudo element to solve the design problem of placing a colored square in front of the text content */
    [*].text-box:before {
    [*] content: "";
    [*] display: inline-block;
    [*] width: 1rem;
    [*] height: 1rem;
    [*] background-color: red;
    [*]}

复制代码

图片和 SVG 图形能被引入到 HTML 中的唯一理由是它们呈现出了与内容相关的一些信息。

不推荐


    [*]
    [*]
    [*]
    [*] See the square next to me?
    [*]

复制代码

推荐

    [*]
    [*]
    [*] See the square next to me?
    [*]

复制代码

    [*]/* We use a :before pseudo element with a background image to solve the problem */
    [*].text-box:before {
    [*] content: "";
    [*] display: inline-block;
    [*] width: 1rem;
    [*] height: 1rem;
    [*] background: url(square.svg) no-repeat;
    [*] background-size: 100%;
    [*]}

复制代码

Type 属性

省略样式表与脚本上的 type 属性。鉴于 HTML5 中以上两者默认的 type 值就是 text/css 和 text/javascript,所以 type 属性一般是可以忽略掉的。甚至在老旧版本的浏览器中这么做也是安全可靠的。

不推荐


    [*]
    [*]

复制代码

推荐


    [*]
    [*]

复制代码

可用性

如果 HTML5 语义化标签使用得当,许多可用性问题已经引刃而解。ARIA 规则在一些语义化的元素上可为其添上默认的可用性角色属性,使用得当的话已使网站的可用性大部分成立。假如你使用 nav, aside, main, footer 等元素,ARIA 规则会在其上应用一些关联的默认值。 更多细节可参考 ARIA specification

另外一些角色属性则能够用来呈现更多可用性情景(i.e. role="tab")。

Tab Index 在可用性上的运用

检查文档中的 tab 切换顺序并传值给元素上的 tabindex,这可以依据元素的重要性来重新排列其 tab 切换顺序。你可以设置 tabindex="-1" 在任何元素上来禁用其 tab 切换。

当你在一个默认不可聚焦的元素上增加了功能,你应该总是为其加上 tabindex 属性使其变为可聚焦状态,而且这也会激活其 CSS 的伪类 :focus。选择合适的 tabindex 值,或是直接使用 tabindex="0" 将元素们组织成同一 tab 顺序水平,并强制干预其自然阅读顺序。

微格式在 SEO 和可用性上的运用

如果 SEO 和可用性环境条件允许的话,建议考虑采用微格式。微格式是通过在元素标签上申明一系列特定数据来达成特定语义的方法。

谷歌、微软和雅虎对如何使用这些额外的数据一定程度上的达成一致,如果正确的使用,这将给搜索引擎优化带来巨大的好处。

你可以访问 schema.org 获得更多内容细节。

看一个电影网站的简单例子:

不带微格式


    [*]
    [*] Avatar
    [*] Director: James Cameron (born August 16, 1954)
    [*] Science fiction
    [*] Trailer
    [*]

复制代码

带有微格式


    [*]
    [*] Avatar
    [*]
    [*] Director: James Cameron (born August 16, 1954)
    [*]
    [*] Science fiction
    [*] Trailer
    [*]

复制代码

ID 和锚点

通常一个比较好的做法是将页面内所有的头部标题元素都加上 ID. 这样做,页面 URL 的 hash 中带上对应的 ID 名称,即形成描点,方便跳转至对应元素所处位置。

打个比方,当你在浏览器中输入 URL http://your-site.com/about#best-practices,浏览器将定位至以下 H3 上。


    [*]Best practices

复制代码

格式化规则

在每一个块状元素,列表元素和表格元素后,加上一新空白行,并对其子孙元素进行缩进。内联元素写在一行内,块状元素还有列表和表格要另起一行。

(如果由于换行的空格引发了不可预计的问题,那将所有元素并入一行也是可以接受的,格式警告总好过错误警告)。

推荐


    [*]

    [*] Space, the final frontier.
    [*]

    [*]
    [*]


      [*]
      [*]Moe

      [*]
      [*]Larry

      [*]
      [*]Curly

      [*]


[*]
[*][*]
[*] [*]
[*]
[*] [*]
[*]

[*] Income
[*] Taxes
[*]

[*] [td]$ 5.00[/td]
[*] [td]$ 4.50[/td]
[*]


复制代码

HTML 引号

使用双引号(“”) 而不是单引号(“) 。

不推荐


    [*]

复制代码

推荐


    [*]

复制代码

[1]: 此处的空白元素指的是以下元素:area, base, br, col, command, embed, hr, img, input, keygen, link, meta, param, source, track, wbr

via:http://roshanca.com/2014/web-develop-styleguide-html/

[/td][/tr]
喜欢7 评分0
游客
返回顶部