HTML基础

HTML

超文本标记语言: Hyper Text Markup Language


基本结构

<html>
    <head>
        <title>页面标题</title>
    </head>
    <body>
        页面内容 
    </body>
</html>

HTML文档声明

<!DOCTYPE html>

<!DOCTYPE html>: html5的文档声明
作用: 告诉浏览器当前网页版本。浏览器便于渲染页面。
位置: 必须写在整个页面代码的第一行。


页面编码

根据地区不同,会有不同的编码格式,如:gb2312、gbk、utf-8等。
当文件存储时就会指定一种编码格式,在读取文件时也需要以相同的编码格式读取。否则就会乱码。

乱码原因:
1.保存时文字和编码格式不匹配,出现乱码(无法补救)
选择不合适的编码格式进行存储,例如 "中国",选择了 "iso-8859-1"(欧洲使用的文字)进行编码存储。

img

会出现如下乱码:

查看文本出现??则代表,保存时编码不匹配出现乱码,无法补救。
img

2.读取时文字和编码格式不匹配,出现乱码(可以补救)

如下图,文本内容是中文以GBK编码保存,选择了非GBK编码格式读取,就会出现乱码。再次选择GBK编码格式读取,就可以正常显示。
img


指定编码格式,让浏览器以指定的编码格式解析网页,以免乱码。

<head>
    <meta charset="UTF-8">
</head>

如下图,以UTF-8保存页面,设置浏览器以GBK进行解码,没有出现乱码的原因是,live server插件告诉浏览器以UTF-8进行解码,因此没有出现乱码
img

如果打开源文件,则会出现乱码
img

如果以UTF-8 BOM进行编码,即使指定了meta charset="GBK",也不会出现乱码。vscode默认以UTF-8 BOM进行编码。


页面语言

作用:
1.让浏览器显示对应的翻译提示
2.有利于搜索引擎优化

设置语言告诉浏览器当前页面的语言,以便浏览器解析。

<html lang="en">: 设置为页面语言是英语

设置格式: 语言-国家/地区

例如: zh-CN zh-TW

语言代码
国家/地区代码

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <title>页面标题</title>
</head>

<body>
    <div>
        页面内容 I Love You
    </div>

</body>

</html>

设置页面为英语,并且页面中存在英语,那么浏览器就会出现翻译按钮,lang='en'为英语,就会展示英语翻译为中文。
img

设置long='ko'韩语

img


HTML标准结构

<!DOCTYPE html>
<html lang="zh-CN">
    <head>
        <meta charset="UTF-8">
        <title>页面标题</title>
    </head>

    <body>
        页面内容
    </body>
</html>

修改vscode默认生成html标准结构中的lang语言

img


排版标签

<h1>~<h6>: 标题
<p>: 段落
<div>: 用于整体布局

img

<body>
    <h1>标题1</h1>
    <h2>标题2</h2>
    <h3>标题3</h3>
    <h4>标题4</h4>
    <h5>标题5</h5>
    <h6>标题6</h6>
    <p>段落</p>
    <p>段落</p>
</body>

注意事项:
1.h1最好在整个页面中只写一个,h2~h6可以写多个,常用h1~h3
2.h1~h6不能嵌套使用,即h1下不能再使用h1~h6
3.p标签很特殊,它里面不能有h1~h6、p、div标签


HTML语义化标签

什么是语义化,例如,h1~h6: 标题的含义,p: 段落的含义,等等。

HTML标签的默认样式效果不重要,其含义最重要。标签的效果可以通过css进行设置,而标签的含义则无法改变。

语义化的好处:
1.代码可读性强,含义明了。
2.有利于SEO搜索引擎优化。搜索引擎不可能把页面所有信息都收录,只收录重要的文字。
3.方便设备解析,比如,屏幕阅读器,盲人阅读器。


块级元素和行内元素

img

<body>
    <marquee>marquee块级元素</marquee>
    <h1>h块级元素</h1>
    <h1>h块级元素</h1>
    <p>p块级元素</p>
    <p>p块级元素</p>
    <input>
    <input>
    <span>span行内元素</span>
    <span>span行内元素</span>
</body>

块级元素: 独占一行的元素
行内元素:不独占一行的元素

规则1: 块级元素中能写块级元素和行内元素(几乎什么都能写)
规则2: 行内元素中只能写行内元素,不能写块级元素
特殊规则: h标签中不能嵌套
特殊规则: p标签中不能写块元素

注意:
a标签是行内元素,但是它能包含除自身以外的任何元素,也能包含块元素。
img
a标签中有div,浏览器解析时没有甩到a标签外面,仍在a标签中。


规则1中块级元素中几乎什么都可以写,但也有例外,如h标签不能写h标签

<body>
    <h1>
        h1元素
        <h1>
            h1元素中写h1
        </h1>
    </h1>
</body>

上面代码中块级元素h1元素中写了h1元素,浏览器识别到下一个h1元素时,就会认为上一个h1元素结束,会自动补全h1结束标签,导致浏览器识别标签范围错乱,对于调试和开发不利。

img


违反规则2的影响:

<body>
    <span>
        span元素
        <div>span中的块元素</div>
    </span>
    <span>第二个span</span>
</body>

上面代码中,span中写了div块级元素,F12选中第一个span元素时包含了第二个span,导致浏览器识别标签范围错乱,对于调试和开发不利。
img

废弃标签marquee,不建议使用,可以使用css代替。


文本标签

