【前端从入门到入土系列】HTML基础语法
HTML
HTML介绍
什么是html
超文本标记语言(Hyper Text Markup Language),标准通用标记语言下的一个应用。HTML 不是一种编程语言,而是一种标记语言,是网页制作所必备的。
超文本:功能比文本强大, 就是指页面内可以包含图片、链接,甚至音乐、程序等非文字元素。
标记语言: 语法由标签组成
html渲染的速度由不同厂商的浏览器决定的,chrome市场份额最大。
我们按照web标准(html+css+javascript)编写代码,不同的浏览器引擎就会展示相同的效果。
学习HTML的核心是标签
广义H5说法
狭隘H5
广义H5
- 广义的 HTML5 是 HTML5 本身 + CSS3 + JavaScript 。
- 这个集合有时称为 HTML5 和朋友,通常缩写为 HTML5 。
- 虽然 HTML5 的一些特性仍然不被某些浏览器支持,但是它是一种发展趋势。
- HTML5 MDN 介绍:
https://developer.mozilla.org/zh-CN/docs/Web/Guide/HTML/HTML
概述
HTML5 的新增特性主要是针对于以前的不足,增加了一些新的标签、新的表单和新的表单属性等。
这些新特性都有兼容性问题,基本是 IE9+ 以上版本的浏览器才支持,如果不考虑兼容性问题,可以大量使用这些新特性。
HTML结构和基本语法
HTML的结构
文档结构介绍:
- 文档声明:用于声明当前HTML的版本,这里的
<!DOCTYPE html>
是HTML5的声明 - html根标签:除文档声明以外,其它内容全部要放在根标签html内部
- 文档头部配置:head标签,是当前页面的配置信息,外部引入文件, 例如网页标题、字符集等
- 文档显示内容:body标签,里边的内容会显示到浏览器页面上
- 文档声明:用于声明当前HTML的版本,这里的
HTML语法规范
扩展名是html或者htm
html标签不区分大小写
1 | <p></P> |
html由头(head)和体(body)组成
标签是可以嵌套的,标签里面可以放标签
标签一般由起始标签开始,结束标签终止(成对出现)。但是如果标签不修饰内容,可以在标签里结束。
1 | <p id="1">hello</p> |
标签属性
武器 (标签) 属性(标签属性)
攻击之爪 +6点攻击力
倚天剑 +50点攻击力 15%暴击
- 属性是属于标签的,修饰标签,让标签有更多的效果
- 属性一般定义在起始标签里面。
1 | <font color='red'>hello</ font> |
- 属性一般以 属性=属性值的形式存在
- 属性值一般用
''
或者“ ”
括起来。 不加引号也是可以的.(不建议使用)
HTML快速入门
需求: 使用HTML展示hello sz85...
字体颜色为红色
步骤:
- 创建工程
- 创建HTML
- 定义 font标签
- 设置font标签的color属性为red
使用idea创建
- File -> new -> Module
- 选择static web
- 设置Module的名称
创建html文件
- 在static web项目上右键 -> New -> Html File
- 设置HTML文件名称
编写HTML代码
1 |
|
使用vscode创建
- 新建文件,
!
就可以创建html文件 - 安装open in browser插件,右键
open in default browser
在默认浏览器打开
使用浏览器访问
- 把鼠标移动到右上角,会浮动出来浏览器按钮,点击“Chrome”按钮,使用Chrome浏览器打开当前网页
- 在浏览器上看到效果
HTML常用的标签
排版标签
- 字体标签
1 | <font color="字体颜色" size="字体大小(1~7)" face="字体风格">哈哈</font> |
- 标题标签
1 | <hn>标题<hn> n取值1~6, 1是一级标题, 2是二级标题... |
- 段落标签
1 | <p>段落</p> |
注意:段落之间自动进行换行
- 粗体标签
1 | <b>内容</b> |
- 斜体标签
1 | <i>内容</i> |
- 水平线/下划线标签
1 | <hr/> |
- 换行标签
1 | <br/> |
Ctrl+Shift+/
: 注释快捷键
图片标签
- img标签中的img其实是英文image的缩写, img标签的作用, 就是告诉浏览器我们需要显示一张图片
1 | 语法: |
- 示例代码
1 | <!--掌握: src属性: 图片的路径; width属性:指定图片的宽度 ; height属性: 指定图片的高度; |
width和height一般只需要设置一个值,另一个会等比例缩放,这样可以让图片不变形。
路径问题
- 相对路径
以盘符开始的全路径
- 相对路径
相对路径就是每次都从.html文件所在的文件夹开始查找, 我们称之为相对路径
同级
同级就是”图片”和”.html文件”存储在同一个文件夹中
格式: src=”QRCode.jpg”
含义: 在.html
文件所在的文件夹中查找名称叫做QRCode.jpg的图片
上级
上级就是和存”储代码的文件夹”在同一个文件夹中
格式: src="../img/QRCode.jpg"
含义:在.html文件所在的文件夹中找到这个文件夹的上一级文件夹, 然后再在上一级文件夹中找到名称叫img的文件夹中的名字叫做QRCode.jpg的图片, 其中../
代表找到当前文件夹的上一级文件夹
列表标签
无序列表
- 语法
1 | <ul type="类型"> |
- 示例代码
1 | <!--二 无序列表 ul--> |
注意点
ul标签和li标签是一个整体,一般情况下ul标签和li标签都是一起出现, 不会单个出现.
li要定义在ul里面
应用场景
新闻列表
商品列表
导航条,菜单
有序列表
- 语法
1 | <ol type="类型" start="起始索引"> |
- 示例代码
1 | <!--一,有序列表 ol |
超链接标签
超链接标签的基本使用
- 超链接标签的作用: 就是用于控制页面与页面(服务器资源)之间跳转的
1 | 超链接标签的格式: |
- 示例代码
1 | <!--href属性: 跳转的路径(可以是本地的也可以是远程的) |
假链接
就是点击之后不会跳转的链接我们称之为假链接.在企业开发前期, 其它界面都没有写出来, 那么我们就不知道应该跳转到什么地方, 所以就只能使用假链接来代替. 当项目后期其它界面都已经完成时再将假链接体会为真链接
1 | <a href="#">这是一个假链接</a> |
链接分类
1 | <h4>1.外部链接</h4> |
表格标签
基本表格
语法
- 表格:由
<table>
标签定义; - 行:每个表格里有若干行
<tr>
; - 单元格:每行被分割为若干单元格
<td>
。- 单元格里可以包含文本、图片、列表、段落、表单、水平线、表格等
单元格合并
- 删除要合并的格子, 只留一个(最前方的那一个)
- 如果是行合并设置rowspan, 如果是列合并设置colspan, 几个合并 值就是几
1 |
|
表格容易错的地方
1 | <!--1.就算只有1行1列, td不能少--> |
表单标签
- 通过form来定义: 包裹表单项、指定向服务器提交的路径、提交方式
1 | <form> |
常用属性
action:提交路径,默认是当前页面,#
method:提交方式,常用的是get和post. 默认就是get
get和post区别
1 | 1. 携带数据的位置:get是在地址栏后面携带的,post是在http协议的请求体中携带的 |
form的常见子标签
input:输入域, 通过type属性来指定类型
select :选择列表
textarea:文本域
input:输入类型
1 | <input type="xxx"/> |
type属性,类型是由属性(type)定义的
- text(默认类型) 文本框
- password 密码框
- radio 单选框 只有当name属性相同的单选框,才是同一组单选框才能够实现单选效果
- checkbox 复选框 同一组多选框,也应该具备相同的name属性
- file 文件选择框
- date 日期选择框
- hidden 隐藏域:向服务器提交数据,但是不在页面上展示出来
- submit 提交按钮:内置提交表单的功能
- button 普通按钮:不内置任何功能,我们需要在学习js之后再给他绑定点击事件
- reset重置按钮:内置重置表单的功能
select :选择菜单
1 | <select name=""> |
- option:选择菜单的选项
注意:
- name在select里面指定
- value在option里面指定
- option定义在select里面
textarea:文本域
1 | <textarea rows="20" cols="30" name="introduce"></textarea> |
属性:
- cols列
- rows:行
通用属性
1.name
1. 如果表单项的数据需要提交给服务器,那么他就必须具备name属性
2. 2. 同一组单选、多选框需要具备相同的name
2.value
1. 按钮的value属性就是按钮上的文字
2. 输入框、密码框、文件选择框、日期选择框等等的value属性的值,就是你所输入的值
3. 单选和多选框都需要指定value
设置默认值
- text,password:通过value属性
1 | 用户名: <input type="text" name="username" value="zs"/> |
- radio checkbox:通过checked属性
1 | 性别: <input type="radio" name="sex" value="1"/>男 |
- select :在option上通过selected属性
1 | 籍贯: <select name="address"> |
- textarea:直接在标签体中写
1 | 自我介绍: <textarea rows="5" cols="20" name="introduce">哈哈哈</textarea><br/> |
其它属性
- readonly属性:是否只读,可以让用户不修改这个输入框的值,就使用value属性设置默认值
- disabled属性: 是否可用,如果某个输入框有disabled那么它的数据不能提交到服务器通常是使用在有的页面中,让一些按钮不能点击
- placeholder属性: 输入框中的提示信息
- 单选和多选框也可以设置默认选中,通过checked属性
- option标签通过selected属性设置默认选中
完整代码
1 |
|
扩展-html案例
回到顶部
锚一般指船锚,是锚泊设备的主要部件。铁制的停船器具,用铁链连在船上,把锚抛在水底,可以使船停稳。
在html里面锚点的作用: 通过a标签跳转到指定的位置.
1 |
|
图片链接
1 |
|
详情和概要标签
利用summary标签来描述概要信息, 利用details标签来描述详情信息. 默认情况下是折叠展示, 想看见详情必须点击
1 | <details> |
字符实体
网页不认识连续的多个空格,只认识一个,想实现多个空格,用&ndsp;
其他的字符实体:
HTML5新特性
语义化标签 (★★)
以前布局,我们基本用 div 来做。div 对于搜索引擎来说,是没有语义的
1 | <div class=“header”> </div> |
发展到了HTML5后,新增了一些语义化标签,这样的话更加有利于浏览器的搜索引擎搜索,也方便了网站的seo(Search Engine Optimization,搜索引擎优化),下面就是新增的一些语义化标签
<header>
头部标签<nav>
导航标签<article>
内容标签<section>
定义文档某个区域<aside>
侧边栏标签<footer>
尾部标签
媒体标签
音频标签audio
语法
<audio>
:用于播放声音,比如音乐或其他音频流,是 HTML 5 的新标签。- 当前
<audio>
元素支持三种视频格式: 尽量使用 mp3格式 - 提示:可以在开始标签和结束标签之间放置文本内容,这样老的浏览器就可以显示出不支持该标签的信息
- 常用属性有
属性名 | 取值 | 默认值 | 描述 |
---|---|---|---|
src |
URL | 音频资源的路径 | |
autoplay |
autoplay |
autoplay |
音频准备就绪后自动播放 |
controls |
controls |
controls |
显示控件,比如播放按钮。 |
loop |
loop |
loop |
表示循环播放 |
preload |
preload |
preload |
音频在页面加载时进行预加载。 如果使用 “autoplay”,则忽略该属性。 |
浏览器支持:
兼容写法:
由于各个浏览器的支持情况不同,所以我们会有一种兼容性的写法,这种写法了解一下即可
1 | < audio controls="controls" > |
上面这种写法,浏览器会匹配audio标签中的source,如果支持就播放,如果不支持往下匹配,直到没有匹配的格式,就提示文本
示例
1 |
|
- 效果
视频标签video
语法
<video>
标签用于播放视频,比如电影片段或其他视频流,是 HTML 5 的新标签。当前
<video>
元素支持三种视频格式: 尽量使用 mp4格式提示:可以在开始标签和结束标签之间放置文本内容,这样老的浏览器就可以显示出不支持该标签的信息
常用属性
属性名 | 取值 | 默认值 | 描述 |
---|---|---|---|
src |
URL | 要播放的视频的 URL。 | |
width |
设置视频播放器的宽度。 | ||
height |
设置视频播放器的高度。 | ||
autoplay |
autoplay |
autoplay |
视频在就绪后自动播放。 |
controls |
controls |
controls |
显示控件,比如播放按钮。 |
loop |
loop |
loop |
如果出现该属性,则当媒介文件完成播放后再次开始播放。 |
preload |
preload |
preload |
视频在页面加载时进行加载。 如果使用 “autoplay”,则忽略该属性。 |
muted |
muted |
muted |
规定视频的音频输出应该被静音。 |
poster |
URL | 视频下载时显示的图像,或者视频播放前显示的图像。 |
浏览器支持:
兼容写法:
由于各个浏览器的情况不同,所以我们会有一种兼容性的写法,这种写法了解一下即可
1 | <video controls="controls" width="300"> |
上面这种写法,浏览器会匹配video标签中的source,如果支持就播放,如果不支持往下匹配,直到没有匹配的格式,就提示文本
示例
1 |
|
- 效果
小结
- 音频标签和视频标签使用方式基本一致
- 浏览器支持情况不同
- 谷歌浏览器把音频和视频自动播放禁止了
- 我们可以给视频标签添加 muted 属性来静音播放视频,音频不可以(可以通过JavaScript解决)
- 视频标签是重点,我们经常设置自动播放,不使用 controls 控件,循环和设置大小属性
新增的表单元素 (★★)
在H5中,帮我们新增加了很多类型的表单,这样方便了程序员的开发
注:不同的浏览器支持上有差异,有些浏览器依然不支持
课堂案例:在这个案例中,熟练了新增表单的用法
案例代码:
1 | <!-- 我们验证的时候必须添加form表单域 --> |
常见输入类型
1 | text password radio checkbox button file hidden submit reset image |
新的输入类型
类型很多,我们现阶段重点记忆三个: number
tel
search