Html5基础语法

Lán2022年10月28日
大约 12 分钟

Html5基础语法

特性

空白折叠现象

文字和文字之间的多个空格、换行会被折叠成一个空格

标签“内壁”和文字直接的空格会被忽略

转义字符

转义字符意义
<小于号
>大于号
 空格(不会被折叠)
©版权符号©

基础语法

html注释

html的注释语法如下
<!-- -->

HTML5骨架

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="...">
    <title>Document</title>
</head>
<body>

</body>
</html>

文档类型声明DTD

HTML文件第一行必须是DTD(Document Type Definition,文档类型声明)
不写DTD会引发浏览器的一些兼容问题
不同版本的HTML有不同的DTD写法
html5: <!DOCTYPE html>

title标签

title标签用来设置网页的标题,文字会显示在浏览器的标签栏上

title也是搜索引擎收录网站时显示的标题,为了吸引用户点击,合理设置title是必要的

字符集

<meta charset="UTF-8" >

网页关键词和页面描述

合理设置网页的网页的关键词和页面描述,也是SEO的重要手段

SEO(Search Engine Optimization,搜索引擎优化)利用搜索引擎的规则提高网站在有关搜索引擎内的自然排名,让网站在搜索引擎的结果中内占据领先地位,获得品牌收益

使用meta标签设置网页关键词和描述,name属性非常关键,用来设置meta的具体功能

<meta name="Keywords" content="JAVA,前端,Python,大数据">

<meta name="Description" content="描述......">

div标签

div是英语division“分割”的缩写,顾名思义,<div></div>标签对用来将相关的内容组合到一起,以和其他内容分割,使文档结构更清晰。

比如,网页的头部要放到一个<div></div>标签对中,轮播图也要放到一个<ddiv></div>标签对中,文章内容也要放到一个<ddiv><d/div>标签对中

<div></div>是最常见的HTML标签,因为它可以结合CSS使用,实现网页的布局,这种布局形式叫做“DIV+CSS”。

<div></div>像是一个容器,什么都可以容纳,因此工程师 也习惯称呼<div></div>为“盒子”。

<div>标签可以添加class属性表示“类名”,类目服务于CSS

标题和段落标签

h系列标签表示“标题”语义,h是headline的意思

标签语义
hl一级标题
h2二级标题
h3三级标题
h4四级标题
h5五级标题
h6六级标题

搜索引擎非常看重<h1></h1>标签的内容,应该将重点内容放到<h1></h1>中,比如网页的logo等。

<h1></h1>标签一般只能放置一个,否则会被搜索引擎视为作弊。
提示:实际开发中,也会出现多个<h1></h1>标签的情况,只是不推荐。

段落标签

<p></p>标签表示段落标签,p是英语paragraph的意思

任何段落都要放到<p></p>标签中,因为HTML中即使代码换行了,页面显示效果也不会换行,必须写到<p></p>中。

<p></p>标签中不能嵌套h系列标签和其他p标签。

列表标签

type属值意义
<ul></ul>无序列表
<ol></ol>有序列表
<dl></dl定义列表

无序列表使用<ul></ul>标签(unordered list),每个列表项都是<li></li>标签(list item)

<ul>
  <li>aaaa</li>
  <li>bbbb</li>
  <li>cccc</li>
</ul>

HTML规定,<ul>的子标签只能是<li>标签

无序列表有type属性,可以定义前导符号的样式,但是在HTML5中已经被废弃,建议使用CSS替代

type属值意义
disc默认值,实心圆
circle空心圆
square实现方块

有序列表使用<ol></ol>标签(ordered list),每个列表项都是<li></li>标签(list item)

<ol>
  <li>aaaa</li>
  <li>bbbb</li>
  <li>cccc</li>
</ol>

<li>标签不能散着放,它必须是<ol>标签或者<ul>标签的子标签

<ol>的子标签只能是<li>标签

<li>标签中可以放任何东西,所以列表可以嵌套

ol标签可以设置type属性,用来设置编号的类型

type属值意义
a表示小写英文字编号
A表示大写英文字母编号
i表示小写罗马数字编号
I表示大写罗马数字编号
1表示数字编号(默认)

<ol>标签的start属性

start属性值必须是一个整数,指定了列表编号的起始值

此属性的值应为阿拉伯数字,尽管列表条目的编号类型type属性可能指定为了罗马数字编号等其他类型的编号

<ol>标签的reversed属性

reversed属性指定列表中的条目是否是倒序排列的