作用: 用于包裹词汇和短语。
通常写在排版标签中。
排版标签更加宏达,一般放大段落,文本标签更加微观,放一些词语短句。
文本标签一般都是行内元素。

常用的文本标签:

em: 注重阅读的文字,斜体效果。
strong: 重要的文字,比em语义还要重要,加粗效果。
span: 没有语义,是一个通用的文本标签。

<body>
    <p>
        能不能行只有<em>勇敢去做</em>才知道自己
    </p>
    <p>
        <strong>2025年是往后10年最好的一年</strong>
    </p>
</body>

img


不常用的文本标签

标签 语义
cite 引用或参考文献
dfn 定义术语
delins 删除的文本与插入的文本
subsup 下标文本与上标文本
code 代码
samp 从正常的上下文中,将某些内容提取出来,例如,标识设备输出
kbd 键盘文本,标识文本是通过键盘输入的,经常用在与计算机相关的手册中
abbr 缩写或首字母缩写,最好配上title属性
bdo 更改文本方向,要配合dir属性,可选值: ltr(默认值) 或 rtl
var 标记变量,可与code标签一起使用
small 附属细则, 例如包括版权,法律文本。很少使用
b 摘要中的关键字、评论中的产品名称。很少使用
i 本意是人物的思想活动、所说的话等,现在多用于呈现字体图标
u 与正常内容有反差的文本,例如,错误单词或句子 很少使用
q 短引用 很少使用
blockquote 长引用,有缩进效果 很少使用 (块元素)
address 地址信息 (块元素)
<body>
    <p>
        <cite>cite:作品标题 黄家驹发行新歌《真的爱你》</cite>
    </p>
    <p>
        <dfn>dfn: 专业术语</dfn>
    </p>
    <p>
        <del>marquee</del>已经被废弃使用了,本商品价格为: <ins>100</ins>元
    </p>
    <p>
        水的方程式是H<sub>2</sub>O,8的二次方表示: 8<sup>2</sup>
    </p>
    <p>
        js弹出警告代码: <code>alert('hello world')</code>不使用code标签: alert('hello world')
    </p>
    <p>
        收到钱支付宝会发出语音提醒: <samp>支付宝到账100元</samp>
    </p>
    <p>
        mac强刷页面的快捷键: <kbd>shift + command + r</kbd>
    </p>
    <p>
        mac强刷页面的快捷键: <kbd>shift + command + r</kbd>
    </p>
    <p>
        <abbr title="前端基础语言">HTML</abbr>是超文本标记语言
    </p>
    <p>
        你是年少的欢喜,这句话反过来写是:<bdo dir="rtl">你是年少的欢喜</bdo> <code>ltr</code>:left to right | <code>rtl</code>:right to left
    </p>
    <p>
        js中定义变量a: <code>var <var>a</var> = 1;</code>
    </p>
    <p>
        <small>版权声明: 本站资源不得传播</small>
    </p>
    <p>
        购买的新款<b>华为pure</b>很好用
    </p>
    <p>
        大爷说: <i>卧槽,这年轻人</i>
    </p>
    <p>
        hello的单词拼错了: <u>helo</u>
    </p>
    <p>
        屈原曾经说过<q>路漫漫其修远兮,吾将上下而求索</q>
    </p>
    <p>
        孙悟空曾经说过:
    <blockquote>
        曾经有一份真挚的感情摆在我的面前我没有珍惜,等我失去的时候才追悔莫及,人间最痛苦的事莫过于此,你的剑在我的咽喉上刺下去吧,不用在犹豫了!如果上天能给我一次再来一次的机会,我会对哪个女孩说三个字:我爱你,如果非要在这份爱上加一个期限,我希望是一万年!
    </blockquote>
    blockquote是块元素
    </p>
    <p>
        你家的地址是
    <address>北京市朝阳区</address>
    address是块元素
    </p>
</body>

img

上面的标签中blockquote和address是块元素
常用的元素有: h1~h6 div p span strong em


图片标签

属性:
src: 指定图片路径
alt: 图片描述
width: 指定图片宽度,只调整width时默认等比放缩
height: 指定图片高度,只调整height时默认等比放缩

尽量不同时修改图片的宽高。

alt的作用:
1.有利于ESO搜索
2.浏览器不支持图片时,alt的内容会显示在浏览器中
img

<body>
    <img src="小狗.jpg" alt="这是一只狗">
</body>

路径

相对路径

./: 当前文件所在的目录,可以省略
例如: ./小狗图片.jpg省略为小狗图片.jpg./a/风景.jpg省略为a/风景.jpg
img

../: 当前文件所在目录的上一级

img

绝对路径

本地绝对路径: 从盘符出发
网络绝对路径: 从网络服务器出发 例如: https://n.sinaimg.cn/xxx.jpg

有些网络图片做了防盗链,例如微信公众号中的图片,通过浏览器可以打开,如果放到自己的项目中,则不会展示

<body>
    <img src="https://mmbiz.qpic.cn/sz_mmbiz_jpg/ByIYcET99NSLgjkvVicv1ibM746t2tKTendcwhVEDPmS8icAko0ia1wia8o5ycAZ4G7yc11DSGnGtKz5nePSDgJYFOQ/640?wx_fmt=jpeg&tp=wxpic&wxfrom=5&wx_lazy=1&wx_co=1" alt="">
</body>

img

常见的图片格式

jpg: 扩展名.jpg或.jpeg,是一种有损压缩格式
主要特点: 支持的颜色丰富,占用空间小,不支持透明,不支持动态。
使用场景: 对图片没有极高要求,网站宣传,产品图片,具有大量图片网站,使用jpg不会占用较大空间,访问量大的网站避免网络消耗,应使用空间小的jpg。

