高可读性的HTML

1、HTML语义化

       HTML语义化:从HTML代码中使用的标签本身就可以说明标签包含内容的含义。

       页面标签语义化的优点:

       (1)使得诸如搜索引擎以及第三方内容抓取工具等更容易读懂页面代码。

       (2)提高了页面代码的可读性。

        最主要的4条原则:

        (1)熟悉所有规范中的HTML标签,理解各标签的语义,在合适的地方使用合适的标签。

                 标签<hx>系列代表的是标题;

                 <ul>和<ol>表示列表,在展现各种数据列表或者菜单时使用。

                 其他使用率较高的语义标签有:<p>、<em>、<strong>、<table>、<site>、<blockquote>等。

                 HTML5新加入的标签:<header>、<footer>、<article>、<section>、<nav>、<aside>等。

         (2)熟悉各标签上的规范的属性,给HTML标签设置必要的属性。

                alt属性:在<img>标签中,alt是必须设置的属性。

                title属性:添加额外的信息。          

     <!-- alt属性除了对图片进行解释说明之外,也作为图片在浏览器中未加载时显示的代替文字 -->
     <img src="load.gif" alt="data loading...">
     <!-- title属性是对元素的解释说明,并且作为在浏览器中当鼠标移到元素上时显示的提示信息 -->
     <a href="" title=""></a>

               <label>标签的for属性:从语义上绑定了<label>标签和<input>表单元素。

      <!-- 当用户选择该标签时,浏览器就会自动将焦点转到和标签相关的表单控件上。-->
      <label for="name">name:</label>
      <input type="text" id="name">

       (3)样式和结构分离

               把HTML代码中用于表达外观的部分从HTML中删除,并改用CSS样式实现。

       (4)给空标签中添加隐藏文字,用于说明标签的实际功能。

               为了美观效果,有时会把原来该用文字表达的效果替换为图片。这种情况下,建议给空标签添加一定的文字说明,并让文字隐藏起来。一般通过设置text-index来达到隐藏文字的目的。

2、如何设置网页标题层级

        (1)在页面内容的标题部分使用<hx>标签。

        (2)页面中只使用一个<h1>标签。

        (3)<hx>标签使用过程中不要跳级。

        (4)不要单纯使用<hx>标签给内容设置样式。

3、如何正确设计表单

       (1)使用<label>标签,并设置<label>标签的for属性。

      <!-- 当用户选择该标签时,浏览器就会自动将焦点转到和标签相关的表单控件上。-->
      <label for="name">name:</label>
      <input type="text" id="name">

       (2)给输入控件设置合适的水印提示(placeholder属性)。

      <input type="text" name="email" placeholder="user@lifeway.com" />

       (3)如有必要,给输入控件设置tab顺序。使用Tab键可切换不同的表单输入控件。

     <input type="text" tabindex="2" />

        (4)使用HTML5中引入的表单控件。

                  HTML5中引入了多个输入控件的类型(如url、email、date、search和number等)。

          最终表单示例:

       <form action="/service/user" method="post">
            <fieldset>
                <legend>Sign in to begin.</legend>
                <label for="userName">User Name:</label>
                <input type="email" name="userName" id="userName" placeholder="user@lifeway.com" tabindex="1" required="true" />
                <label for="password">Password:</label>
                <input type="password" id="password" name="password" tabindex="2" required="true" />
                <label for="staySigned">
                    <input type="checkbox" id="staySigned" name="staySigned" tabindex="3" />
                    Stay signed in
                </label>
            </fieldset>
            <input type="sumbit" value="Login" tabindex="4" />
        </form>

       页面效果:

      <fieldset>元素给表单控件分组。<legend>元素用来定义控件组的标题。

4、精简HTML代码

       (1)删除多余的容器。

       (2)装饰性的元素使用CSS样式实现。一个很有用的技巧是使用::before和::after伪元素。

       (3)避免使用table布局。

5、过时的块状元素和行内元素

        从渲染样式上看:

              块状元素在页面中单独占一行,即display样式的默认值为block,而行内元素则显示在行中,display样式的默认值为inline或者inline-block。

       从语义角度出发:

              块状元素可以包含其他元素,行内元素表示页面内容,只能包含行内元素,不能包含块状元素。 

       常见的块状元素有:<div>、<p>、<table>、<ul>、<ol>、<h1>~<h6>等。

       常见的行内元素有:<span>、<img>、<a>、<em>、<input>、<select>等。

      在HTML5规范中刻意淡化了块状元素和行内元素的定义,并按照元素具体的语义重新划分了元素的类型。总共分为7类:

  • 元数据式(Metadata)内容:<base>、<command>、<link>、<meta>等。
  • 流式(Flow)内容:<span>、<div>等。
  • 章节式(Phrasing)内容:<article>、<aside>、<nav>以及<section>。
  • 标题式(Headerr)内容:<h1>~<h6>、<hgroup>。
  • 段落式(Sectioning)内容:<span>、<img>等。
  • 嵌入式(Embedded)内容:<img>、<iframe>、<svg>、<audio>、<video>、<canvas>等。
  • 交互式(Iteractive)内容:<a>、<button>、<select>、<input>等。
posted @ 2017-10-12 21:12  新功夫涂鸦  阅读(521)  评论(0编辑  收藏  举报