reversed属性不需要值,只需要写reversed单词即可,这是HTML5的全新特性

<ol reversed>
</ol>

定义列表definition list、数据项date term、数据定义data definition,需要逐条给出定义描述的列表,就是定义列表

<dl>
    <dt>北京</dt>
    <dd>政治中心</dd>
    <dt>上海</dt>
    <dd>经济中心</dd>
    <dt>深圳</dt>
    <dd>经济特区</dd>
</dl>

<dl>是定义列表标签,内容交替出现<dt>、<dd>标签

也允许dt和dd不交替出现,而是分别处于不同的定义列表中

<dl>
    <dt>北京</dt>
    <dd>政治中心</dd>
</dl>
<dl>
    <dt>上海</dt>
    <dd>经济中心</dd>
</dl>
<dl>
    <dt>深圳</dt>
    <dd>经济特区</dd>
</dl>

使用什么标签,不应该看样式,应该看语义

只要语义上有“解释说明”含义的文字,一为列表形态,应该使用定义列表

多媒体与语义化标签

图片标签<img>

<img>标签用来在网页中插入图片

<img src="images/g.jpg">

图片本质上没有被插入到网页中,只是被引入到了网页中,所以将来要将图片也一起上传到服务器上,将图片复制到项目文件中,即可整体上传

<img>标签的alt属性

alt属性是alternate“替代品”的缩写,它是对图像的文本描述,不是强制性的

<img src="images/gugong.jpg" alt="故官角楼">

如果由于某种原因无法加载图像,浏览器会在页面上显示alt属性中的备用文本

供视力不方便的朋友使用的网页朗读器,也会朗读alt中的文本

<img>标签的width、height属性

width、height属性分别设置宽度和高度,单位是像素,但是不需要写单位

<img src="images/gugong.jpg" alt="故宫角楼" width="388">

如果省略其中一个属性,则表示按原始比例缩放图片

网页上支持的图片格式

格式说明
.bmpwindows画图软件默认保存的格式,位图
.gif支持动画(比如表情包)
.jpeg(.jpg)有损压缩图片,用于照片
.png便携式网络图像,用于logo、背景图形等,支持透明和半透明
.svg矢量图片
.webp最新的压缩算法非常优秀的图片格式

超级连接<a>标签(anchor)

<a href="b.hmtl">go to b.html</a>

<a>标签的title属性用户设置鼠标的悬停文本

 <a href="b.hmtl" title="b.html">go to b.html</a>

将<a>标签的target属性设置为blank,即可在新标签页中打开网页,HTML4代,blank之前有一个下划线

 <a href="b.hmtl" target="blank">go to b.html</a>

页面内锚点

较长的页面,可以适当的给h系列标签添加id属性,它将成为页面的“锚点”

<h1 id="wuxi">无锡美景</h1>

当网址后面添加#时,页面将自动滚动到锚点所在位置,其他页面的超级链接,可以链接到指定锚点

<a href="lvyou.html#wuxi">查看无锡美景</a>

内置锚点#top返回顶部

<a href="#top">返回顶部</a>

指向exe、zip、rar等文件格式的链接,将自动成为下载链接

<a href="1.zip">下载</a>

有mailto:前缀的链接是邮件链接,系统将自动打开Email相关软件

<a href="mailto:me@qq.com">发邮件</a>

有tel:前缀的链接是电话链接,系统将自动打开拨号盘

<a href="tel:10086">打电话</a>

音频和视频

在浏览器中插入音频需要使用<audio>标签,兼容到IE9,controls属性显示播放控件。标签对中是对不兼容audio标签的浏览器的显示文字,常用的音频格式是mp3和ogg格式。

<audio controls src="音频地址" autoplay loop>
    抱歉,你的浏览器不支持audio标签,请升级浏览器
</audio>

声明autoplay属性,音频会自动播放,常用的浏览器为了不打扰用户,可能会不允许自动播放音乐,必须让用户手动点击之后才能播放

声明loop属性,将循环播放音频

在浏览器中插入视频需要使用<video>标签,兼容到IE9

<video controls src="音频地址" autoplay loop>
    抱歉,你的浏览器不支持video标签,请升级浏览器
</video>

区块标签

HTML5推出了众多新的区块标签

区块标签说明
<section>文档的区域,语义比div大
<article>文档的核心文章内容,会被搜索引擎主要抓取
<aside>文档的非必要相关内容,比如广告等
<nav>导航条
<header>页头
<main>网页核心部分
<footer>页脚