png: 扩展名.png,是一种无损压缩格式,能够更高质量保存图片
主要特点: 支持的颜色丰富,占用空间略大,支持透明,不支持动态。
使用场景: 1.想让图片有透明背景 2.更高的图片质量,例如,公司logo,重要配图等。

bmp: 扩展名.bmp,不进行压缩的格式,能够更高质量保存图片
主要特点: 支持的颜色丰富,占用空间极大,不支持透明,不支持动态。
使用场景: 对图片要求极高的场景,如大型游戏

img

gif: 扩展名.gif,仅支持256种颜色,色彩呈现不是很完整。
主要特点: 支持颜色较少,支持简单透明背景,支持动态。
使用场景: 网页中动图。

webp: 扩展名.webp,是谷歌推出的一种格式。
主要特点: 具有上述特点,也支持动态。有些浏览器对webp兼容性不好。 一旦使用必须解决兼容性问题。
使用场景: 网页各种图片。

京东解决webp兼容性,图片网络路径为https://xx/xx.jpg.webp
网站检测IE浏览器是否兼容webp,如果不兼容js把图片的.webp后缀删除,则图片变为.jpg格式。

base64: base64编码,是一种将二进制数据编码为文本的算法。要通过浏览器打开。
使用方式: 编码后的文本放到img标签的src属性中。
使用场景: 图片较小的图片,减少浏览器对src中的资源发起网络请求。


超链接

跳转页面

<a>: 超链接

常用属性:
href: 指定链接地址
target: 指定打开方式,_blank: 新标签打开,_self: 当前标签打开

a标签是行内元素,但是它能包含除自身以外的任何元素,也能包含块元素。
img
a标签中有div,浏览器解析时没有甩到a标签外面,仍在a标签中。


<body>
    <a href="#" target="_blank">新标签打开</a>
    <a href="#" target="_self">当前标签打开
        <div>a中包含div</div>
    </a>
    <a href="#">
        去百度
        <a href="#">去京东</a>
    </a>
</body>

img
a标签嵌套a标签会被浏览器甩出。


a标签中写img:
img

跳转文件

<body>
    <!-- 浏览器可以打开的文件 -->
    <a href="./resources/小狗图片.jpg" target="_blank">打开图片</a>
    <a href="./resources/动图.gif" target="_self">打开动图</a>
    <a href="./resources/文本.txt" target="_self">打开文本</a>

    <!-- 浏览器打不开的文件,会触发下载,指定_blank会在新标签下载 -->
    <a href="./resources/压缩包.zip" target="_blank">打开压缩包</a>

    <!-- 浏览器可以打开,强制触发下载 使用download属性,指定_blank无效,仍在当前页面下载 -->
    <a href="./resources/文本.txt" download="指定下载文件名" target="_blank">强制下载文本</a>
</body>

img

a标签的href属性可以指定各种资源,当浏览器打不开指定的文件时会触发下载。
浏览器可以打开资源,也可以触发下载,通过download属性

download: 可以指定下载时的文件名和后缀,没有设置值时,默认下载文件名是文件名

<a href="./resources/文本.txt" download>强制下载文本</a>
<a href="./resources/文本.txt" download="指定下载文件名.mp4">强制下载文本</a>

指定文件名后缀:
img

使用download属性,指定target="_blank"无效,仍在当前页面下载


跳转到锚点

锚点: 网页中的一个标记点

方式:
1.a元素name属性
2.元素id属性

<body>

    <!-- 使用name属性作为锚点跳转,必须是a标签作为锚点 -->
    <a href="#dog">小狗</a>
    <!-- 使用id属性作为锚点跳转 -->
    <a href="#view">风景</a>
    <!-- 如果匹配到多个锚点,只跳转到第一个锚点 -->
    <a href="#move-pic">动图</a>
    <br>
    <br>
    <br>
    <a name="dog"></a>
    <h2>小狗</h2>
    <img src="test_path/小狗图片.jpg" alt="">

    <h2 id="view">风景</h2>
    <img src="test_path/a/风景.jpg" alt="">

    <h2 id="move-pic">动图</h2>
    <img src="resources/动图.gif" alt="">
    <h2 id="move-pic">动图二</h2>
    <img src="resources/动图.gif" alt="">


    <div style="height: 1000px;"></div>
</body>

img

<a name="dog"></a>: a标签name属性作为锚点,定位不是很准确。由于a标签有自身的样式占据空间,因此定位不是很准确,如下动图。
id="view": id属性作为锚点,定位更准确。h5最新最新标准推荐使用id作为锚点。

小狗使用id作为锚点,风景使用a标签的name作为锚点,id定位更准确:
img

注意点:
1.具有href属性为a元素为超链接,具有name属性的a元素是锚点,具有id属性的元素是锚点,也包括a标签。
2.id属性区分大小写,id属性值不能以数字开头。


锚点回到顶部/a标签刷新页面

<body>
    <div>这是页面顶部</div>
    <div>这是页面顶部</div>
    <div>这是页面顶部</div>
    <div style="height: 1000px;"></div>
    <a href="#">回到顶部</a>
    <a href="">刷新页面</a>
</body>

img


其他页面跳转到锚点

<!-- 跳转到其他页面锚点 -->
<a href="./19_超链接_跳转锚点.html#move-pic">跳转到其他页面锚点</a>

img


点击a标签执行js脚本

