什么是HTML?
HTML(HyperText MarkUp Language)
超文本标记语言,通过使用标记来描述文档结构和表现形式的一种语言,由浏览器进行解析,然后把结果显示在网页上,通俗的讲它就是服务器发送的字符串到浏览器,通过浏览器能解析的规则用HTML来描述, 它是网页构成的基础,你见到的所有网页都离不开HTML,所以学习HTML是基础中的基础
- HTML语言是一种标记语言,不需要编译,直接由浏览器执行
- HTML文件是一个文本文件,包含了一些HTML元素, HTML文件是一个文本文件,包含了一些HTML元素,标签等.
- HTML文件必须使用html或htm为文件名后缀
- HTML是大小写不敏感的,HTML与html是一样的
- html标签都是由<??></??>得形势存在的,<??>表示这个标签的开始</??>表示这个标签的结束,中间这是这个标签的内容.
Html和CSS、js的关系
如果把Html比作一个赤裸裸的人,那么css就是给这个人穿上华丽的服装,js就是可以把这个人动起来。
HTML是网页内容的载体。内容就是网页制作者放在页面上想要让用户浏览的信息,可以包含文字、图片、视频等。
CSS样式是表现(外观控制)。就像网页的外衣。比如,标题字体、颜色变化,或为标题加入背景图片、边框等。所有这些用来改变内容外观的东西称之为表现。
JavaScript是用来实现网页上的特效效果。如:鼠标滑过弹出下拉菜单。或鼠标滑过表格的背景颜色改变。还有焦点新闻(新闻图片)的轮换。可以这么理解,有动画的,有交互的一般都是用JavaScript来实现的。
知道了概念性的知识,下面来看看Html的组成部分;
第一个HTML
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>index</title>
</head>
<body>
<h1>Hello World</h1>
</body>
</html>
Doctype
Doctype
定义html解释标准,告诉浏览器使用什么样的html或xhtml规范来解析html文档,也就是用哪一种规则来将html变成用户看到的内容。
有和无的区别:
BackCompat
:标准兼容模式未开启(或叫怪异模式[Quirks mode]、混杂模式)CSS1Compat
:标准兼容模式已开启(或叫严格模式[Standards mode/Strict mode])
这个属性会被浏览器识别并使用,但是如果你的页面没有DOCTYPE的声明,那么compatMode默认就是BackCompat,这也就是恶魔的开始 – 浏览器按照自己的方式解析渲染页面,那么,在不同的浏览器就会显示不同的样式。如果你的页面添加了那么,那么就等同于开启了标准模式,那么浏览器就得老老实实的按照W3C的标准解析渲染页面,这样一来,你的页面在所有的浏览器里显示的就都是一个样子了,总之而言就是要告诉浏览器,你要用标准的规则来来解析html,而不是用自己浏览器的规则来解析html。
如下就是列举出来的部分解析html的规则。
head部分
Meta(metadata information)
提供有关页面的元信息,例:页面编码、刷新、跳转、针对搜索引擎和更新频度的描述和关键词
1、页面编码
<meta charset="UTF-8"> #指定编码类型为UTF-8
2、刷新和跳转
<meta http-equiv="refresh" content="5"> #指定每5秒刷新一次
<meta http-equiv="refresh" Content="1;|Url=http://www.cnblogs.com/luotianshuai/" /> #指定1秒之后跳转页面至另一个网页
3、关键字
关键字的作用:一般是让爬虫之类的收录程序,当他们在爬你的网站的时候,如果你有关键字,那么他们会优先把关键字收录到他们的记录中,比如百度:如果他们收录之后,他们搜索你的关键字的时候,就能找到咱们的网站。
<meta name="keywords" content="卧槽 ,啪啪啪、 嘿嘿嘿, 爬我呀, 爬我呀" />
4、描述
例如cnblog里的就是一个描述:
<meta name="description" content="博客园是一个面向开发者的知识分享社区。自创建以来,博客园一直致力并专注于为开发者打造一个纯净的技术交流社区,推动并帮助开发者通过互联网分享知识,从而让更多开发者从中受益。博客园的使命是帮助开发者用代码改变世界。">
5、X-UA-Compatible
X-UA-Compatible 这个是IE8特有的,知道即可,因为做前端的同学都很害怕IE因为他们问题比较多各个版本问题很诡异,当IE8的时候微软想把各个版本的统一,那么这个参数就出现了,他为了向下兼容,如下的代码如果使用IE8的时候他会以IE7的模式运行。
<meta http-equiv="X-UA-Compatible" content="IE=EmulateIE7" />
Title
网页头部信息
如:加上<title>test1</title>
效果:
Link
网页头部图标
如加上:
<link rel="shortcut icon" href="favicon.ico" /> #href是图片的路径+名字
效果:
Style
- 1、在当前文件中写Css样式
- 2、在其他文件中写Css样式类似python的模块导入的方式把Css样式导入到当前文件中使用
导入CSS类似python中导入模块类似
<link rel="stylesheet" href="css/css_model.css" />
Script
- 1、在当前文件中写JS
- 2、在其他文件中写JS类似python的模块导入的方式把JS导入到当前文件中使用
可能细心的同学发现了,之前不是说所有标签都是<???></???>的形势形势吗?,但是也有只有一个的<??>就结束的了,这样浏览器在解析得时候认为这个标签没有结束是有问题的,不做解析或者解析报错吗?
这位同学问得非常好! 浏览器会很智能的把有错误的标签内容不解析不做显示,也不会报错,但是<??/> 这种标签不是有问题的,这叫
自闭合
标签,<??></??>这种叫闭合
标签,这种形势浏览是能够解析的,自闭合标签<??>标准写法是要写成<??/>在最后”>”要结束的时候前面加个”/“,这是更规范得写法,让阅读代码的人一眼就能明白.
body部分
1、body里面分为两类标签:块级标签和内联标签,块级标签占用的是整行,内联标签占用的他所使用的实际大小如下图:
块级别标签&内联标签:
2、特殊符号特殊处理
如<h1>
这是个标签,如果我只想在页面上这个<h1>
字符串,就是不想让浏览器解释这个字符的样式, 这里就需要做特殊处理了,特殊符号有自己定的规则如以下:
HTML原代码 | 显示结果 | 描述 |
---|---|---|
< |
< | 小于号或显示标记 |
> |
> | 大于号或显示标记 |
& |
& | 可用于显示其它特殊字符 |
" |
“ | 引号 |
® |
® | 已注册 |
© |
© | 版权 |
™ |
™ | 商标 |
  |
