浏览器丶Web标准和 HTML

172 阅读8分钟

浏览器内核

浏览器内核又可以分成两部分:渲染引擎(layout engineer 或者 Rendering Engine)和 JS 引擎。
渲染引擎 它负责取得网页的内容(HTML、XML、图像等等)、整理讯息(例如加入 CSS 等),以及计算网页的显示方式,然后会输出至显示器或打印机。浏览器的内核的不同对于网页的语法解释会有不同,所以渲染的效果也不相同。
JS 引擎 则是解析 Javascript 语言,执行 javascript语言来实现网页的动态效果。

最开始渲染引擎和 JS 引擎并没有区分的很明确,后来 JS 引擎越来越独立,内核就倾向于只指渲染引擎。有一个网页标准计划小组制作了一个 ACID 来测试引擎的兼容性和性能。内核的种类很多,如加上没什么人使用的非商业的免费内核,可能会有10多种,但是常见的浏览器内核可以分这四种:Trident、Gecko、Blink、Webkit。

Web 标准

Web 标准的好处

  1. 让Web的发展前景更广阔
  2. 内容能被更广泛的设备访问
  3. 更容易被搜寻引擎搜索
  4. 降低网站流量费用
  5. 使网站更易于维护
  6. 提高页面浏览速度

Web 标准构成

Web标准不是某一个标准,而是由W3C和其他标准化组织制定的一系列标准的集合。主要包括结构(Structure)、表现(Presentation)和行为(Behavior)三个方面。

结构标准:结构用于对网页元素进行整理和分类,主要包括XML和XHTML两个部分。
样式标准:表现用于设置网页元素的版式、颜色、大小等外观样式,主要指的是CSS。
行为标准:行为是指网页模型的定义及交互的编写,主要包括DOM和ECMAScript两个部分

HTML

HTML骨架

<HTML>   
    <head>     
        <title></title>
    </head>
    <body>
    </body>
</HTML>

HTML标签

HTML标记的分类

双标签 <标签名> 内容 </标签名>
单标签 <标签名 />