<a href="javascript:alert(555);">点击弹窗</a>

img


a标签唤起指定应用

    <a href="tel:12345">唤起打电话</a>
    <a href="mailto:12345@qq.com">唤起邮件</a>
    <a href="sms:12345">唤起短信</a>

img

img

超文本真正含义

超文本: 是一种组织信息的方式,通过超链接将不同空间的文字,图片等各种信息组织在一起,能从当前阅读内容,跳转到超链接所指向的内容。
这里的内容可以是页面,文件,锚点,应用。

列表

ol有序列表: order list
ul无序列表: unorder list
dl自定义列表: definition list

li列表项: list item

dldt: 自定义标题: definition title
dldd: 自定义描述: definition description

<h2>有序列表</h2>
<ol>
    <li>列表项目1</li>
    <li>列表项目2</li>
    <li>列表项目3</li>
</ol>

<h2>无序列表</h2>
<ul>
    <li>列表项目</li>
    <li>列表项目</li>
    <li>列表项目</li>
</ul>

<h2>自定义列表</h2>
<dl>
    <dt>标题1</dt>
    <dd>标题1描述1</dd>
    <dd>标题1描述2</dd>
    <dt>标题2</dt>
    <dd>标题2描述1</dd>
</dl>

img

有序列表ol

概念: 有序或侧重顺序的列表

<ol>
    <li>列表项目1</li>
    <li>列表项目2</li>
    <li>列表项目3</li>
</ol>

无序列表ul

概念: 无序或不侧重顺序的列表

<ul>
    <li>列表项目</li>
    <li>列表项目</li>
    <li>列表项目</li>
</ul>
<ul>
    <li>item1
        <div>内容</div>
    </li>
</ul>

当鼠标移动到li任意元素上时,就会选中li

img

列表的嵌套

概念: 一个列表项的内容可以嵌套其他结构完整的列表

<ul>
    <li>
        上海
        <ul>
            <li>浦东</li>
            <li>徐汇
                <ul>
                    <li>美罗城</li>
                    <li>恒隆广场
                        <dl>
                            <dt>美食</dt>
                            <dd>烤鸭</dd>
                            <dd>绿茶</dd>
                            <dt>乐园</dt>
                            <dd>水族馆</dd>
                        </dl>
                    </li>
                    <li>徐家汇公园</li>
                </ul>
            </li>
        </ul>
    </li>
    <li>列表项目</li>
    <li>列表项目</li>
</ul>

img

注意:
li要写在uldl中,dl中也能写li,但不是不推荐。
li中嵌套其他列表时要写ul或者ol或者dl,不能只写li

自定义列表dl

概念: 一个包含术语标题以及术语描述的列表。

<dl>
    <dt>标题1</dt>
    <dd>标题1描述1</dd>
    <dd>标题1描述2</dd>
    <dt>标题2</dt>
    <dd>标题2描述1</dd>
</dl>

img

表格

表格结构由表格标题、表格头部、表格主体、表格脚注(可不写)组成。

涉及到的标签:
caption: 表格标题 caption
thead: 表格头部 table head
tbody: 表格主体 table body
tfoot: 表格脚注 table footer

tr: 表格行 table row
th: 表格表头 table header 表格头部中使用
td: 表格单元格 table data 表格主体、表哥脚注中使用

img
img
img
img

<!-- 表格 -->
<table border="1">
    <!-- 表格标题 -->
    <caption>学生信息表</caption>
    <!-- 表格头部 -->
    <thead>
        <tr>
            <th>姓名</th>
            <th>性别</th>
            <th>年龄</th>
            <th>民族</th>
            <th>政治面貌</th>
        </tr>
    </thead>
    <!-- 表格主体 -->
    <tbody>
        <tr>
            <td>张三</td>
            <td>男</td>
            <td>18</td>
            <td>汉</td>
            <td>共青团员</td>
        </tr>
        <tr>
            <td>李四</td>
            <td>女</td>
            <td>19</td>
            <td>汉</td>
            <td>共青团员</td>
        </tr>
        <tr>
            <td>王五</td>
            <td>男</td>
            <td>20</td>
            <td>汉</td>
            <td>共青团员</td>
        </tr>
        <tr>
            <td>赵六</td>
            <td>女</td>
            <td>20</td>
            <td>汉</td>
            <td>党员</td>
        </tr>
    </tbody>
    <!-- 表格脚注 -->
    <tfoot>
        <tr>
            <td></td>
            <td></td>
            <td></td>
            <td></td>
            <td>合计4</td>
        </tr>
    </tfoot>
</table>

img


表格常用属性

<table>常用属性

<table border="3" width="500" height="300" cellspacing="1" align="center">

border: 设置表格边框宽度,以及添加单元格的边框

当前border<1时,边框无效。
当前border>1时,单元格边框仍然保持1px,表格边框随之增加。
img

width: 设置表格宽度,单元格宽度会随表格宽度和单元格内容宽度自适应。

img

height: 设置表格主体中的行高。表格头部和表格脚注的行高不会随表格高度自适应。

img

cellspacing: 设置表格单元格(单元格边框)之间的间距。

img

设置宽度和高度并不等于真实的表格宽高,表格会根据单元格文字空间限制下限,超过下限则不会改变。
例如,都设置为1不生效,因为文字空间会撑开表格大小。
img

如下示例,表格高度设置300,由于表格头部设置400,所以表格真实高度一定是大于300的。
img

align: 整个表格在页面居中

img


<caption>常用属性

caption元素中添加borderwidthheightcellspacing属性不生效,但可以使用css样式调整。


