HTML知识整理(一)
一.第一行:!DOCTYPE html
html文件最开头放一句<!DOCTYPE html> 非常非常重要。
如果写网页时没有加上这句话,就有可能出现某一个页面在IE7和8,Chrome,firefox等下正常,但是在IE9下显示有问题。而解决方法就是给页面添加<!DOCTYPE html>
下面简洁扼要的说一下DOCTYPE的作用和用法。
作用:
简要解释:
让所有浏览器都按照W3C的标准解析渲染你的页面
详细解释:
声明文档的解析类型(document.compatMode),避免浏览器的怪异模式。
document.compatMode的使用,感觉这个对于我们开发兼容性的web页面还是很有帮助,IE对盒模型的渲染在 Standards Mode和Quirks Mode是有很大差别的,document.compatMode就是用来判断当前浏览器采用的渲染方式。详细的document.compatMode介绍可以到下面的链接中翻阅:
https://www.cnblogs.com/fullhouse/archive/2012/01/17/2324706.html
BackCompat:怪异模式,浏览器使用自己的怪异模式解析渲染页面。
CSS1Compat:标准模式,浏览器使用W3C的标准解析渲染页面。
这个属性会被浏览器识别并使用,但是如果你的页面没有DOCTYPE的声明,那么compatMode默认就是BackCompat。如果浏览器按照自己的方式解析渲染页面,那么,在不同的浏览器就会显示不同的样式。
如果你的页面添加了<!DOCTYPE html>那么,那么就等同于开启了标准模式,那么浏览器就得老老实实的按照W3C的标准解析渲染页面,这样一来,你的页面在所有的浏览器里显示的就都是一个样子了。
这就是<!DOCTYPE html>的作用。
另外简单提一下XHTML规范:
1. html中不区分大小写,一般使用大写
2. html中注释不能嵌套
3. 标签要么成对出现,要么是自结束标签
4. html标签中的属性必须有值,且值必须加引号
二.Head标签
Head标签部分内容引用自
https://www.cnblogs.com/belongs-to-qinghua/p/10950535.html
我们都知道,HTML的标签可以分为很多种,head 里面的我们称为元信息类标签,诸如title、meta、style、link、base、script这些,他们用来描述文档的一些基本信息。
2.1. title 标签
- 可定义文档的标题。
- <title> 标签是 <head> 标签中唯一要求包含的东西。
- 浏览器会以特殊的方式来使用标题,并且通常把它放置在浏览器窗口的标题栏或状态栏上。同样,当把文档加入用户的链接列表或者收藏夹或书签列表时,标题将成为该文档链接的默认名称。
2.2. meta 标签
meta标签可以设置网页的关键字和描述,
而且请求重定向可以跳转到某网页,例如:
<meta http-equiv="refresh" content="5;url=http://www.baidu.com" />
- 元素可提供有关页面的元信息(meta-information),比如针对搜索引擎和更新频度的描述和关键词。
- <meta> 标签永远位于 head 元素内部。元数据总是以名称/值的形式被成对传递的。
- 设置网页编码:防止网页出现乱码<meta charset=“UTF-8”>
必须的属性:
可选的属性:
- name 属性提供了名称/值对中的名称。HTML 和 XHTML 标签都没有指定任何预先定义的 <meta> 名称。通常情况下,您可以自由使用对自己和源文档的读者来说富有意义的名称。
- “keywords” 是一个经常被用到的名称。它为文档定义了一组关键字。某些搜索引擎在遇到这些关键字时,会用这些关键字对文档进行分类。
- “description” 它为文档定义了描述信息。比如用户百度搜索“京东”是就会显示京东网站的描述信息。
- 如果没有提供 name 属性,那么名称/值对中的名称会采用 http-equiv 属性的值。
- http-equiv 属性为名称/值对提供了名称。并指示服务器在发送实际的文档之前先在要传送给浏览器的 MIME 文档头部包含名称/值对。
- 当服务器向浏览器发送文档时,会先发送许多名称/值对。
- 所有服务器都至少要发送一个:content-type:text/html。这将告诉浏览器准备接受一个 HTML 文档。
- 只有浏览器可以接受这些附加的头部字段,并能以适当的方式使用它们时,这些字段才有意义。
- 使用带有 http-equiv 属性的 <meta> 标签时,服务器将把名称/值对添加到发送给浏览器的内容头部。例如:
<meta http-equiv="charset" content="iso-8859-1">
<meta http-equiv="expires" content="31 Dec 2008">
// 这样发送到浏览器的头部就应该包含:
content-type: text/html
charset:iso-8859-1
expires:31 Dec 2008
-
content 属性提供了名称/值对中的值。
- 该值可以是任何有效的字符串。
- content 属性始终要和 name 属性或 http-equiv 属性一起使用。
-
scheme 属性用于指定要用来翻译属性值的方案。
- 此方案应该在由 <head> 标签的 profile 属性指定的概况文件中进行了定义。
2.3. style 标签
- 标签用于为 HTML 文档定义样式信息。
- 在 style 中规定在浏览器中如何呈现 HTML 文档。
- type 属性是必需的,定义 style 元素的内容。唯一可能的值是 “text/css”。
- style 元素位于 head 部分中。
- 如需链接外部样式表,请使用 <link> 标签。
<style type="text/css">
h1 {<b> color:red<br> }
p {<b`> color:blue<br> }
</style>
2.4. link 标签
link标签常用的场景有两种:作为网页图标标签;链接外部CSS
- ref属性:规定当前文档与被链接文档之间的关系
- href属性:规定被链接文档的位置
- type属性:规定被链接文档的 MIME 类型(“Multipurpose Internet Mail Extensions” 多用途互联网邮件扩展)
2.4.1 作为网页图标标签
<link rel="icon" href="favicon.ico">
2.4.2 链接外部CSS
<link rel="stylesheet" type="text/css" href="css/base.css">
扩展:
样式一共有三种使用方法:
1.外部样式表
当样式需要被应用到很多页面的时候,外部样式表将是理想的选择。使用外部样式表,你就可以通过更改一个文件来改变整个站点的外观。
<head> <link rel="stylesheet" type="text/css" href="mystyle.css"> </head>
2.内部样式表
当单个文件需要特别样式时,就可以使用内部样式表。你可以在 head 部分通过 <style> 标签定义内部样式表。
<head> <style type="text/css"> body {background-color: red} p {margin-left: 20px} </style> </head>
3.内联样式
当特殊的样式需要应用到个别元素时,就可以使用内联样式。使用内联样式的方法是在相关的标签中使用样式属性。样式属性可以包含任何 CSS 属性。以下实例显示出如何改变段落的颜色和左外边距。
<p style="color: red; margin-left: 20px"> This is a paragraph </p>
2.5. base 标签
标签为页面上的所有链接规定默认地址或默认目标。通常情况下,浏览器会从当前文档的 URL 中提取相应的元素来填写相对 URL 中的空白。使用 <base> 标签可以改变这一点。浏览器随后将不再使用当前文档的 URL,而使用指定的基本 URL 来解析所有的相对 URL。这其中包括<a>、<img>、<link>、<form> 标签中的 URL。
必选属性:
可选属性:
2.6. script 标签
- 用于定义客户端脚本,比如 JavaScript。
- script 元素既可以包含脚本语句,也可以通过 src 属性指向外部脚本文件。
- 必需的 type 属性规定脚本的 MIME 类型。
- JavaScript 的常见应用时图像操作、表单验证以及动态内容更新。
- 假如此元素内部的代码没有位于某个函数中,那么这些代码会在页面被加载时被立即执行。<frameset> 标签之后的脚本会被忽略。
必选属性:
可选属性:
引入外部js文件:
<script src="js/exercise.js"></script>
编写内部js代码:
<script>
var num = 7;
var sum = 0;
while(num<117) {
if(num%3==0&&num%2==0) {
sum +=num;
num++;
}
document.write('7到117之间所有能被3整除的偶数的和为:'+sum);</script>
三.body标签
3.1 标题标签<h1~h6>
标题标签一共有六级标签,h1-h6,在标题标签中,文字的大小并不是我们关心的一点,因为大小可以在标签的属性中改变,而我们关心的是标签的语义,我们使用的标签都是语义化标签。
六级标题中,h1最重要,页面中一般只有一个h1标签。
一般页面中标题标签只是用h1,h2,h3。(h3以下的基本不用)
3.2 段落标签<P>
段落标签,表示内容中的一个自然段。
在html中,字符间的空格和回车只会当成一个空格解析。
(br标签来表示换行。 hr可以生成一个水平线。)
<p> 第一段第一行<br /><hr />第二行</p>
<p> 第二段</p>
3.3 需要转义才可以使用的部分字符
“ < >” 这样的符号必须通过转译才可以使用
实体 & 实体的名字;
< < > >
空格
版权符号 ©
<p>
a<b>c </b>
a<b>c
空 格
</p>
3.4 图片标签Img<img>
使用img标签来向网页中引入一个外部图片
标签 属性:
src:设置一个外部图片路径 D:\1537705655682.jpg
alt:可以当图片不能显示时,对图片的描述,搜索引擎通过alt属性识别不同的图片
width,height:可以用来修改图片的高度和宽度,纵横比不变
<img src=" D:\1537705655682.jpg" alt=" 实验图片" />
3.5 内联框架<iframe>
使用内联框架可以引入一个外部页面
开发中不建议使用内联框架
属性:
src:外部路径
width,height,name
<iframe> src="xinjian.html"</iframe>
3.6 超链接<a>
超链接,可以让我们从一个页面跳转到另一个页面
1. 使用a标签来创建一个超链接
2. 链接地址设置为#,点击超链接后会自动跳转到当前页面的顶部
3. 可以在内联框架中打开超链接,将target命名为内联框架的名字name即可
4. 属性:
href:指向我们链接跳转的目标地址
target:指定打开链接的位置,target="_blank就会新打开一个网页
name 属性规定锚(anchor)的名称,可以实现页面内的跳转,不需要滚动条
<a href="http://www.baidu.com " target="_blank">跳转百度 </a>
<!--
发送电子邮件的超链接, 点击之后可以打开我们计算机中默认的邮件软件
-->
<a href="mailto:1220614922@qq.com"> 联系我们</a>
3.7 不赞成使用的标签和属性
在 HTML 4 中,有若干的标签和属性是被废弃的。被废弃(Deprecated)的意思是在未来版本的 HTML 和 XHTML 中将不支持这些标签和属性。
这里传达的信息很明确:请避免使用这些被废弃的标签和属性!
标签 | 描述 |
---|---|
<center> | 定义居中的内容。 |
<font> 和 <basefont> | 定义 HTML 字体。 |
<s> 和 <strike> | 定义删除线文本 |
<u> | 定义下划线文本 |
属性 | 描述 |
align | 定义文本的对齐方式 |
bgcolor | 定义背景颜色 |
color | 定义文本颜色 |
1.background-color 属性为元素定义了背景颜色;而style属性淘汰了**“旧的”bgcolor属性**
2.font-family、color 以及 font-size 属性分别定义元素中文本的字体系列、颜色和字体尺寸,style 属性淘汰了旧的 <font> 标签。
3.text-align 属性规定了元素中文本的水平对齐方式,style 属性淘汰了旧的 “align” 属性。
3.8 表格标签<table>
表格由<table> 标签来定义。每个表格均有若干行(由 <tr> 标签定义),每行被分割为若干单元格(由 <td> 标签定义)。字母 td 指表格数据(table data),即数据单元格的内容。数据单元格可以包含文本、图片、列表、段落、表单、水平线、表格等等。
例如:
<table border="1">
<tr>
<td>row 1, cell 1</td>
<td>row 1, cell 2</td>
</tr>
<tr>
<td>row 2, cell 1</td>
<td>row 2, cell 2</td>
</tr>
</table>
在浏览器下显示为
row 1, cell 1 | row 1, cell 2 |
row 2, cell 1 | row 2, cell 2 |
表格的边框
如果不定义边框属性,表格将不显示边框。有时这很有用,但是大多数时候,我们希望显示边框。
使用边框属性来显示一个带有边框的表格:
<table border="1">
<tr>
<td>Row 1, cell 1</td>
<td>Row 1, cell 2</td>
</tr>
</table>
表格的表头
表格的表头使用 <th> 标签进行定义。
大多数浏览器会把表头显示为粗体居中的文本:
<table border="1">
<tr>
<th>Heading</th>
<th>Another Heading</th>
</tr>
<tr>
<td>row 1, cell 1</td>
<td>row 1, cell 2</td>
</tr>
<tr>
<td>row 2, cell 1</td>
<td>row 2, cell 2</td>
</tr>
</table>
在浏览器显示如下:
Heading | Another Heading |
---|---|
row 1, cell 1 | row 1, cell 2 |
row 2, cell 1 | row 2, cell 2 |
表格里的标签
表格 | 描述 |
---|---|
<table> | 定义表格 |
<caption> | 定义表格标题。 |
<th> | 定义表格的表头。 |
<tr> | 定义表格的行。 |
<td> | 定义表格单元。 |
<thead> | 定义表格的页眉(长表格)。 |
<tbody> | 定义表格的主体(长表格)。 |
<tfoot> | 定义表格的页脚(长表格)。 |
<col> | 定义用于表格列的属性。 |
<colgroup> | 定义表格列的组。 |
tips: 有一些表格非常长,分为头部,主题,底部(thead tbody tfoot)分别代表三个部分,都是table的子标签,直接写到table中,tr写在这些标签当中。
如果表格中没有写tbody,浏览器会自动加上tbody,并将所有tr放在tbody中,通过table > tr (父标签访问子标签的形式)无法选中tr 因为table 的子元素是tbody tbody的子元素才是tr
3.9 列表标签
html中创建列表有无序列表,有序列表,定义列表三种。
无序列表
无序列表是一个项目的列表,此列项目使用粗体圆点(典型的小黑圆圈)进行标记。
无序列表始于 <ul> 标签。每个列表项始于 <li>。
<ul>
<li>Coffee</li>
<li>Milk</li>
</ul>
浏览器显示如下:
- Coffee
- Milk
列表项内部可以使用段落、换行符、图片、链接以及其他列表等等。
有序列表
同样,有序列表也是一列项目,列表项目使用数字进行标记。
有序列表始于 <ol> 标签。每个列表项始于 <li> 标签。
<ol>
<li>Coffee</li>
<li>Milk</li>
</ol>
浏览器显示如下:
- Coffee
- Milk
列表项内部可以使用段落、换行符、图片、链接以及其他列表等等。
定义列表
自定义列表不仅仅是一列项目,而是项目及其注释的组合。
自定义列表以 <dl> 标签开始。每个自定义列表项以 <dt> 开始。每个自定义列表项的定义以 <dd> 开始。
<dl>
<dt>Coffee</dt>
<dd>Black hot drink</dd>
<dt>Milk</dt>
<dd>White cold drink</dd>
</dl>
浏览器显示如下:
-
Coffee
Black hot drink
-
Milk
White cold drink
定义列表的列表项内部可以使用段落、换行符、图片、链接以及其他列表等等。
三.HTML格式化
文本格式化
标签 | 描述 |
---|---|
<b> | 定义粗体文本。 |
<big> | 定义大号字。 |
<em> | 定义着重文字。 |
<i> | 定义斜体字。 |
<small> | 定义小号字。 |
<strong> | 定义加重语气。 |
<sub> | 定义下标字。 |
<sup> | 定义上标字。 |
<ins> | 定义插入字。 |
<del> | 定义删除字。 |