HTML标签关系

  1. 嵌套关系 <head> <title> </title> </head>
  2. 并列关系 <head></head> <body></body>
  • 文档格式 (html、head、body)
  • 头部标记 (title、meta、link、style、script、base)
  • 文本结构标记 (p、h1~h5、pre、marquee、br、hr)
  • 字体标记 (font、b、i、u、strong、em)
  • 列表标记 (ul、ol、li、dl、dt、dd)
  • 超链接标记 (a、map、area)
  • 图像及媒体元素标记 (img、embed、object)
  • 表格标记 (table、tr、td、th、tbody)
  • 表单标记 (form、input、textarea、select、option、fieldset、legend、label)
  • 容器标记 (div、span)
  • 水平线 (
  • 换行标签 (

文档类型

<!DOCTYPE html>
  • 这句话就是告诉我们使用哪个html版本? 我们使用的是 html 5 的版本。 html有很多版本,那我们应该告诉用户和浏览器我们使用的版本号。

  • 标签位于文档的最前面,用于向浏览器说明当前文档使用哪种 HTML 或 XHTML 标准规范,必需在开头处使用标签为所有的XHTML文档指定XHTML版本和类型,只有这样浏览器才能按指定的文档类型进行解析。

  • 注意: 一些老网站可能用的还是老版本的文档类型比如 XHTML之类的,但是我们学的是HTML5,而且HTML5的文档类型兼容很好(向下兼容的原则)。

字符集

<meta charset="UTF-8">
  • utf-8是目前最常用的字符集编码方式,常用的字符集编码方式还有gbk和gb2312。

  • gb2312 简单中文 包括6763个汉字

  • BIG5 繁体中文 港澳台等用

  • GBK包含全部中文字符 是GB2312的扩展,加入对繁体字的支持,兼容GB2312

  • UTF-8则包含全世界所有国家需要用到的字符

HTML标签的语义化

  1. 方便代码的阅读和维护
  2. 同时让浏览器或是网络爬虫可以很好地解析,从而更好分析其中的内容
  3. 使用语义化标签会具有更好地搜索引擎优化

文本格式化标签

  • <b></b><strong></strong> 粗体
  • <i></i><em></em> 斜体
  • <s></s><del></del> 删除线
  • <u></u> <ins></ins> 下划线

strong em del ins 语义更强

img标签

  • src URL 图像路径
  • alt 文本 图片不能显示时替换文本
  • title 文本 鼠标悬停时显示内容
  • align 对齐方式
  • width 像素 宽度
  • height 像素 高度
  • border 数字 图像边框高度

链接标签

  • <a href="http://www.baidu.com"</a> http协议不能省略

  • target="" _blank 打开新窗口 _self 当前窗口(默认值) _parent ;这个目标使得文档载入父窗口或者包含来超链接引用的框架的框架集。如果这个引用是在窗口或者在顶级框架中,那么它与目标 _self 等效。 _top 这个目标使得文档载入包含这个超链接的窗口,用 _top 目标将会清除所有被包含的框架并将文档载入整个浏览器窗口。

  • 锚点定位 href="#标签id名字"

base标签

base可以设置整体链接的打开状态

<base target="_blank" /> 放在head中

特殊字符标签

  • 空格符 &nbsp
  • < 小于号 &lt
  • > 大于号 &gt
  • & 和号 &amp
  • © 版权 &copy

注释标签

<!-- -->

快捷键 ctrl+/

列表标签

  • 无序列表 ul li

  • 有序列表 ol li

  • 自定义列表 dl dt dd

表格

`<table>
    <caption></caption>
    <thead>
        <tr><th></th></tr>
    </thead>
    <tbody>
        <tr><td></td></tr>
    </tbody>
    <table>`

表格标题

<caption></caption> 必须位于<table>标记内

合并单元格

  • 跨行合并:rowspan
  • 跨列合并:colspan

下拉菜单

使用select控件定义下拉菜单的基本语法格式如下

<select>
  <option>选项1</option>
  <option>选项2</option>
  <option>选项3</option>
  ...
</select>

注意:

  1. 中至少应包含一对。
  2. 在option 中定义selected =" selected "时,当前项即为默认选中项。

表单域

在HTML中,form标签被用于定义表单域,即创建一个表单,以实现用户信息的收集和传递,form中的所有内容都会被提交给服务器。创建表单的基本语法格式如下:

<form action="url地址" method="提交方式" name="表单名称">
  各种表单控件
</form>

常用属性:

  1. Action 在表单收集到信息后,需要将信息传递给服务器进行处理,action属性用于指定接收并处理表单数据的服务器程序的url地址。
  2. method 用于设置表单数据的提交方式,其取值为get或post。
  3. name 用于指定表单的名称,以区分同一个页面中的多个表单。

注意: 每个表单都应该有自己表单域。

HTML5新标签与特性

文档类型设定

  • document

    • HTML: sublime 输入 html:4s
    • XHTML: sublime 输入 html:xt
    • HTML5 sublime 输入 html:5

字符设定

  • :HTML与XHTML中建议这样去写
  • :HTML5的标签中建议这样去写

常用新标签

w3c 手册中文官网 : w3school.com.cn/

  • header:定义文档的页眉 头部

  • nav:定义导航链接的部分

  • footer:定义文档或节的页脚 底部

  • article:定义文章。

  • section:定义文档中的节(section、区段)

  • aside:定义其所处内容之外的内容 侧边

    <header> 语义 :定义页面的头部  页眉</header>
    <nav>  语义 :定义导航栏 </nav> 
    <footer> 语义: 定义 页面底部 页脚</footer>
    <article> 语义:  定义文章</article>
    <section> 语义: 定义区域</section>
    <aside> 语义: 定义其所处内容之外的内容 侧边</aside>
    
  • datalist 标签定义选项列表。请与 input 元素配合使用该元素

    <input type="text" value="输入明星" list="star"/> <!--  input里面用 list -->
    <datalist id="star">   <!-- datalist 里面用 id  来实现和 input 链接 -->  
                <option>刘德华</option>
                <option>刘若英</option>
                <option>刘晓庆</option>
                <option>郭富城</option>
                <option>张学友</option>
                <option>郭郭</option>
    </datalist>
    
  • fieldset 元素可将表单内的相关元素分组,打包 legend 搭配使用

    <fieldset>
                <legend>用户登录</legend>  标题
                用户名: <input type="text"><br /><br />
                密 码: <input type="password">
    </fieldset>
    

新增的input type属性值:

类型使用示例含义
email<input type="email">输入邮箱格式
tel<input type="tel"> 输入手机号码格式
url<input type="url">输入url格式
number<input type="number">输入数字格式
search<input type="search">搜索框(体现语义化)
range<input type="range">自由拖动滑块
time<input type="time">小时分钟
date<input type="date">年月日
datetime<input type="datetime">时间
month<input type="month">月年
week<input type="week">星期 年

常用新属性

属性用法含义
placeholder<input type="text" placeholder="请输入用户名">占位符 当用户输入的时候 里面的文字消失 删除所有文字,自动返回
autofocus<input type="text" autofocus>规定当页面加载时 input 元素应该自动获得焦点
multiple<input type="file" multiple>多文件上传
autocomplete<input type="text" autocomplete="off">规定表单是否应该启用自动完成功能 有2个值,一个是on 一个是off on 代表记录已经输入的值 1.autocomplete 首先需要提交按钮 2.这个表单您必须给他名字
required<input type="text" required>必填项 内容不能为空
accesskey<input type="text" accesskey="s">规定激活(使元素获得焦点)元素的快捷键 采用 alt + s的形式

综合案例

<form action="">
  <fieldset>
    <legend>学生档案</legend>
    <label for="userName">姓名:</label>
    <input type="text" name="userName" id="userName" placeholder="请输入用户名"> <br>
    <label for="userPhone">手机号码:</label>
    <input type="tel" name="userPhone" id="userPhone" pattern="^1\d{10}$"><br>
    <label for="email">邮箱地址:</label>
    <input type="email" required name="email" id="email"><br>
    <label for="collage">所属学院:</label>
    <input type="text" name="collage" id="collage" list="cList" placeholder="请选择"><br>
    <datalist id="cList">
      <option value="前端与移动开发学院"></option>
      <option value="java学院"></option>
      <option value="c++学院"></option>
    </datalist><br>
    <label for="score">入学成绩:</label>
    <input type="number" max="100" min="0" value="0" id="score"><br>
   <form action="">
    <fieldset>
        <legend>学生档案思密达</legend>
        <label>姓名: <input type="text" placeholder="请输入学生名字"/></label> <br /><br />
        <label>手机号: <input type="tel" /></label> <br /><br />
        <label>邮箱: <input type="email" /></label> <br /><br />
        <label>所属学院:  <input type="text" placeholder="请选择学院" list="xueyuan"/>
        <datalist id="xueyuan">
            <option>java学院</option>
            <option>前端学院</option>
            <option>php学院</option>
            <option>设计学院</option>
        </datalist>
​
        <br /><br />
​
        <label>出生日期:   <input type="date" /></label> <br /><br />
        <label>成绩:  <input type="number" /></label> <br /><br />
        <label>毕业时间:  <input type="date" /></label> <br /><br />
        <input type="submit" />  <input type="reset" />
    </fieldset>
    </form>
    <label for="inTime">入学日期:</label>
    <input type="date" id="inTime" name="inTime"><br>
    <label for="leaveTime">毕业日期:</label>
    <input type="date" id="leaveTime" name="leaveTime"><br>
    <input type="submit">
  </fieldset>
</form>

多媒体标签

  • embed:标签定义嵌入的内容
  • audio:播放音频
  • video:播放视频

多媒体 embed(会使用)

embed可以用来插入各种多媒体,格式可以是 Midi、Wav、AIFF、AU、MP3等等。url为音频或视频文件及其路径,可以是相对路径或绝对路径。

因为兼容性问题,这里只是插入网络视频, H5有audio 和video 视频多媒体。

<embed src="http://player.youku.com/player.php/sid/XMTI4MzM2MDIwOA==/v.swf" allowFullScreen="true" quality="high" width="480" height="400" align="middle" allowScriptAccess="always" type="application/x-shockwave-flash"></embed>

多媒体 audio

HTML5通过标签来解决音频播放的问题。

autoplay 自动播放

controls 是否显不默认播放控件

loop 循环播放 loop = 2 就是循环2次 loop 或者 loop = "-1" 无限循环

多媒体 video

HTML5通过标签来解决视频播放的问题。

autoplay 自动播放

controls 是否显示默认播放控件

loop 循环播放

width 设置播放窗口宽度

height 设置播放窗口的高度

html-02.png

HTML5 新API