<thead>常用属性

<thead height="50" align="left" valign="bottom">

thead元素中添加borderwidthcellspacing属性不生效,但height可以生效。
img

align: 设置表格头部对单元格文字水平居中方式,默认center水平居中。

值有: left、center、right
img

valign: 设置表格头部对单元格文字垂直居中方式,默认middle垂直居中。verticel align 垂直对齐
值有: top、middle、bottom
img


<tbody>常用属性

<tbody height="100" align="right" valign="bottom">

tbody元素中添加borderwidthcellspacing属性不生效,但height可以生效。和thead常用属性一样。

align: 设置单元格文字水平居中方式。值有: left、center、right,默认left水平居中
valign: 设置单元格文字垂直居中方式,默认middle垂直居中。verticel align 垂直对齐。值有: top、middle、bottom,默认middle。

设置tbody高度不生效的原因:
因为设置<table>高度就是在设置<tbody>的高度
<tbody>的自身大概高度 = 表格<table>元素中的高度 - <thead>表格头部高度 - <tfoot>表格脚注高度
因此<tbody>高度设置值至少大于<tbody>的自身大概高度

img


<tfoot>常用属性

<tfoot height="100" align="right" valign="bottom">

tfoot元素中添加borderwidthcellspacing属性不生效,但height可以生效。和thead常用属性一样。

align: 设置单元格文字水平居中方式。值有: left、center、right,默认left水平居中
valign: 设置单元格文字垂直居中方式,默认middle垂直居中。verticel align 垂直对齐。值有: top、middle、bottom,默认middle。


<tr>常用属性

<tr height="50" align="right" valign="bottom">

tr元素中添加bordercellspacing属性不生效,但width,height可以生效。

align: 设置单元格文字水平居中方式。值有: left、center、right,默认left水平居中
valign: 设置单元格文字垂直居中方式,默认middle垂直居中。verticel align 垂直对齐。值有: top、middle、bottom,默认middle。
height: 设置单元格高度,整行随之改变


<th>/<td>常用属性

<td width="50" height="50" align="right" valign="bottom">

th/td元素中添加bordercellspacing属性不生效,但width,height可以生效。

align: 设置单元格文字水平居中方式。值有: left、center、right,默认left水平居中
valign: 设置单元格文字垂直居中方式,默认middle垂直居中。verticel align 垂直对齐。值有: top、middle、bottom,默认middle。
width: 设置单元格宽度,整列随之改变
height: 设置单元格高度,整行随之改变


总结

总结各个元素属性:
table: width height align cellspacing border
caption: 无
thead: height align valign
tbody: height align valign
tfoot: height align valign
tr: height align valign
th/td: width height align valign rowspan colspan

注意:
1.<table>的border属性可以控制表格边框,但并不能控制单元格的边框。
2.给某个<th>/<td>设置宽度后,他们所在那一列的宽度就确定了。
3.给某个<th><td>设置高度后,他们所在那一行的高度就确定了。


单元格的跨行与跨列

colspan: 设置单元格跨列数 column span 列跨度
rowspan: 设置单元格跨行数 row span 行跨度

<table border="1" cellspacing="0">
    <caption>课程表</caption>
    <thead>
        <tr>
            <th>项目</th>
            <th colspan="5">上课</th>
            <th colspan="2">活动与休息</th>
        </tr>
    </thead>
    <tbody>
        <tr>
            <td>星期</td>
            <td>星期一</td>
            <td>星期二</td>
            <td>星期三</td>
            <td>星期四</td>
            <td>星期五</td>
            <td>星期六</td>
            <td>星期七</td>
        </tr>
        <tr>
            <td rowspan="4">上午</td>
            <td>语文</td>
            <td>数学</td>
            <td>英语</td>
            <td>英语</td>
            <td>物理</td>
            <td>数学竞赛</td>
            <td rowspan="4">休息</td>
        </tr>
        <tr>
            <td>数学</td>
            <td>语文</td>
            <td>化学</td>
            <td>英语</td>
            <td>物理</td>
            <td>数学竞赛</td>
        </tr>
        <tr>
            <td>语文</td>
            <td>数学</td>
            <td>英语</td>
            <td>英语</td>
            <td>物理</td>
            <td>数学竞赛</td>
        </tr>
        <tr>
            <td>语文</td>
            <td>数学</td>
            <td>英语</td>
            <td>英语</td>
            <td>物理</td>
            <td>数学竞赛</td>
        </tr>
        <tr>
            <td rowspan="2">下午</td>
            <td>语文</td>
            <td>数学</td>
            <td>英语</td>
            <td>英语</td>
            <td>物理</td>
            <td>数学竞赛</td>
            <td rowspan="2">休息</td>
        </tr>
        <tr>
            <td>语文</td>
            <td>数学</td>
            <td>英语</td>
            <td>英语</td>
            <td>物理</td>
            <td>数学竞赛</td>
        </tr>
    </tbody>
</table>

img


常用标签补充

<!-- 换行标签: br -->
<a href="#">百度</a>
<br>
<a href="#">京东</a>

<!-- 分割线标签: hr -->
<h2>第一章</h2>
<p>小马过河的故事讲的是 xxx</p>
<hr>
<h2>第二章</h2>
<p>马白王子 xxx</p>

<!-- 按原文显示标签: pre -->
    <div>
    I   Love   You
        I Love I
            You
    </div>
    <!-- 按原文显示标签: pre -->
    <pre>
    I   Love   You
        I Love I
            You
    </pre>

