zoukankan      html  css  js  c++  java
  • HTML-HTML5+CSS3权威指南阅读(一、HTML5与HTML4之间的区别)

    一、HTML5与HTML4之间的区别

    1. DOCTYPE 声明

      1). HTML4 中为 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

      2). HTML5 中为 <!DOCTYPE html>

    2.指定字符编码

      1). HTML4 中为 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

      2). HTML5 中为 <meta charset="utf-8" />

      PS: 从HTML5开始, 对于文件的字符编码推荐使用UTF-8

    3.具有 boolean 值的属性(例如 disabled 和 readonly 等)

      true:

        1). 只写属性名而不指定属性值

        2). 属性值赋值为空字符串或属性值

      false:

        不写属性名

      <!-- 只写属性不写属性值代表属性为 true -->
    
      <input type="checkbox" checked />
    
      <!-- 不写属性代表为false -->
    
      <input type="checkobx" />
    
      <!-- 属性值=属性名, 代表属性为 true -->
    
      <input type="checkbox" checked="checked" />
    
      <!-- 属性值=空字符串, 代表属性为true -->
    
      <input type="checkbox" checked="" />

    4.HTML5新增的标签

      HTML5 为了更好的解释 DOM, 使HTML代码在语义化方面更加精确, 启用了很多类似 div 的标签, 其功能与 div 类似, 但有利于 SEO(从 SEO 角度理解以下标签会好很多)

      <section> 标签: 它用来表现普通的文档内容或应用区块, 通常由内容及其标题组成, 但 section 元素标签并非一个普通的容器元素, 它表示一段专题性的内容; 当我们描述一件具体的事物的时候, 通常鼓励使用 article 来代替 section , 当我们使用 section 时, 仍然可以使用 h1 来作为标题, 而不用担心它所处的位置, 以及其它地方是否用到; 当一个容器需要被直接定义样式或通过脚本定义行为时, 推荐使用div元素而非section, 应用的典型场景有文章的章节、标签对话框中的标签页、或者论文中有编号的部分

    <section>
        <h1>section是什么?</h1>
        <h2>一个新的章节</h2>
        <article>
            <h2>关于section</h1>
            <p>section的介绍</p>
        </article>
    </section>

      <article> 标签: 是一个特殊的 section 标签, 它比 section 具有更明确的语义, 它代表一个独立的、完整的相关内容块, 一般会带有标题(一般放在一个header里面), 可独立于页面其它内容使用, 例如一篇完整的论坛帖子, 一篇博客文章, 一个用户评论等等; 一般来说, article 会有标题部分(通常包含在 header 内), 有时也会包含 footer, article 可以嵌套, 内层的 article 对外层的 article 标签有隶属关系, 例如一篇博客的文章可以用 article 显示, 然后一些评论可以以 article 的形式嵌入其中

      section 元素是对页面上的内容进行分块, 或者说对文章进行分段, 而 article 有着自己的完整的、独立的内容

    <article>
        <header>
            <hgroup>
                <h1>这是一篇介绍HTML 5结构标签的文章</h1>
                <h2>HTML 5的革新</h2>
            </hgroup>
            <time datetime="2011-03-20">2011.03.20</time>
        </header>
        <p>文章内容详情</p>
    </article>

      为了更好的区分 article 和 section 标签, 看以下两个例子

    <article>
        <h1>苹果</h1>
        <p><b>苹果</b> ,植物类水果,多次花果...</p>
        <section>
            <h2>红富士</h2>
            <p>红富士是从普通富士的芽(枝)变中选育出的着色系富的统称...</p>
        </section>
        <section>
            <h2>国光</h2>
            <p>国光苹果品,又名小国光、万寿。原产美国,1600年发现的偶然实生苗...</p>
        </section>
    </article>
    <section>
        <h1>水果</h1>
        <article>
            <h2>苹果</h2>
            <p>苹果,植物类水果,多次花果...</p>
        </article>
        <article>
            <h2>橘子</h2>
            <p>橘子,是芸香科柑橘属的一种水果...</p>
        </article>
        <article>
            <h2>香蕉</h2>
            <p>香蕉,属于芭蕉科芭蕉属植物,又指其果实,热带地区广泛栽培食用...</p>
        </article>
    </section>

      总结: article 更强调独立性, section 强调分块或分段;

      1.不要把 section 弄成设置页面样式的容器, 那是 div 的工作

      2.如果 article, aside, nav 更适合条件, 则不用 section

      3.不要为没有标题的内容区块设置 section 容器

      <nav> 标签: 相比 div, 明显突出了此块语义

    <nav>
        <ul>
            <li>随永杰1</li>
            <li>随永杰2</li>
            <li>随永杰3</li>
        </ul>
    </nav>

      <aside> 标签: 用来装载非正文的内容, 被视为页面里面一个单独的部分, 它包含的内容与页面的主要内容是分开的, 可以被删除, 而不会影响到网页的内容、章节或是页面所要传达的信息, 例如广告、成组的链接、侧边栏等等

    <aside>
        <h1>作者简介</h1>
        <p>随永杰</p>
    </aside>

      <header> 标签: 定义文档的页眉, 通常是一些引导和导航信息, 它不局限于写在网页头部, 也可以写在网页内容里面, 通常 <header> 标签至少包含(但不局限于)一个标题标记(<h1>-<h6>), 还可以包括 <hgroup> 标签, 还可以包括表格内容、标识、搜索表单、<nav>导航等

    <header>
        <hgroup>
            <h1>网站标题</h1>
            <h1>网站副标题</h1>
        </hgroup>
    </header>

      <footer> 标签: 定义 section 或 document 的页脚, 包含了与页面、文章或是部分内容有关的信息, 比如说文章的作者或者日期, 作为页面的页脚时, 一般包含了版权、相关文件和链接, 它和 <header> 标签使用基本一样, 可以在一个页面中多次使用, 如果在一个区段的后面加入 footer , 那么它就相当于该区段的页脚了

    <footer>
        COPYRIGHT@随永杰
    </footer>

      <hgroup> 标签: hgroup 标签是对网页或区段 section 的标题元素(h1-h6)进行组合, 例如, 在一区段中你有连续的h系列的标签元素, 则可以用 hgroup 将他们括起来

    <hgroup>
        <h1>这是一篇介绍HTML 5结构标签的文章</h1>
        <h2>HTML 5的革新</h2>
    </hgroup>

      <figure> 标签: 用于对元素进行组合, 多用于图片与图片描述组合

    <figure>
      <img src="img.gif" alt="figure标签"  title="figure标签" />
      <figcaption>这儿是图片的描述信息</figcaption>
    </figure>

      总结: div 无任何语义, 仅仅用作样式化或者脚本化的钩子(hook), 对于一段主题性的内容, 则就适用 section, 而假如这段内容可以脱离上下文, 作为完整的独立存在的一段内容, 则就适用 article, 原则上来说, 能使用 article 的时候, 也是可以使用 section 的, 但是实际上, 假如使用 article 更合适, 那么就不要使用 section , nav 和 aside 的使用也是如此, 这两个标签也是特殊的 section, 在使用 nav 和 aside 更合适的情况下, 也不要使用 section 了

      <mark> 标签: 高亮显示某段文字

    <span>我是<mark>高亮</mark>的标签</span>

      <progress> 标签: 进度条

    <progress value="50" max="100">您的浏览器不支持 progress 标签</progress>

      <meter> 标签: 度量值(类似进度)

    <meter value="0.6">60%</meter>

      <time> 标签: 时间(不会在任何浏览器中展示特殊效果)

    <p>我们在每天早上 <time>9:00</time> 开始营业。</p>
    <p>我在 <time datetime="2015-02-14">情人节</time> 有个约会。</p>

      <wbr> 标签: 软换行, 与 br 元素的区别是, br 表示此处必须换行, wbr 表示浏览器窗口或者父级元素足够宽时(没必要换行时), 不进行换行, 而宽度不够则在此处换行, wbr对字符型语言作用挺大, 对于中文貌似没有多大用处

    <p>To learn AJAX, you must be fami<wbr>liar with the XMLHttp<wbr>Request Object.</p>

       <video> 标签: 视频标签

    <video src="movie.ogg" controls="controls">
        您的浏览器不支持 video 标签。 
    </video>

      在 HTML4 中实现如下

    <object type="video/ogg" data="movie.ogv">
        <param name="src" value="movie.ogv">
    </object>

      <audio> 标签: 音频标签

    <audio src="audio.wav">
        您的浏览器不支持 audio 标签
    </audio>

      在 HTML4 中实现如下

    <object type="application/ogg" data="audio.wav">
        <param name="src" value="audio.wav">
    </object>

      <embed> 标签: 用来插入各种多媒体, 格式可以是 Midi、Wav、AIFF、AU、MP3等

      <embed src="horse.wav" />

      <source> 标签: 定义媒介资源, 如果拥有两份源文件, 浏览器应该选择它所支持的文件

    <audio controls>
       <source src="horse.ogg" type="audio/ogg">
       <source src="horse.mp3" type="audio/mpeg">
      您的浏览器不支持 audio 标签
    </audio> 

      <details> 标签: 表示用户要求得到并且可以得到的细节信息, 它可以与 summary 元素配合使用, summary 提供标题或者图例, 标题是可见的, 用户点击标题, 会显示出细节信息, summary 标签应该是 details 标签内的第一个子元素

    <details>
        <summary>Copyright 2011.</summary>
        <p>All pages and graphics on this web site are the property of W3School.</p>
    </details>

      <datalist> 标签: 表示可选数据的列表, 与 input 元素配合使用, 可以制作出输入值的下拉列表

    <input id="myCar" list="cars" />
    <datalist id="cars">
        <option value="BMW">
        <option value="Ford">
        <option value="Volvo">
    </datalist>

      <keygen> 标签:  标签规定用于表单的密钥对生成器字段, 当提交表单时, 私钥存储在本地, 公钥发送到服务器

    <form action="/example/html5/demo_form.asp" method="get">
        用户名:<input type="text" name="usr_name" />
        加密:<keygen name="security" />
        <input type="submit" />
    </form>

      <output> 标签: 定义不同类型的输出, 比如脚本的输出

    <!-- 执行计算然后在 <output> 元素中显示结果 -->
    <form oninput="x.value=parseInt(a.value)+parseInt(b.value)">
    0<input type="range" id="a" value="50">100
    +<input type="number" id="b" value="50">
    =<output name="x" for="a b"></output>
    </form>


    5.HTML5 中新增的 input 元素类型

      email: 表示必须输入 E-mail 地址的文本输入框

      url: 表示必须输入 URL 地址的文本输入框

      number: 表示必须输入数值的文本输入框

      range: 表示必须输入一定范围内数字值的文本输入框

      Date Pickers: 可选取日期和时间的文本输入框

        date: 选取日、月、年

        month: 选取月、年

        week: 选取周和年

        time: 选取时间(小时和分钟)

        datetime: 选取时间、日、月、年(UTC时间)

        datetime-local: 选取时间、日、月、年(本地时间)

    6.HTML5 中废除的元素

      <center>、<font>、<u>, <frame>, <frameset>, <marqueue>等, 主要是可以用CSS替代以及只有某些浏览器支持此标签

    7.HTML5 中新增的属性

      autofocus: 打开画面时自动获得焦点

      placeholder: 提示用户可以输入的内容

      form: 执行属于哪个表单

      required: 提交时进行检查, 检查该元素内一定要有内容

      min, max, step: 设置最大最小值以及步长

      pattern: 正则表达式, 其中内容必须符合

      multiple: 可以选择多个文件

      autocomplete: 表单自动完成

    8.HTML5 中的全局属性

      contentEditable="true/false": 设置元素为可编辑状态

    <ul contentEditable="true">
        <li>测试</li>
    </ul>

      designMode="on/off": 通过JS设置整片文档的可编辑状态

    <script type="text/javascript">
        document.designMode = "on"
    </script>

      hidden="true/false": 设置元素的隐现

    <ul hidden="true">
        <li>测试</li>
    </ul>

      spellCheck="true/false": 对用户输入的内容进行拼写和语法检查

    <textarea spellcheck="true">
    测试
    </textarea>

      tabindex="0": 为元素设置按下tab键时的索引次数

  • 相关阅读:
    Codeforces 177G2 Fibonacci Strings KMP 矩阵
    Codeforces Gym100187C Very Spacious Office 贪心 堆
    Codeforces 980F Cactus to Tree 仙人掌 Tarjan 树形dp 单调队列
    AtCoder SoundHound Inc. Programming Contest 2018 E + Graph (soundhound2018_summer_qual_e)
    BZOJ3622 已经没有什么好害怕的了 动态规划 容斥原理 组合数学
    NOIP2016提高组Day1T2 天天爱跑步 树链剖分 LCA 倍增 差分
    Codeforces 555C Case of Chocolate 其他
    NOIP2017提高组Day2T3 列队 洛谷P3960 线段树
    NOIP2017提高组Day2T2 宝藏 洛谷P3959 状压dp
    NOIP2017提高组Day1T3 逛公园 洛谷P3953 Tarjan 强连通缩点 SPFA 动态规划 最短路 拓扑序
  • 原文地址:https://www.cnblogs.com/JohnABC/p/4225566.html
Copyright © 2011-2022 走看看