语义标签

<span>标签是文本中的“区块”标签,本身没有任何特殊的显示效果,可以结合CSS来丰富样式

<b>(加粗)、<u>(下划线)、<i>(倾斜)标签充满浓浓的“样式”意味,已经被CSS替代,但是在网页中也可以表示需要强调的文本

<strong>(代表特别重要的文字)、<em>(代表强调文字)、<mark>(代表一段需要被高亮的文字)标签均表示强调语义

<figure>元素代表一段独立的内容,与说明<figcaption>配合使用,它是一个独立的引用单元,比如建议读者拓展视野的图片等,当这部分转移到附录中或者其他页面时不会影响到主体

表单标签

所有HTML表单都以一个<form>元素开始,action属性表示表单要提交到的后台程序的网址,method属性表示表单提交的方式,有get或post

<form action="login.php" method="post">
    <p>
        请输入手机号码:
        <input type="text" value="123" placeholder="输入手机号码">
    </p>
    <p>
        请选择性别:
         <label>
            <input type="radio" name="sex" value="1" id="" checked> 男
        </label>
        <label>
            <input type="radio" name="sex" value="2" id=""> 女
        </label>
    </p>
    <p>
        请选择爱好:
        <label>
            <input type="checkbox" name="aihao" value="足球"> 足球
        </label>
        <label>
            <input type="checkbox" name="aihao" value="篮球"> 篮球
        </label>
        <label>
            <input type="checkbox" name="aihao" value="羽毛球"> 羽毛球
        </label>
    </p>
    <button>我是一个普通按钮</button>
    <input type="button" value="我是一个普通按钮2">
    <input type="submit" value="提交按钮">
    <input type="reset" value="重置按钮">
</form>

使用type属性值被设置为text的<input>元素可以创建单行文本框,它是一个单标签,value属性表示已经填写好的值,placeholder属性表示提示文本,将以浅色文字写在文本框中,并不是文本框中的值,disabled属性表示用户不能与元素交互,即“锁死”

使用type属性值被设置为radio的<input>元素可以创建单选按钮,互斥的单选按钮应该设置它们的name为相同值,单选按钮要有value属性值,向服务器提交的就是value值,单选按钮如果加上了checked属性,表示默认被选中,label标签用来将文字和单选按钮进行绑定,用户单击文字的时候也视为点击了单选按钮,在HTML4时代,label标签是通过for属性和单选按钮的id属性进行绑定的

使用type属性值被设置为checkbox的<input>元素可以创建复选框,同组复选框应该设置它们的name为相同值,复选框要有value属性值,向服务器提交的就是value值

使用type属性值被设置为password的<input>元素可以创建密码框

<select>标签表示下拉菜单,<option>是它内部的选项,其中向服务器提交的就是value值

<textarea></textarea>表示多行文本框,rows和cols属性,用于定义多行文本框的行数和列数

表单中常见三种按钮,它们也都是input标签,type属性值不同

type属性值按钮类型
button普通按钮,同<button></button>
submit提交按钮
reset重置按钮

更丰富的input种类

type属性值控件
color颜色选择控件
date、time日期、时间选择控件
email电子邮件输入控件
file文件选择控件
number数字输入控件
range拖拽条
search搜索框
url网址输入控件

<datalist>控件可以为输入框提供一些备选项,当用户输入的内容与备选项文字相同时,将会显示智能感应

<form action="1.php" method="post">
    <p>
        请输入省份:
        <input type="text" list="province-list">
        <datalist id="province-list">
            <option value="浙江"/>
            <option value="江苏"/>
            <option value="福建"/>
        </datalist>
    </p>
</form>

表格标签

<table>(table)、<tr>(table row)和<td>(table data)标签组成,为了让表格能够显示边框,<table>标签通常有border属性,<caption>是表格的标题,它常常作为<table>的第一个子元素出现

<thead> 标签定义表格的表头。该标签用于组合 HTML 表格的表头内容。

thead 元素应该与 tbody 和 tfoot 元素结合起来使用。

tbody 元素用于对 HTML 表格中的主体内容进行分组,而 tfoot 元素用于对 HTML 表格中的表注(页脚)内容进行分组。

<th>是“标题小格”,可以替代<td>的作用,表示标题小格

colspan属性用来设置td或者th的列跨度,rowspan属性用来设置td或者th的行跨度

上次编辑于: 2022/10/30 19:58:54
贡献者: lanjd