img

br: 换行
hr: 分割线
pre: 按原文显示(一般用于代码显示,如层级有缩进就会保留缩进)

注意:
1.不能用br增加行距,应使用css样式。
2.hr的语义是分隔,如果不想要语义,只想画一条水平线应使用css样式。


表单

表单基本结构

<!-- 新标签页打开百度搜索结果 -->
<form action="https://baidu.com/s" target="_blank" method="get">
    <input type="text" name="wd">
    <button>百度搜索</button>
</form>
<form action="https://search.jd.com/search">
    <input type="text" name="keyword">
    <button>京东搜索</button>
</form>

img

form标签属性:
action: 表单提交的地址,action=""时,默认提交到当前页面
target: 表单提交后打开的页面,默认为当前页面,_blank为新标签页打开
method: 表单提交方式,默认为get,get提交数据在地址栏显示,post提交数据不显示,但可以提交大文件,post提交数据会自动缓存,get提交数据不会缓存。


文本框与密码框

<input>: 单标签或双标签,<input><input></input>

文本输入框:

<input type="text" name="acount" value="默认值" maxlength="10">

密码输入框:

<input type="password" name="password" value="123456" maxlength="10">

img

name: 表单提交时,提交数据的key
value: 默认值(密码一般没有默认值)
maxlength: 最大长度


单选框与多选框

单选框:

<input type="radio" name="gender" value="male">男
<input type="radio" name="gender" value="female" checked>女

复选框:

<input type="checkbox" name="favorite" value="1">喝茶
<input type="checkbox" name="favorite" value="2" checked>聊天
<input type="checkbox" name="favorite" value="3">跑步

img

name: 表单提交时,提交数据的key
value: 表单提交时,提交数据的value,当不指定value值时,默认为on,如下图单选框gender没有指定value属性值,提交gender对应的值是on。
checked: 选中
请求数据浏览器携带默认值gender=on:
img

复选框提交的数据格式:
img


隐藏域

<input type="hidden" name="hidden" value="隐藏域中的值">

name: 表单提交时,提交数据的key
value: 表单提交时,提交数据的value,当不指定value值时,默认为空字符串。

img


提交与重置

确认提交表单按钮的写法:

<!-- 确认按钮第一种写法 -->
<button>button确认</button>
<!-- 确认按钮第二种写法 -->
<input type="submit" value="input指定确认按钮名称为确认">

<button>: 在<form>中button有默认属性type="submit"。
<input type="submit">: 默认按钮文字为提交,可以指定value="确认"。
img


重置按钮:

<!-- 重置按钮第一种写法 -->
<button type="reset">button重置</button>
<!-- 重置按钮第二种写法 -->
<input type="reset" value="input指定重置按钮名称为重置">

img


表单中的普通按钮

 <!-- 普通按钮写法 -->
<button type="button">button表单中普通按钮</button>
<input type="button" value="input的普通按钮">

普通按钮的type=button,在<form>标签中,如果不写type属性,button默认为type=submit。


文本域和下拉框

文本域:

<textarea name="other" cols="2" rows="3"></textarea>

属性:
cols: 文本域展示大概宽度,大概容纳两个字符
rows: 文本域展示大概高度,大概容纳三个字符
他们不能控制文本域内容的长度。
不能写type属性,其他属性与普通文本框一样。

img


默认值:

<textarea name="other" cols="2" rows="3">默认值</textarea>

img


下拉框:

<select name="province">
    <option value="bj">北京</option>
    <option value="sh" selected>上海</option>
</select>

img
属性:
value: 选项的值,提交表单时province=value。
selected: 默认选中

如果option没有value属性,那么默认提交选中的option的内容。

<select name="province">
    <option>北京</option>
    <option>上海</option>
</select>

img

禁用表单控件

属性值: disabled

input、select、option、textarea、button等表单控件,禁用属性值disabled,禁用后无法操作。

置灰不可点击或选中:
img

label标签

<input id="nan" type="radio" name="gender" value="male">
<label for="nan">男</label>
<label>
    <input type="radio" name="gender" value="female">女
</label>

img

表单分类标签fieldset和legend

fieldset标签: 可以为表单控件分组
legend: 分组名称
也可以对其他元素进行分组。

<form action="https://search.jd.com/search" method="get">
<fieldset>
    <legend>主要信息</legend>
    <label for="xingming">账户:</label>
    <input id="xingming" type="text" name="acount" value="默认值" maxlength="10">
    <br>
    <span>密码:</span>
    <input type="password" name="password" value="123456" maxlength="10">
    <br>
    <span>性别:</span>
    <input id="nan" type="radio" name="gender" value="male">
    <label for="nan">男</label>
    <label>
    <input type="radio" name="gender" value="female">女
    </label>
</fieldset>
<fieldset>
    <legend>其他信息</legend>
    <span>爱好:</span>
    <input type="checkbox" name="favorite" value="1">喝茶
    <input type="checkbox" name="favorite" value="2" checked>聊天
    <input type="checkbox" name="favorite" value="3">跑步
    <br>
    <span>其他:</span>
    <textarea name="other" cols="2" rows="3"></textarea>
    <br>
    <span>籍贯</span>
    <select name="province">
    <option value="bj">北京</option>
    <option value="sh" selected>上海</option>
    </select>
</fieldset>
<!-- 隐藏域 -->
<input type="hidden" name="hidden">
<br>
<!-- 确认按钮第一种写法 -->
<button>button确认</button>
<!-- 确认按钮第二种写法 -->
<input type="submit" value="input指定确认按钮名称为确认">

<!-- 重置按钮第一种写法 -->
<button type="reset">button重置</button>
<!-- 重置按钮第二种写法 -->
<input type="reset" value="input指定重置按钮名称为重置">

<!-- 普通按钮写法 -->
<button type="button">button表单中普通按钮</button>
<!-- 禁用表单 -->
<input type="button" disabled value="input的普通按钮">
</form>

<fieldset>
<legend>测试</legend>
<div>div元素</div>
</fieldset>

img

表单总结

<form>: 表单
常用属性:
action: 表单要提交的地址
target: 要跳转的新地址打开位置; 值: _self 、 _blank
method: 请求方式,值: get 、 post


<input>: 多种形式的表单控件
常用属性:
type: 表单控件类型,值: text 、 password 、 radio 、 checkbox 、 submit 、 reset 、 button 、 hidden
name: 表单控件名称,提交表单时,name=value
value: 表单控件值,根据不同type类型其含义不同
对于text/password,value为默认值
对于radio/checkbox,value为选中的值,也就是提交的数据
对于submit/reset/button,value为按钮名称
disabled: 设置表单控件不可用
maxlength: 用于输入框,设置最大可输入长度
checked: 用于单选按钮和复选框,默认选中


<textarea>: 文本域
常用属性:
name: 指定数据名称
cols: 文本域展示大概宽度,大概容纳两个字符
rows: 文本域展示大概高度,大概容纳三个字符
disabled: 设置整个文本域不可用


<select>: 下拉框
常用属性:
name: 指定数据名称
disabled: 设置整个下拉框不可用


<option>: 下拉框选项
常用属性:
value: 选项的值,提交表单时province=value。
不指定value,会把标签中的内容作为提交数据
selected: 默认选中
disabled: 设置选项不可用


<button>: 按钮
常用属性:
type: 按钮类型,值: submit(在<form>元素中默认值) 、 reset 、 button(不在<form>元素中默认值)
disabled: 设置按钮不可用


<label>: 与表单控件做关联
常用属性:
for: 与表单控件的id值相同,这样点击label标签文字,就会让与之对应的表单控件获取焦点。


<fieldset>: 表单边框


<legend>: 表单边框名称,写在fieldset标签中

框架标签<iframe>

语义: 框架(在网页中嵌入其他文件)
常用属性:
name: 框架名称 可以<a><form>的target属性值一样,用于填充iframe内容
width: 框架宽度
height: 框架的高度
frameborder: 边框宽度,值: 0(无边框) 、 1(有边框) ,如下图有边框
img

<!-- 嵌入一个网站 -->
<iframe src="https://taobao.com" width="1000" height="500" frameborder="0"></iframe>
<!-- 嵌入一个广告 -->
<iframe width="300" height="250" frameborder="0"
    src="https://pos.baidu.com/mcpm?conwid=300&conhei=250&rdid=5841072&dc=3&di=u5841072&s1=3378208340&s2=2193082055&dri=0&dis=0&dai=1&ps=2207x1188&enu=encoding&exps=110277,110275,110261,110252,110011&ant=0&psi=d697f9587e2d0c27&dcb=___adblockplus_&dtm=HTML_POST&dvi=0.0&dci=-1&dpt=none&tpr=1742961707914&ti=%E7%BD%91%E6%98%93%E6%96%B0%E9%97%BB&ari=2&ver=0109&kws=%E6%96%B0%E9%97%BB%2C%E6%96%B0%E9%97%BB%E4%B8%AD%E5%BF%83%2C%E6%96%B0%E9%97%BB%E9%A2%91%E9%81%93%2C%E6%97%B6%E4%BA%8B%E6%8A%A5%E9%81%93&dps=%E6%96%B0%E9%97%BB%2C%E6%96%B0%E9%97%BB%E4%B8%AD%E5%BF%83%2C%E5%8C%85%E5%90%AB%E6%9C%89%E6%97%B6%E6%94%BF%E6%96%B0%E9%97%BB%2C%E5%9B%BD%E5%86%85%E6%96%B0%E9%97%BB%2C%E5%9B%BD%E9%99%85%E6%96%B0%E9%97%BB%2C%E7%A4%BE%E4%BC%9A%E6%96%B0%E9%97%BB%2C%E6%97%B6%E4%BA%8B%E8%AF%84%E8%AE%BA%2C%E6%96%B0%E9%97%BB%E5%9B%BE%E7%89%87%2C%E6%96%B0%E9%97%BB%E4%B8%93%E9%A2%98%2C%E6%96%B0%E9%97%BB%E8%AE%BA%E5%9D%9B%2C%E5%86%9B%E4%BA%8B%2C%E5%8E%86%E5%8F%B2%2C%E7%9A%84%E4%B8%93%E4%B8%9A&dbv=2&drs=4&pcs=1777x1008&pss=1777x11468&cfv=0&cpl=5&chi=1&cce=true&cec=UTF-8&tlm=1742961601&prot=2&rw=1008&ltu=https%3A%2F%2Fnews.163.com%2F&ltr=https%3A%2F%2Fcn.bing.com%2F&lcr=https%3A%2F%2Fcn.bing.com%2F&ecd=1&dft=0&uc=1792x1095&pis=-1x-1&sr=1792x1120&tcn=1742961708&qn=c5a44a3031ca4333&ft=1"
    frameborder="0"></iframe>
<!-- 嵌入其他内容 -->
<iframe src="./resources/动图.gif" width="338" height="338" frameborder="0"></iframe>

img


<iframe>标签的name<a>标签或<form>标签的target属性值一样,用于填充iframe内容

<!-- iframe标签和a标签的target属性动态填充iframe内容 -->
<a href="https://taobao.com" target="showframe">加载淘宝</a>
<a href="https://news.163.com" target="showframe">加载网易</a>

<!-- iframe标签和form标签的target属性动态填充iframe内容 -->
<form action="https://so.toutiao.com/search" target="showframe">
    <input type="text" name="keyword">
    <input type="submit" value="头条搜索">
</form>
<iframe name="showframe" frameborder="0" width="600" height="400"></iframe>

img

<a><form>具有跳转请求功能,配合<iframe>name属性值,可以把<a><form>响应结果填充到<iframe>中。
用法:
<a>: href="url" target="iframe的name属性值"
<form>: action="url" target="iframe的name属性值"
<iframe>: name="name属性值"

HTML实体符号

<!-- 空格字符 -->
<div>文字&nbsp;&nbsp;&nbsp;中间有空格</div>
<!-- 空格字符编号 -->
<div>文字&#160;&#160;&#160;中间有空格</div>
<!-- 大于号小于号 -->
<div>&lt;h1&gt;元素左边是小于号右边是大于号</div>
<!-- &amp;标识&符号 -->
<div>&amp;nbsp;是空格符号</div>
<!-- &amp是&符号 -->
<div>&amp;amp;是&符 表示 and</div>
<div>&amp;yen;是&yen;符 表示 元</div>
<div>&amp;copy;是&copy;符 表示 版权所有</div>
<div>&amp;times;是&times;符 表示 乘法 例如: 2 &times; 2</div>
<div>&amp;divide;是&divide;符 表示 除法 例如: 2 &divide; 2</div>

img

常用实体符号:
&nbsp;: 空格字符 &nbsp;也可以用编号: &#160,不推荐用编号表示字符
&lt;: 小于号<
&gt;: 大于号>
&amp;: &符号
&yen;: 元符号
&copy;: 版权所有符号
&times;: 乘号
&divide;: 除号

实体符号查询: MDN术语表

HTML全局属性

id: 给元素指定唯一标记,页面中id不能重复。
作用: 可以让label标签与表单控件做关联;也可以用css中选择器选择元素。
注意:
不能在以下标签中使用: <html><head><meta><style><title><script>


class: 给元素指定类型,每个元素中class中值可以有多个。


style: 给元素指定样式,值: css样式代码。


dir: 设置文本方向,值: ltr(从左到右)、rtl(从右到左)
注意:
dir在标签中,作用于渲染文字方向
dir在

标签中,作用于div中内容的位置
不能在以下标签中使用: <html><head><meta><style><title><script>

<bdo dir="rtl">
    <span>你是年少的欢喜</span>
</bdo>
<div dir="rtl">
    <span>你是年少的欢喜</span>
</div>

在div中指定dir="rtl",那么div中内容就会靠右边对齐。
img


title: 设置元素的文字提示,一般超链接和图片用的比较多

<div title="英雄联盟">LOL</div>
<a href="" title="去京东">京东</a>

img


lang: 给元素指定语言
注意:
不能在以下标签中使用: <head><meta><style><title><script>

meta元信息

1.配置字符编码

 <!-- 配置字符编码 -->
<meta charset="UTF-8">

2.针对IE浏览器的兼容性设置

<!-- 针对IE浏览器的兼容性设置,如果用户使用IE浏览器,则强制使用edge浏览器模式进行渲染 -->
<meta http-equiv="X-UA-Compatible" content="ie=edge">

3.针对移动设备的优化设置

<!-- 移动设备优先,针对移动设备进行优化,让页面以宽度为优先,以适配移动设备 -->
<meta name="viewport" content="width=device-width, initial-scale=1.0">

作用之一: 移动端字体适应
img


4.配置网页关键字

<!-- 网页关键字 -->
<meta name="keywords" content="电商,购物,手机">

content: 关键字内容,多个关键字用逗号隔开
作用: 告诉搜索引擎,哪些关键字是网页的关键字,可以提高网页的排名

京东网页配置的关键字:
img


5.配置网页描述

 <!-- 网页描述 -->
<meta name="description" content="学习html页面">

content: 网页描述内容,80字以内的网页描述
作用: 告诉搜索引擎,网页的内容是什么,可以提高网页的排名


6.针对搜索引擎爬虫配置项

<!-- 搜索引擎爬虫 -->
<meta name="robots" content="all">

content: 搜索引擎爬虫配置项
值有:
index: 允许搜索引擎爬取
noindex: 禁止搜索引擎爬取
follow: 允许搜索爬虫跟随链接爬取
nofollow: 要求搜索爬虫不能跟随此页面上的链接
all: 与index、follow等价
none: 与noindex、nofollow等价
noarchive: 要求搜索引擎不缓存页面内容
nocache: noarchive的别名


7.配置网页作者

<meta name="author" content="张三">

8.配置网页版权

<meta name="copyright" content="张三">

9.配置网页生成工具

<meta name="generator" content="Visual Studio Code">

10.配置网页自动刷新

<!-- 3s后自动跳转到百度 -->
<meta http-equiv="refresh" content="3;url=https://www.baidu.com">
<!-- 3s后自动刷新 -->
<meta http-equiv="refresh" content="3">

content: 刷新时间;url=跳转地址
img

posted @ 2025-03-19 17:35  ethanx3  阅读(86)  评论(0)    收藏  举报