半个空白位 | |
  |
一个空白位 | |
|
不断行的空白 |
p标签和br标签
<p></p>
标签:段落标签,每一对p标签为一段,代码如下:
<p>段落段落段落段落段落段落段落段落段落段落段落段落段落</p>
<p>段落段落段落段落段落段落段落段落段落段落段落段落段落</p>
<p>段落段落段落段落段落段落段落段落段落段落段落段落段落</p>
<p>段落段落段落段落段落段落段落段落段落段落段落段落段落</p>
<p>段落段落段落段落段落段落段落段落段落段落段落段落段落</p>
<p>段落段落段落段落段落段落段落段落段落段落段落段落段落</p>
<br/>
标签:换行标签;有一个<br/>
为一个换行,看下面的代码:
<p>段落段落段落段落段落段落段<br/>落段落段落段落段落段落段落</p>
<p>段落段落段落段落段落段落段落段落段落段落段落段落段落</p>
<p>段落段落段落段落段落段落段落段落段落段落段落段落段落</p>
<p>段落段落段落段落段落段落段落段落段落段落段落段落段落</p>
<p>段落段落段落段落段落段落段落段落段落段落段落段落段落</p>
<p>段落段落段落段落段落段落段落段落段落段落段落段落段落</p>
a标签
<a></a>
标签用来跳转和锚
1、跳转:
默认如果在<a><a/>
标签中不设置那么他仅仅在浏览器中显示文本,如下面代码:
<a>不能跳转</a>
<a href="https://liangxiansen.github.io/">能跳转</a>
点击后将跳转到指定的连接地址~,在当前页面打开的!
如果让他用一个新的标签中打开连接地址代码如下:
<a target="_blank" href="https://liangxiansen.github.io/">跳转到我的博客</a>
2、锚:
锚的作用是类似于读书时候的书签,当你你点击这个“锚”=“书签”,的时候就跳转到指定的位置
<a href="#a2">跳转至第二章</a>
<!--在标签里,ID是这个标签的唯一的值,我们在做锚的时候指定他的ID即可-->
<!--<a href="#a2"> 上面的代码href="#要跳转的标签"-->
<div id="a1" style="height:700px;">第一章</div>
<div id="a2" style="height:700px;">第二章</div>
上面的代码中,如果点击了书签之后,那么就会跳转到id=a2的书签的位置!
h标签
标题标签,1~6级标题,代码:
<h1>H1</h1>
<h2>H2</h2>
<h3>H3</h3>
<h4>H4</h4>
<h5>H5</h5>
<h6>H6</h6>
效果:
img标签
img标签用于在页面上插入图片,img标签图片跳转的时候去边框,IE显示有问题
<!--插入图片-->
<img src="皮卡丘.jpeg" style="height: 500px;width: 500px;">
Select标签
未分组select标签:
<select>
<option value="1">上海</option>
<option value="2">北京</option>
<option value="3" selected="selected">广州</option>
<!--这里默认是广州因为这里设置selected="selected" 这样页面刚加载完,显示默认选择的就是广州-->
</select>
分组后select标签:
<select>
<optgroup label="河北省">
<option>石家庄</option>
<option>邯郸</option>
</optgroup>
<optgroup label="山西省">
<option>太原</option>
<option>平遥</option>
</optgroup>
</select>
设置select标签长度:
<select size="2">
<option value="1">上海</option>
<option value="2">北京</option>
<option value="3">广州</option>
</select>
form表单
1、单选框:
<!--第一中情况不互斥-->
男<input type="radio"/>
女<input type="radio"/>
<hr/>
<!--对于input标签来说只要,radio的name值相同,那么他们就会互斥-->
男<input type="radio" name="gender"/>
女r<input type="radio" name="gender"/>
效果:
2、复选框:
娱乐<input type="checkbox"/>
时尚<input type="checkbox"/>
音乐<input type="checkbox" checked="checked"/>
<!--这里加一个标识checked="checked,为默认选择"-->
效果:
3、text&password输入框:
<!--标准的输入框-->
<input type="text"/>
<!--密码的输入框(输入的内容是保密的)-->
<input type="password"/>
效果:
4、文件上传:
<input type="file"/>
5、多行文本框:
个性签名:<textarea style="width: 200px; height: 100px"></textarea>
效果:
6、Label标签:
使用label标签,可以在点击文字的时候将鼠标焦点转移到input内容上,帮助用户选择.
<div>
<label for="name_1">
姓名:<input id="name_1" type="text"/>
</label>
<label for="name_2">
婚否:<input id="name_2" type="checkbox"/>
</label>
</div>
效果:
7、提交表单:form
<form action="www.baidu.com" method="POST" >
<!--这里action是告诉html提交到哪里-->
<!--method是通过什么方法去action指定的地址-->
<p>用户名:<input type="text" name="username"/></p>
<p>密码:<input type="password" name="password"/></p>
<!--这里的name属性是当咱们将数据提交到指定的action地址时,服务端接收到的数据后如何去辨别数据-->
<!--服务端得到数据后,就是一个字典类型,把这里的用户的输入的内容复制给name作为为一个字典key:value形势-->
<input type="submit" value="提交"/>
<input type="button" value="按钮"/>
<!--这里提交按钮才有反映,submit是用来提交当前的表单的,当然可以有多个表单-->
<!--但是,这个submit需要写入表单内,那么提交的时候是提交的当前表单-->
<!--button按钮是没有任何功能的,需要给他添加上动作(js)-->
</form>
效果:
序号标签
<!--项目序号-->
<ul>
<li>line1</li>
<li>line2</li>
<li>line3</li>
</ul>
<ol>
<li>line1</li>
<li>line2</li>
<li>line3</li>
</ol>
<dl>
<dt>北京市</dt>
<dd>海淀区</dd>
<dd>东城区</dd>
<dd>朝阳去</dd>
<dt>湖南省</dt>
<dd>长沙</dd>
</dl>
效果:
表格
<!--表格,表格边框1-->
<table border="1">
<tr>
<!--列合并居中,colspan指的是合并多少个-->
<th colspan="3">标题一</th>
<th>标题二</th>
</tr>
<tr>
<td>内容一</td>
<td>内容二</td>
<td>内容三</td>
<td>内容三</td>
</tr>
<tr>
<td>内容一</td>
<!--行合并居中-->
<td rowspan="2">内容二</td>
<td>内容三</td>
<td>内容三</td>
</tr>
<tr>
<td>内容一</td>
<td>内容三</td>
<td>内容三</td>
</tr>
<tr>
<td>内容一</td>
<td>内容二</td>
<td>内容三</td>
<td>内容三</td>
</tr>
</table>
<!--水平线-->
<hr />
<!--表格,表格边框1-->
<table border="1">
<thead>
<!--表头-->
<tr>
<th>标题一</th>
<th>标题二</th>
<th>标题三</th>
<th>标题四</th>
</tr>
</thead>
<tbody>
<!--表格主体-->
<tr>
<td>第一列</td>
<td>第二列</td>
<td>第三列</td>
<td>第四列</td>
</tr>
<tr>
<td>第一列</td>
<td>第二列</td>
<td>第三列</td>
<td>第四列</td>
</tr>
</tbody>
</table>
效果:
ifram标签
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title></title>
</head>
<body>
<h1>汽车之家</h1>
<!--框架嵌入-->
<iframe style="width: 100%;height: 2000px;" src="http://autohome.com.cn"></iframe>
</body>
</html>
效果:
fieldset标签
<fieldset>
<legend>协议</legend>
请仔细阅读协议内容:
</fieldset>
效果: