前端开发笔筏
HTML5
HTML5文档结构
文档基本结构✨
1. 类型声明
<!DOCTYPE html>
在这里不区分大小写
2. 文件开始标签
文章中的所有内容都包含在其中
<html lang="zh-CN">
...
</html>
属性
lang设置文章语言
3. 文件头
一般包含文章的标题和元信息,也包含 css和 js的引入
<head>
<meta charset="utf-8">
<title>...</title>
</head>
一下是一些常用的元信息
<meta charset="utf-8">设置文件编码格式<meta name="author" content="char">设置文章作者<meta name="description" content="表述...">设置文章的描述<meta name="viewport" content="width=device-width, initial-scale=1.0">移动端适配<meta name="theme-color" content="#4285f4">设置网站主题色(移动端)-
<meta name="keywords" content="关键词1, 关键词2, 关键词3">设置文章关键词(现代搜索引擎以忽视)
4. 文件主体
用于盛放展示给用户的内容
<body>
...
</body>
5. 注释
有利于代码的检查和修改,不会展示给用户
<!--注释的文字-->
<!--
注释的段落
注释的段落
-->
主体结构元素
1. article
表示文档、页面、应用或网站中一个独立的、可独立分配或可复用的结构。
<article>
...
</article>
使用场景:
- 论坛帖子
- 新闻文章
- 博客文章
- 用户评论
- 独立的小部件或应用组件
2. section
表示文档中的一个主题性分组,通常会有标题。
<section>
...
</section>
使用场景:
- 文章的章节
- 标签页中的不同标签内容
- 长文档中的不同部分
- 任何需要分组的
相关内容
3. article和section主要区别
| 特性 | <article> |
<section> |
|---|---|---|
| 独立性 | 内容是独立的、完整的 | 内容是相关的但依赖上下文 |
| 复用性 | 可以被单独复用 | 通常不能单独复用 |
| 嵌套 | 可以嵌套其他 <article> |
通常不嵌套其他 <section> |
| 标题 | 通常必须有标题 | 建议有标题但不是必须 |
| 语义 | 表示独立内容 | 表示主题分组 |
需要注意的是,这里提到的复用指的是
内容复用而并非功能复用
注意
- 不要将其作为设置样式的容器,那是div的作用
- 当article,aside,nav更符合要求时,尽量不要用section
- 不要为没有标题的内容设置section
4.nav
用于构建导航,既可为页面导航,也可为页内导航
常见运用场合
- 传统导航栏
- 侧边导航栏
- 页内导航
- 翻页操作
需要注意的是,不是所有的导航都用
nav
<nav>
<ul>
<li><a href="#">首页</a></li>
<li><a href="#">分类</a></li>
<li><a href="#">标签</a></li>
<li><a href="#">归档</a></li>
</ul>
</nav>
5. aside
表示与页面主要内容仅有间接关联的内容,这类内容可以被视为与主内容分开的独立单元。
降低SEO权重
常见运用场景
- 注释
- 摘录引用
- 侧边栏
- 广告栏
主要使用方法
- 被包含在
article中:表示主要内容的附属信息 - 在
article外:表示站点的附属内容
6. time
可明确地对 机器的日期和时间进行编码,并且以让人易读的方式展现出来
<time datetime="机器可读格式">人类可读格式</time>
<!--提供标准化的时间数据(ISO 8601 格式)-->
| 场景 | 示例代码 | 说明 |
|---|---|---|
| 完整日期时间 | <time datetime="2025-06-20T14:30:00+08:00">2025年6月20日 14:30</time> |
T 分隔日期和时间,+08:00 表示时区(北京时间)Z 表示UTC标准时区(+00:00) |
| 仅日期 | <time datetime="2025-06-20">2025年端午节</time> |
适合节日、生日等不需要精确时间的场景 |
| 时间段 | <time datetime="PT2H30M">2小时30分钟</time> |
P 表示周期,T 后接时间,H/M 分别代表小时/分钟 |
| 周数 | <time datetime="2025-W25">2025年第25周</time> |
W 前为年份,后为周数 |
非主体结构元素
表示 逻辑结构或 附加信息的非主体结构远元素
1. header
具有引导和导航作用,
<article>
<header>
<h1>HTML从入门到精通</h1>
</header>
...
</article>
一个
header元素中通常包含一个或多个heading元素,也可以包含hgroup,table,form,nav等其他元素
2. hgroup
对 标题及其 子标题进行分类的元素,可包含 heading和 p元素
<article>
<header>
<hgroup>
<h1>HTML教程</h1>
<h2>从入门到精通</h2>
</hgroup>
</header>
</article>
需要注意的是,这里这样做是为了提高ESO对主标题的权重,且优化无障碍用户的体验感
但在实际开发中我们常h1+css的形式代替hgroup,这样可以做出更绚丽的样式
<div class="title-group" role="group" aria-label="文章标题">
<h1>CSS3完全指南</h1>
<p class="subtitle">从盒模型到Flexbox</p>
</div>
3. footer
表示最近一个章节内容或根元素的页脚,通常包含该章节的元信息(如作者、版权、相关链接等)
<root>
<ul>
<li><a href="#">友链</a></li>
<li><a href="#">帮助</a></li>
<li><a href="#">联系</a></li>
<li><a href="#">版权</a></li>
</ul>
</root>
4. address
通常用于提供文档作者或相关责任方的联系方式。
<articel>
<header>
<h1>
HTML从入门到精通
</h1>
</header>
<address>
<a href="#">QQ</a>
<a href="#">微信</a>
</address>
</articel>
需要注意的是
address不能嵌套在header和hgroup内,address内的文字会默认设置为斜体
全局属性
顾名思义所有元素都可以使用的属性
1. id,class,style
| 属性 | 作用 | 备注 |
|---|---|---|
| id | 指定元素的id名 | id唯一不可重复使用 |
| class | 指定元素类名 | 可重复使用 |
| style | 指定元素行内样式 | 权重最高 |
✅ 用
id→ 唯一性操作(JS、锚点、表单)。
✅ 用class→ 可复用的样式或批量操作。
<div id="Hi">
<h1>
Hi
</h1>
</div>
---
<div class="hi">
<h1>
hi
</h1>
</div>
---
<div style="background-color:blue">
<h1>
hi
</h1>
</div>
2. title
用于指定元素的额外信息,鼠标移动的元素上时会显示这些额外信息
<a href="#" title="博客">前往我的小窝</a>

3. dir
用于元素内容的文本方向
<p dir="ltr">
hello world!
</p>
<p dir="rtl">
hello world!
</p>

4. contentEditable
可以让元素的内容变得可编辑,类似于一个简单的富文本编辑器。
<div contentEditable="true">
你可以编辑这段文字
</div>
当元素未被指定该属性时,将继承父元素的属性
5. designMode
控制整个文档是否可编辑的属性,它比单个元素的 contenteditable 属性影响范围更广,该属性有 on和 off两个值
<button onclick="document.designMode='on'">启用编辑</button>
<button onclick="document.designMode='off'">禁用编辑</button>
6. hidden
用于隐藏页面元素,使其不显示在页面上。
<button onclick="var target=document.getElementById('comment');
target.hidden=!target.hidden">
开始/关闭评论
</button>
<!--here-->
<section id="comment" hidden="false">
<header>
<h2>写入评论</h2>
</header>
<textarea name="commentArea" id="commentArea" spellcheck="true">输入你的评论</textarea>
<button>发送评论</button>
</section>
css样式中的display属性,设置
display:none;作用同上,但使用的目的不同
| 特性 | hidden 属性 |
display: none |
|---|---|---|
| 作用 | 语义化隐藏(HTML 层面) | 样式化隐藏(CSS 层面) |
| DOM 是否保留 | ✅ 保留 | ✅ 保留 |
| 是否影响布局 | ❌ 不占空间 | ❌ 不占空间 |
| JavaScript 操作 | element.hidden = true |
element.style.display="none" |
| 动画支持 | ❌ 不能过渡 | ✅ 可结合 opacity 动画 |
| 适用场景 | 条件渲染、JS 控制显示/隐藏 | 响应式布局、动态 UI 切换 |
7. spellcheck
告诉浏览器检查拼写和语法,若未配置该属性则会基础父元素的spellcheck状态
<textarea spellcheck="true">
comment
</textarea>
HTML文本
标题文本✨
标题一共分为1~6级
<h1>...</h1>
<h2>...</h2>
<h3>...</h3>
<h4>...</h4>
<h5>...</h5>
<h6>...</h6>
示例
标题文本
一级标题
二级标题
三级标题
四级标题
五级标题
六级标题
普通文本
1. 斜体,下划线,删除线
<!-- 斜体 -->
<em>有语义的斜体</em>
<i>无语义的斜体</i>
<!-- 下划线 -->
<u>有语义的下划线</u>
<span style="text-decoration: underline;">无语义的下划线(推荐)</span>
<!-- 删除线 -->
<del>有语义的删除线</del>
<s>有语义的删除线(内容过时但未删除)</s>
<span style="text-decoration:line-through">无语义的删除线</span>
<!-- 粗体-->
<strong>有语义的粗体</strong>
<b>无语义的粗体</b>
2. 文字的上标与下标
一种特殊的文字修饰效果
<h3>X<sup>3</sup> + X <sup>2</sup> - 3 = 0</h3>
<h3>3X<sub>1</sub> + X <sub>2</sub> = 10</h3>
X3 + X 2 - 3 = 0
3X1 + X 2 = 10
3. 代码片段
专门用于标记计算机代码内容。
<code>...</code>
示例
段落文本✨
1. 段落标签
<p>这是一个段落</p>
2. 换行标签
<br/>
3. 预格式化文本
专门用于保留文本中的原始排版格式。以下是关于该标签的详细解析
<pre>
...
...
</pre>
4. 引用块
可以实现页面文字的缩进
<blockquote>
...
</blockquote>
功能性文本
1. 标记文本
用于表示页面中需要突出显示或高亮显示的一段文本
<mark>
content
</mark>
content
2. 细节展示元素(折叠)
提供了一个可折叠的区域,
<details>
<summary>这是一个折叠框</summary>
<h1>内容</h1>
</details>
这是一个折叠框
内容
值得一提的是,可以给该元素设置
open属性,使其默认打开
3. 进度信息
用来表示一个任务完成的进度,这个进度可以是不确定的
属性:
| 属性 | 值 | 备注 |
|---|---|---|
| value | [num] (当前进度) | max > value,value > 0 |
| max | [num] (总进度) | max > 0 |
<progress value="0.2" max="1"</progress>
<progress></progress>
4. 刻度信息
用来表示规定范围内的数量值
属性:
| 属性 | 值 | 备注 |
|---|---|---|
| value | [num] (当前进度) | max > value,value > 0 |
| min | [num] (最大值) | min > 0 |
| max | [num] (最小值) | max > 0 |
| low | [num] (低值区) | ... |
| optimum | [num] (最佳值) | ... |
| high | [num] (高值区) | ... |
[min]--[low]--[optimum]--[high]--[max]
<meter value="2" min></meter>
5. 标题信息
有语义的表示作品的标题
<cite>句号</cite>
我们终于来到一个句号
--句号
表格✨
<table> </table>
表格标题
<caption>...</caption>设置表格标题
<caption>用户信息</caption>
表行
<tr></tr>,表示表格中的一行
<table>
<tr>
...
</tr>
</table>
表头
<th></th>表示表格的表头
<table>
<tr>
<th>姓名</th>
<th>电话</th>
<th>邮箱</th>
</tr>
<tr>
<td>Char</td>
<td>19130635357</td>
<td>sakura_net@163.com</td>
</tr>
</table>
表单元
<td></td>表示表格中的一个单元
<table>
<tr>
<th>姓名</th>
<th>电话</th>
<th>邮箱</th>
</tr>
<tr>
<td>Char</td>;
<td>19130635357</td>
<td>sakura_net@163.com</td>
</tr>
</table>
| 姓名 | 电话 | 邮箱 |
|---|---|---|
| Char | 19130635357 | sakura_net@163.com |
合并单元格✨
<td colspan="合并的列数" rowspan="合并的行数">...</td>
| 角色 | 昵称 | 邮箱 | 照片 |
|---|---|---|---|
| 超级管理员 | char | sakura_net@163.com | char.png |
| 杏菜 | sakura_net@163.com | 杏菜.png | |
| 青雀 | sakura_net@163.com | 青雀.png |
列表
列表共有三类,第一类是 有序列表,第二类是 无序列表,第三类是 定义列表
无序列表
一种不编号的列表,它通常用一个符号作为每个列表项的符号
无序列表通常使用 <ul>,<li>标签和 type属性
<ul type="circle">
<li>第一项</li>
<li>第二项</li>
<li>第三项</li>
</ul>
| type属性值 | 列表符号 | 备注 |
|---|---|---|
| disc | ● | 默认样式 |
| circle | ○ | |
| square | ■ |
需要注意的是,该属性已在HTML5中废弃,改用css实现
list-style-type: disc | circle | square | none; /* 实心圆/空心圆/方块/无 */
有序列表
使用编号来编排项目,通常采用 数字或 字母开头
有序列表通常使用 <ol>,<li>标签和 type,start属性
<ol type="a" start="b">
<li>第一项</li>
<li>第二项</li>
<li>第三项</li>
</ol>
| type属性值 | 列表符号 | 备注 |
|---|---|---|
| 1 | 1. 2. 3. | 默认样式 |
| a | a. b. c. | |
| A | A. B. C. | |
| i | i. ii. iii. | |
| I | I. II. III |
需要注意的是,该属性已在HTML5中废弃,改用css实现
list-style-type: decimal|lower-alpha|upper-alpha|lower-roman;
定义列表
定义列表常用来解释名词,它包含两个层次的列表
第一层是要解释的名词,第二次是具体的解释
定义列表通常使用 <dl>,<dt>,<dd>
<h5>小鸡词典</h5>
<dl>
<dt>六六六</dt>
<dd>形容某事很六</dd>
<dt>yyds</dt>
<dd>永远的神</dd>
<dt>xxs</dt>
<dd>小学生</dd>
</dl>
小鸡词典
- 六六六
- 形容某事很六
- yyds
- 永远的神
- xxs
- 小学生
链接
用于创建超链接,让用户可以点击跳转到其他页面或资源。
<a href="链接地址">可点击的文字或图片</a>
常见属性
| 属性 | 作用 | 示例 |
|---|---|---|
href |
设置链接地址 | href="page.html" |
target |
控制打开方式 | target="_blank"(新标签页打开) |
title |
鼠标悬停提示 | title="点击查看详情" |
rel |
安全/SEO控制 | rel="noopener"(防黑客) |
打开方式
| 属性值 | 效果 | 适用场景 | 注意事项 |
|---|---|---|---|
_self |
原地打开( 默认) | 自己的网站链接 | 会覆盖当前页面 |
_blank |
新建标签页 | 外部网站(比如微博、淘宝) | 记得加 rel="noopener" 防黑客 |
_parent |
在父框架打开(很少用) | 老式框架网页 | 现在基本没人用框架了 |
_top |
跳出所有框架 | 防止网页被恶意嵌套 | 安全防护时用 |
自定义名 |
指定窗口名重复使用 | 聊天窗口、后台系统 | 要自己起名字如 target="chat" |
最常用的两种链接
(1) 普通网页链接
<a href="https://www.qq.com">腾讯网</a>
(2) 页面内的锚点链接
<!-- 先定义锚点 -->
<h2 id="section1">第一章</h2>
<!-- 跳转到锚点 -->
<a href="#section1">跳转到第一章</a>
特殊用法
(1) 打电话/发邮件
<a href="tel:13800138000">拨打电话</a>
<a href="mailto:service@qq.com">发送邮件</a>
(2) 下载文件
<a href="report.pdf" download>下载报告</a>
表单
用于收集用户输入数据的交互元素,广泛应用于注册、登录、调查问卷、订单提交等场景。它由多个输入控件(如文本框、单选按钮、复选框等)组成,用户填写后可将数据提交至服务器进行处理。
自定义表单
核心属性
| 属性 | 值/类型 | 说明 | 示例 |
|---|---|---|---|
action |
URL | 表单数据提交的目标地址(后端处理程序) | action="/submit.php" |
method |
get/post |
数据提交方式: -get:数据附加在URL中(可见) - post:数据在请求体中(不可见) |
method="post" |
enctype |
application/x-www-form-urlencoded(默认) multipart/form-data(文件上传) text/plain(纯文本) |
表单数据的编码类型 | enctype="multipart/form-data" |
target |
_self(当前窗口) _blank(新窗口) _parent/_top(框架用) |
响应显示的位置 | target="_blank" |
name |
字符串 | 表单名称(用于JS/DOM操作) | name="loginForm" |
功能增强属性
| 属性 | 说明 | 示例 |
|---|---|---|
autocomplete |
是否启用自动填充:on(默认)/off |
autocomplete="off" |
novalidate |
跳过HTML5表单验证(用于自定义验证) | novalidate |
accept-charset |
指定表单提交的字符编码(如 UTF-8) |
accept-charset="UTF-8" |
input
基本属性
| 属性 | 说明 | 示例 |
|---|---|---|
type |
定义输入字段类型 | type="text" |
name |
标识字段名称,提交表单时使用 | name="username" |
value |
设置输入字段的初始值 | value="默认文本" |
placeholder |
显示提示文本,输入时消失 | placeholder="请输入用户名" |
required |
指定字段为必填项 | required |
disabled |
禁用输入字段 | disabled |
readonly |
字段只读,不可编辑 | readonly |
功能增强属性
| 属性 | 说明 | 示例 |
|---|---|---|
autocomplete |
是否启用自动填充:on(默认)/off |
autocomplete="off" |
novalidate |
跳过HTML5验证(用于自定义验证) | novalidate |
autofocus |
进入页面自动获得光标焦点 | autofocus |
list |
与 <datalist>绑定 |
list="datalisr1" |
text
最基本的文本输入框
<input type="text" name="username" placeholder="请输入用户名">
相关属性
| 属性 | 值 | 说明 |
|---|---|---|
size |
number | 文本框的宽度 |
maxlength |
number | 文本框最大容纳量 |
pattern |
正则表达式 | 文本的格式要求 |
需要注意的是,不要与
input的属性混淆
password
输入内容会显示为掩码:
<input type="password" name="password" placeholder="请输入密码">
可以通过 JavaScript实现"显示密码"功能:
document.getElementById('showPwd').onclick = function() {
document.getElementById('pwd').type = 'text';
}
相关属性
| 属性 | 值 | 说明 |
|---|---|---|
size |
number | 文本框的宽度 |
maxlength |
number | 文本框最大容纳量 |
pattern |
正则表达式 | 文本的格式要求 |
radio
用于多选一场景:
<input type="radio" name="gender" value="male">男
<input type="radio" name="gender" value="female">女
注意事项:
- 同一组的单选框必须设置相同的
name属性 - 使用
checked属性设置默认选项
checkbox
用于多选场景:
<input type="checkbox" name="hobby" value="reading">阅读
<input type="checkbox" name="hobby" value="sports">运动
特点:
- 同一组的单选框必须设置相同的
name属性 - 选中时提交
value值,未选中则不提交 - 也可使用
checked设置默认选中
submit
提交表单数据:
<input type="submit" value="提交">
样式简陋,建议使用
<button>代替
reset
重置表单内容:
<input type="reset" value="重置">
样式简陋,建议使用
<button>代替
button
普通按钮:
<input type="button" value="buttonValue" oncilk="function()">
样式简陋,建议使用
<button>代替
date/time
<input type="date"> <!-- 日期选择 -->
<input type="month"> <!-- 月份选择 -->
<input type="time"> <!-- 时间选择 -->
<input type="week"> <!-- 周数选择 -->
<input type="datetime-local"> <!-- 本地日期时间 -->
file
使用 type="file"实现文件上传功能:
<input type="file" name="avatar" accept="image/*">
注意事项:
- 表单必须设置
enctype="multipart/form-data" accept属性可限制文件类型
hidden
使用隐藏字段传递不需要用户看到的数据:
<input type="hidden" name="user_id" value="12345">
特殊输入类型
<input type="email"> <!-- 邮箱地址,会自动验证格式 -->
<input type="url"> <!-- URL地址,会自动验证格式 -->
<input type="tel"> <!-- 电话号码 -->
<input type="number"> <!-- 数字输入,可设置min/max/step -->
<input type="range"> <!-- 滑块控件, 可设置min/max/step -->
<input type="color"> <!-- 颜色选择器 -->
<input type="search"> <!-- 搜索框,可能有清除按钮 -->
select/option
创建下拉菜单的核心元素,它为用户提供了从预定义选项中选择一个或多个值的便捷方式。
<select name="选项名称">
<option value="值1">显示文本1</option>
<option value="值2">显示文本2</option>
<option value="值3">显示文本3</option>
</select>
<select> 属性
| 属性 | 说明 | 示例 |
|---|---|---|
name |
表单提交时的字段名称 | name="city" |
multiple |
允许多选 | multiple |
size |
可见选项数量 | size="4" |
disabled |
禁用下拉菜单 | disabled |
required |
必填字段 | required |
form |
关联的表单ID | form="form1" |
<option> 属性
| 属性 | 说明 | 示例 |
|---|---|---|
value |
提交到服务器的值 | value="bj" |
selected |
默认选中项 | selected |
disabled |
禁用该选项 | disabled |
label |
替代显示文本 | label="北京市" |
datalist
它允许开发者为输入字段提供一组预定义的选项,用户可以从下拉列表中选择或继续手动输入。
<input name="input_name" list="datalist-id">
<datalist id="datalist-id">
<option value="选项值1">显示文本1</option>
<option value="选项值2">显示文本2</option>
<option value="选项值3">显示文本3</option>
</datalist>
<input>元素的list属性必须与<datalist>的id属性匹配
<datalist>属性
| 属性 | 说明 | 示例 |
|---|---|---|
id |
唯一标识,与input的list属性对应 | id="country-list" |
<option>属性
| 属性 | 说明 | 示例 |
|---|---|---|
value |
提交到服务器的值 | value="CN" |
label |
替代显示文本(可选) | label="中国" |
button
<button> 是 HTML 表单中最重要的交互元素之一,它比 <input type="button"> 更灵活、功能更强大。
<button type="按钮类型">按钮文本</button>
常见属性
| 属性 | 说明 | 示例 |
|---|---|---|
type |
按钮类型(submit/reset/button) | type="button" |
name |
表单提交时的字段名 | name="save-btn" |
value |
表单提交时的值 | value="save-data" |
disabled |
禁用按钮 | disabled |
form |
关联的表单ID | form="form1" |
formaction |
覆盖表单的action属性 | formaction="/save" |
formenctype |
覆盖表单的enctype属性 | formenctype="multipart/form-data" |
formmethod |
覆盖表单的method属性 | formmethod="get" |
formnovalidate |
跳过表单验证 | formnovalidate |
formtarget |
覆盖表单的target属性 | formtarget="_blank" |
基本类型
| 类型 | 说明 | 示例 |
|---|---|---|
submit |
提交表单(默认类型) | <button type="submit">提交</button> |
reset |
重置表单 | <button type="reset">重置</button> |
button |
普通按钮(需配合JavaScript) | <button type="button">点击</button> |
需要注意的是,如果不指定
type属性,默认行为是submit,这可能导致意外提交表单。
label
点击标签文本即可聚焦到对应表单控件,能显著提升表单的可访问性和用户体验
<!-- 隐性关联 -->
<label for="控件id">标签文本</label>
<input type="text" id="控件id">
<!-- 显性关联 -->
<label>
标签文本
<input type="text">
</label>
output
专门用于表示计算或用户操作的结果
<form oninput="result.value=parseInt(num1.value)+parseInt(num2.value)">
<input type="number" id="num1" value="0">
+
<input type="number" id="num2" value="0">
=
<output name="result" for="num1 num2">0</output>
</form>
属性
| 属性 | 说明 | 示例 |
|---|---|---|
name |
标识输出结果的名称 | name="sum" |
for |
指定关联的输入元素id(多个用空格分隔) | for="num1 num2" |
form |
关联的表单id | form="calcForm" |
表单内的关联关系
| 关联属性 | 作用元素 | 关联目标 | 主要用途 |
|---|---|---|---|
for |
<label>, <output>, <datalist> |
其他元素的**id** |
建立可访问性关联/计算关系 |
form |
所有表单元素 | 表单的**id** |
让元素在表单外部也能归属表单 |
list |
<input> |
<datalist> 的 id |
为输入框提供选项列表 |
口诀
for永远找id
(label、output、datalist 都如此)form是"远程归属"
(让元素能远程属于某个表单)list是输入框的"智能提示"
(关联 datalist 的 id)- 单选组靠
name团结
(相同 name 的单选按钮互斥)
表单验证
自动验证
通过在元素中使用属性的方法,在表单被提交的时候执行自动验证
输入类型验证
| 输入类型 | 自动验证行为 |
|---|---|
email |
验证电子邮件格式 |
url |
验证URL格式 |
number |
只允许数字 |
tel |
移动端会调出数字键盘 |
date/time |
验证日期时间格式 |
属性驱动验证
| 属性 | 验证行为 |
|---|---|
required |
字段必填 |
minlength/maxlength |
文本长度限制 |
min/max |
数字/日期范围 |
step |
元素值的增加减少的增量 |
pattern |
正则表达式验证 |
checkValidity显式验证
checkValidity() 检查单个表单元素或整个表单是否通过所有验证约束,返回布尔值,且会自动触发浏览器显示验证提示(当元素无效时)
<script>
function check(){
var email = document.getElementById('email');
if (!email.checkValidity()) {
email.setCustomValidity('邮箱无效');
return false;
...
}
</script>
<form onsubmit="return check()">
<input id="emali" type="email" ...>
...
<button type="submit">提交</button>
</form>
避免验证
表单关闭验证
<form novalidate ...>
...
</form>
单个输入框关闭验证
<form ...>
<input type="text" formnovalidate>
...
</form>
需要注意,的是在实际开发中,应加强验证强度!
自定义错误提示
<script>
function check(){
var email = document.getElementById('email');
if (!email.checkValidity()) {
email.setCustomValidity('邮箱无效');//自定义错误提示
return false;
...
}
</script>
<form onsubmit="rturn check()">
<input id="emali" type="email" ...>
...
<button type="submit">提交</button>
</form>
图像
图像的基本格式
| 格式 | 压缩方式 | 色彩深度 | 透明度支持 | 动画支持 | 文件大小 | 主要用途 |
|---|---|---|---|---|---|---|
| JPG | 有损压缩 | 24位(1600万色) | ❌ | ❌ | 小 | 网页照片、摄影 |
| PNG | 无损压缩 | 8/24/32位 | ✔(Alpha) | ❌ | 较大 | 透明图标、高质量图像 |
| GIF | 无损压缩 | 8位(256色) | ✔(1位) | ✔ | 小 | 简单动画、低色彩图形 |
| WebP | 有损/无损 | 24/32位 | ✔ | ✔ | 较小 | 网页优化(替代JPEG/PNG) |
| SVG | 无损(代码) | 无限(矢量) | ✔ | ✔(JS/CSS) | 小 | 网页图标、矢量图形 |
Img
<img> 标签是 HTML 中用于在网页上嵌入图像的基本元素。
<img src="图片地址" alt="替代文本">
| 属性 | 描述 | 示例 |
|---|---|---|
src |
指定图像路径(必需) | src="images/logo.png" |
alt |
替代文本(图像无法显示时显示) | alt="logo" |
width |
设置图像宽度(像素或百分比) | width="200" |
height |
设置图像高度(像素或百分比) | height="100" |
title |
鼠标悬停时显示的提示文本 | title="点击查看大图" |
loading |
控制懒加载行为 | loading="lazy" |
srcset |
响应式图像,不同分辨率提供不同图像 | srcset="small.jpg 480w, large.jpg 1080w" |
sizes |
与srcset配合使用,定义显示条件 | sizes="(max-width: 600px) 480px, 800px" |
响应式图像
<img src="default.jpg"
srcset="small.jpg 480w, medium.jpg 768w, large.jpg 1200w"
sizes="(max-width: 600px) 480px, (max-width: 1200px) 768px, 1200px"
alt="响应式图像示例">
值得一提的是,尺寸设置建议
HTML属性+css
Img Map
图像热区链接(Image Map)允许在单个图片上定义多个可点击区域,每个区域可以链接到不同的目标。这是创建交互式图片的强大工具,常用于地图、产品图、导航菜单等场景。
图像热区链接由两部分组成:
<img>标签(添加usemap属性)<map>标签(定义热区)<area>标签 (定义范围)
<area>属性:
| 属性 | 描述 | 必需 | 示例 |
|---|---|---|---|
shape |
定义热区形状 | 是 | rect, circle, poly, default |
coords |
定义热区坐标 | 是 | rect:右,上,左,下 |
href |
链接目标 | 否 | URL |
alt |
替代文本 | 是 | 描述性文本 |
target |
打开方式 | 否 | _blank, _self 等 |
title |
悬停提示 | 否 | 提示文本 |
<img src="image.jpg" alt="示例图片" usemap="#examplemap">
<map name="examplemap">
<area shape="rect" coords="34,44,270,350" href="page1.html" alt="区域1">
<area shape="circle" coords="100,100,50" href="page2.html" alt="区域2">
<area shape="poly" coords="10,20,40,60,100,80" href="page3.html" alt="区域3">
</map>
需要注意的是,这里将
<img>和<map>链接起来的是name
视频
标签
| 标签 | 描述 |
|---|---|
<video> |
定义一个视频 |
<source> |
定义多种媒体资源,比如 |
<video width="640" height="360" controls poster="poster.jpg">
<source src="video.mp4" type="video/mp4">
<source src="video.webm" type="video/webm">
您的浏览器不支持 HTML5 video 标签。
</video>
主要属性
<video>
| 属性 | 描述 | 示例 |
|---|---|---|
src |
视频文件路径 | src="video.mp4" |
controls |
显示播放控件 | controls |
autoplay |
自动播放 | autoplay |
loop |
循环播放 | loop |
muted |
静音 | muted |
poster |
视频封面图 | poster="poster.jpg" |
width/height |
设置尺寸 | width="640" height="360" |
preload |
预加载方式 | preload="auto" metadata none |
<source>属性 值 描述 srcURL 规定媒体文件的 URL。 typeMIME_type 规定媒体资源的 MIME 类型。
视频格式
| 格式 | MIME 类型 | 浏览器支持 |
|---|---|---|
MP4 |
video/mp4 | 所有现代浏览器 |
WebM |
video/webm | Chrome, Firefox, Edge |
Ogg |
video/ogg | Firefox, Opera |
音频
与
<video>标签基本相同,没有封面和尺寸元素
音频格式
- MP3 (audio/mpeg)
- OGG (audio/ogg)
- WAV (audio/wav)
- AAC (audio/aac)
绘图
Canvas
创建canvas元素
- Canvas 是 HTML5 提供的
<canvas>标签,允许通过 JavaScript 动态绘制 2D 图形。 - 适用于数据可视化、游戏开发、图像处理等场景
<canvas id="myCanvas" width="500" height="300"></canvas>
获取2D渲染上下文
var canvas = document.getElementById("myCanvas");
var ctx = canvas.getContext("2d");
getContext("2d")是绘制 2D 图形的核心方法
绘制基本图形
- 线条
moveTo(x, y) + lineTo(x, y) + stroke()
- 圆形
arc(x, y, radius, startAngle, endAngle, anticlockwise)
- 矩形
fillRect(x, y, width, height)(填充)、strokeRect(x, y, width, height)(描边)rect(x, y, width, height)+stroke()/fill()
值得一提的是,前者适合绘制
快速绘制,后者适合复杂路径组合
核心API与绘制方法
路径绘制
beginPath():开始新路径(避免样式污染)closePath():闭合路径(自动连接起点和终点)fill()/stroke():填充或描边路径。
样式设置
-
颜色:
fillStyle(填充色)、strokeStyle(描边色) -
线宽:
lineWidth(默认 1px)
lineJoin属性决定了当两条线相交时如何连接它们,有三个可选值:- miter(默认值):创建一个尖角连接
- bevel:创建一个斜角连接
- round:创建一个圆角连接
lineCap属性决定了线条端点如何绘制,有三个可选值:- butt(默认值):线条末端以方形结束,不超出端点
- round:线条末端以圆形结束,超出端点线宽的一半
- square:线条末端以方形结束,超出端点线宽的一半
文本渲染
fillText(text, x, y,maxWidth):填充文字strokeText(text, x, y,maxWidth):描边文字font = "[font-style] [font-weight] [font-size] [font-family]":设置字体样式- 所有参数都是可选的,但至少需要指定
font-size和font-family。 - 顺序不能乱,必须按照 CSS 规范书写。
- 所有参数都是可选的,但至少需要指定
| 参数 | 可选值 | 示例 |
|---|---|---|
font-style |
normal默认, italic斜体, oblique伪斜体,浏览器可能渲染为 italic |
"italic 16px Arial" |
font-weight |
normal, bold, 100~900 |
"bold 16px Arial" |
font-size |
px, em, % |
"20px Arial" |
font-family |
字体名称(支持备选),用逗号分隔 | "Arial, sans-serif" |
字体样式
"Arial"(无衬线字体)"Times New Roman"(衬线字体)"Courier New"(等宽字体)"Microsoft YaHei"(微软雅黑,中文常用)"sans-serif"(通用无衬线字体,fallback 选项)- 自定义字体
图像处理
drawImage(img, x, y):绘制图片到 CanvasgetImageData()/putImageData():像素级操作(可用于滤镜效果)
坐标变换
translate(x, y):移动原点rotate(angle):旋转画布scale(sx, sy):缩放
SVG
SVG (Scalable Vector Graphics) 是一种基于 XML 的矢量图像格式,用于在网页和应用程序中显示各种图形。与位图不同,SVG 图像由数学公式描述的线条和曲线组成,因此可以无限缩放而不失真
使用SVG
直接内联
<svg width="100" height="100" xmlns="http://www.w3.org/2000/svg">
<circle cx="50" cy="50" r="40" fill="red"/>
...
</svg>
<img>/css背景
<!-- img-->
<img src="image.svg" alt="SVG图像描述" width="100" height="100">
<!-- css背景 -->
background-image: url('image.svg');
<object>
<object type="image/svg+xml" data="image.svg" width="100" height="100">
<!-- 后备内容 -->
<img src="fallback.png" alt="SVG后备图像">
</object>
总结
-
优先考虑交互性时:
- 首选:内联 SVG
- 次选:object 标签
-
静态内容性能优先时:
- 首选:img 标签
- 次选:CSS 背景
基本图形
矩形
<rect x="10" y="10" width="80" height="60" fill="blue" stroke="black" stroke-width="2"/>
属性:
x,y:左上角坐标rx,ry:圆角半径width,height:宽高fill:填充颜色stroke:边框颜色stroke-width:边框宽度
圆形
<circle cx="50" cy="50" r="40" fill="red"/>
属性:
cx,cy:圆心坐标r:半径
椭圆
<ellipse cx="50" cy="50" rx="40" ry="30" fill="green"/>
属性:
cx,cy:圆心坐标rx:x轴半径ry:y轴半径
直线
<line x1="10" y1="10" x2="90" y2="90" stroke="black" stroke-width="2"/>
属性:
x1,y1:起点坐标x2,y2:终点坐标
折线
<polyline points="10,10 40,40 10,70 40,100" fill="none" stroke="black" stroke-width="2"/>
属性:
points:一系列坐标点,用空格分隔
路径
<path d="M10 10 L90 10 L50 90 Z" fill="purple"/>
| 命令 | 等价写法 | 说明 |
|---|---|---|
M |
moveto |
移动画笔 |
L |
lineto |
画直线 |
H |
- | 水平线 |
V |
- | 垂直线 |
C |
curveto |
三次贝塞尔 |
S |
smooth curveto |
平滑三次贝塞尔 |
Q |
quadratic curveto |
二次贝塞尔 |
T |
smooth quadratic curveto |
平滑二次贝塞尔 |
A |
arcto |
椭圆弧 |
Z |
closepath |
闭合路径 |
文字
<text x="20" y="30">这是SVG文字</text>
| 属性 | 说明 | 示例值 |
|---|---|---|
| x | 文字起始x坐标 | 数字(如20) |
| y | 文字基线y坐标 | 数字(如30) |
| 属性 | 说明 | 示例值 |
|---|---|---|
| font-family | 字体 | "Arial", "微软雅黑" |
| font-size | 字号 | "16px", "1.2em" |
| font-weight | 字重 | "normal", "bold" |
| font-style | 字体样式 | "normal", "italic" |
| text-decoration | 文本装饰 | "none", "underline" |
| letter-spacing | 字符间距 | "2px", "0.1em" |
| word-spacing | 单词间距 | "5px" |
| text-anchor | 文本锚点 | "start", "middle", "end" |
| dominant-baseline | 基线对齐 | "hanging", "middle" |
变换
<rect ... transform="变换函数1 变换函数2 ...">
| 英文函数名 | 中文翻译 | 语法 | 描述 | 示例 |
|---|---|---|---|---|
translate() |
平移 | translate(tx, ty) |
移动元素 | translate(10, 20) |
scale() |
缩放 | scale(sx, sy) |
改变元素尺寸 | scale(2, 1.5) |
rotate() |
旋转 | rotate(angle, cx, cy) |
围绕点旋转 | rotate(45, 50, 50) |
skewX() |
X轴倾斜 | skewX(angle) |
沿X轴倾斜变形 | skewX(15) |
skewY() |
Y轴倾斜 | skewY(angle) |
沿Y轴倾斜变形 | skewY(30) |
matrix() |
矩阵变换 | matrix(a, b, c, d, e, f) |
6值矩阵变换 | matrix(1,0.5,-0.5,1,0,0) |
Css3
选择器
简单选择器
| 名称 | 选择器 | 例子 | 例子描述 |
|---|---|---|---|
| 类选择器 | .class | .intro | 选取所有 class="intro" 的元素。 |
| id选择器 | #id | #firstname | 选取 id="firstname" 的那个元素。 |
| 通用选择器 | * | * | 选取所有元素。 |
| 元素选择器 | element | p | 选取所有 元素。 |
| 分组选择器 | element,element,.. | div, p | 选取所有 元素和所有 元素。 |
组合器选择器
| 名称 | 选择器 | 示例 | 示例描述 |
|---|---|---|---|
| 后代选择器 | element element | div p | 选择 元素内的所有 元素。 |
| 子选择器 | element>element | div > p | 选择其父元素是 元素的所有 元素。 |
| 相邻兄弟选择器 | element+element | div + p | 选择所有 紧随 元素之后的 元素。 |
| 通用兄弟选择器 | element1~element2 | p ~ ul | 选择前面有 元素的每个
|
伪类选择器
伪类用于定义元素的特殊状态。
| 选择器 | 例子 | 例子描述 |
|---|---|---|
| :active | a:active | 选择活动的链接。 |
| :checked | input:checked | 选择每个被选中的 元素。 |
| :disabled | input:disabled | 选择每个被禁用的 元素。 |
| :empty | p:empty | 选择没有子元素的每个 元素。 |
| :enabled | input:enabled | 选择每个已启用的 元素。 |
| :first-child | p:first-child | 选择作为其父的首个子元素的每个 元素。 |
| :first-of-type | p:first-of-type | 选择作为其父的首个 元素的每个 元素。 |
| :focus | input:focus | 选择获得焦点的 元素。 |
| :hover | a:hover | 选择鼠标悬停其上的链接。 |
| :in-range | input:in-range | 选择具有指定范围内的值的 元素。 |
| :invalid | input:invalid | 选择所有具有无效值的 元素。 |
| :lang(language) | p:lang(it) | 选择每个 lang 属性值以 "it" 开头的 元素。 |
| :last-child | p:last-child | 选择作为其父的最后一个子元素的每个 元素。 |
| :last-of-type | p:last-of-type | 选择作为其父的最后一个 元素的每个 元素。 |
| :link | a:link | 选择所有未被访问的链接。 |
| :not(selector) | :not(p) | 选择每个非 元素的元素。 |
| :nth-child(n) | p:nth-child(2) | 选择作为其父的第二个子元素的每个 元素。 |
| :nth-last-child(n) | p:nth-last-child(2) | 选择作为父的第二个子元素的每个 元素,从最后一个子元素计数。 |
| :nth-last-of-type(n) | p:nth-last-of-type(2) | 选择作为父的第二个 元素的每个 元素,从最后一个子元素计数 |
| :nth-of-type(n) | p:nth-of-type(2) | 选择作为其父的第二个 元素的每个 元素。 |
| :only-of-type | p:only-of-type | 选择作为其父的唯一 元素的每个 元素。 |
| :only-child | p:only-child | 选择作为其父的唯一子元素的 元素。 |
| :optional | input:optional | 选择不带 "required" 属性的 元素。 |
| :out-of-range | input:out-of-range | 选择值在指定范围之外的 元素。 |
| :read-only | input:read-only | 选择指定了 "readonly" 属性的 元素。 |
| :read-write | input:read-write | 选择不带 "readonly" 属性的 元素。 |
| :required | input:required | 选择指定了 "required" 属性的 元素。 |
| :root | root | 选择元素的根元素。 |
| :target | #news:target | 选择当前活动的 #news 元素(单击包含该锚名称的 URL)。 |
| :valid | input:valid | 选择所有具有有效值的 元素。 |
| :visited | a:visited | 选择所有已访问的链接。 |
伪元素选择器
| 选择器 | 例子 | 例子描述 |
|---|---|---|
| ::after | p::after | 在每个 元素之后插入内容。 |
| ::before | p::before | 在每个 元素之前插入内容。 |
| ::first-letter | p::first-letter | 选择每个 元素的首字母。 |
| ::first-line | p::first-line | 选择每个 元素的首行。 |
| ::selection | p::selection | 选择用户选择的元素部分。 |
属性选择器
| 选择器 | 例子 | 例子描述 |
|---|---|---|
| [attribute] | [target] | 选择带有 target 属性的所有元素。 |
| [attribute=value] | [target=_blank] | 选择带有 target="_blank" 属性的所有元素。 |
| [attribute~=value] | [title~=flower] | 选择带有包含 "flower" 一词的 title 属性的所有元素。(独立单词,空格) |
| [attribute*=value] | a[href*="w3school"] | 选择其 href 属性值包含子串 "w3school" 的每个 元素。 |
| [attribute^=value] | a[href^="https"] | 选择其 href 属性值以 "https" 开头的每个 元素。 |
| [attribute$=value] | a[href$=".pdf"] | 选择其 href 属性值以 ".pdf" 结尾的每个 元素。 |
| [attribute|=value] | [lang|=en] | 选择带有以 "en" 开头的 lang 属性的所有元素。(后面只能跟连字符) |
CSS的使用
外部引用
<link rel="stylesheet" type="text/css" href="mystyle.css">
内部引用
<head>
<style>
...
</style>
</head>
行内引用
<div style="...">
...
</div>
背景
背景颜色
background-color 属性指定元素的背景色。
body {
background-color: lightblue;
}
背景图片
background-image 属性指定用作元素背景的图像。
默认情况下,图像会重复,以覆盖整个元素。
body {
background-image: url("paper.gif");
}
背景重复
默认情况下,background-image 属性在水平和垂直方向上都重复图像。
body {
background-repeat: repeat|no-repeat|repeat-x|repeat-y;
}
| 名称 | 值 |
|---|---|
| 重复 | repeat |
| 不重复 | no-repeat |
| x重复 | repeat-x |
| y重复 | repeat-y |
背景位置
body {
background-position: top|bottom|left|right;
}
值得一提的是,position的值最多可以填写两个,例如
:top right;
背景附着
该 background-attachment属性指定背景图像是否应滚动或固定(不会随页面的其余部分滚动)
body{
background-attachment:fixed|scroll;
}
边框
CSS border 属性允许您指定元素边框的样式、宽度和颜色
边框样式*
border-style 属性指定要显示的边框类型。
dotted- 定义点线边框dashed- 定义虚线边框solid- 定义实线边框double- 定义双边框groove- 定义 3D 坡口边框。效果取决于 border-color 值ridge- 定义 3D 脊线边框。效果取决于 border-color 值inset- 定义 3D inset 边框。效果取决于 border-color 值outset- 定义 3D outset 边框。效果取决于 border-color 值none- 定义无边框hidden- 定义隐藏边框
border-style 属性可以设置一到四个值(用于上边框、右边框、下边框和左边框)。
边框宽度
border-width 属性指定四个边框的宽度,也可以设置一到四个值(用于上边框、右边框、下边框和左边框)
p{
border-style: solid;
border-width: 5px ;
}
边框颜色
border-color 属性用于设置四个边框的颜色。
p{
border-style: solid;
border-color: red;
}
单边
在 CSS 中,还有一些属性可用于指定每个边框(顶部、右侧、底部和左侧)
p {
border-top-style: dotted;
border-right-style: solid;
border-bottom-style: dotted;
border-left-style: solid;
}
圆角
border-radius 属性用于向元素添加圆角边框
p {
border: 2px solid;
border-radius: 5px;
}
外边距
CSS margin 属性用于在任何定义的边框之外,为元素周围创建空间。
为元素的每一侧指定外边距的属性:
margin-topmargin-rightmargin-bottommargin-left
所有外边距属性都可以设置以下值:
- auto - 浏览器来计算外边距
- length - 以 px、pt、cm 等单位指定外边距
- % - 指定以包含元素宽度的百分比计的外边距
- inherit - 指定应从父元素继承外边距
值得一提的是,这里的外边距可以设置负值
auto
您可以将 margin 属性设置为 auto,以使元素在其容器中水平居中。
然后,该元素将占据指定的宽度,并且剩余空间将在左右边界之间平均分配。
div {
width: 300px;
margin: auto;
border: 1px solid red;
}
内边距
CSS padding 属性用于在任何定义的边界内的元素内容周围生成空间。
CSS 拥有用于为元素的每一侧指定内边距的属性:
padding-toppadding-rightpadding-bottompadding-left
所有内边距属性都可以设置以下值:
- length - 以 px、pt、cm 等单位指定内边距
- % - 指定以包含元素宽度的百分比计的内边距
- inherit - 指定应从父元素继承内边距
值得一提的是,这里的内边距不可以设置负值,并且auto无效
宽度和高度
height 和 width 属性用于设置元素的高度和宽度。
div {
height: 200px;
width: 50%;
background-color: powderblue;
}
height 和 width 属性定义的是元素内容框(content box)的尺寸,不包含padding、border和margin所占用的空间。
height 和 width 属性可设置如下值:
auto- 默认。浏览器计算高度和宽度。*length*- 以 px、cm 等定义高度/宽度。%- 以包含块的百分比定义高度/宽度。initial- 将高度/宽度设置为默认值。inherit- 从其父值继承高度/宽度。
| 属性 | 描述 |
|---|---|
| height | 设置元素的高度。 |
| max-height | 设置元素的最大高度。 |
| max-width | 设置元素的最大宽度。 |
| min-height | 设置元素的最小高度。 |
| min-width | 设置元素的最小宽度。 |
| width | 设置元素的宽度。 |
盒子模型

- 内容 - 框的内容,其中显示文本和图像。
- 内边距 - 清除内容周围的区域。内边距是透明的。
- 边框 - 围绕内边距和内容的边框。
- 外边距 - 清除边界外的区域。外边距是透明的。
值得一提的是,背景应用于由
内容和内边距、边框组成的区域。
元素的总宽度应该这样计算:
元素总宽度 = 宽度 + 左内边距 + 右内边距 + 左边框 + 右边框 + 左外边距 + 右外边距
元素的总高度应该这样计算:
元素总高度 = 高度 + 上内边距 + 下内边距 + 上边框 + 下边框 + 上外边距 + 下外边距
轮廓
轮廓是在元素周围绘制的一条线,在边框之外,以凸显元素。
| 属性 | 描述 |
|---|---|
| outline | 简写属性,在一条声明中设置 outline-width、outline-style 以及 outline-color。 |
| outline-color | 设置轮廓的颜色。(invert - 执行颜色反转(确保轮廓可见,无论是什么颜色背景)) |
| outline-offset | 指定轮廓与元素的边缘或边框之间的空间。 |
| outline-style | 设置轮廓的样式。 |
| outline-width | 设置轮廓的宽度。 |
轮廓与边框不同!不同之处在于:轮廓是在元素边框之外绘制的,并且可能与其他内容重叠。同样,轮廓也不是元素尺寸的一部分;元素的总宽度和高度不受轮廓线宽度的影响。
文字
颜色
使用 color 属性设置字体颜色
p{
color="blure"
}
文本对齐
text-align 属性用于设置文本的水平对齐方式。
文本可以左对齐或右对齐,或居中对齐。
p{
text-align="left|center|right|justify"
}
竖直对齐
vertical-align 属性设置元素的垂直对齐方式。
p{
vertical-align="top|middle|bottom"
}
文本方向
direction 属性可用于更改元素的文本方向:
p {
direction: rtl|ltr;
}
文本装饰
text-decoration 属性用于设置或删除文本装饰。
text-decoration: none; 通常用于从链接上删除下划线:
h1 {
text-decoration: overline;
}
h2 {
text-decoration: line-through;
}
h3 {
text-decoration: underline;
}
文本转换
text-transform 属性用于指定文本中的大写和小写字母。
它可用于将所有内容转换为大写或小写字母,或将每个单词的首字母大写
p.uppercase {
text-transform: uppercase;
}
p.lowercase {
text-transform: lowercase;
}
p.capitalize {
text-transform: capitalize;
}
文字间距
索引
text-indent 属性用于指定文本第一行的缩进:
p {
text-indent: 50px;
}
字母间距
letter-spacing 属性用于指定文本中字符之间的间距。
h1 {
letter-spacing: 3px;
}
h2 {
letter-spacing: -3px;
}
字间距
word-spacing 属性用于指定文本中单词之间的间距。
h1 {
word-spacing: 10px;
}
h2 {
word-spacing: -5px;
}
行高
line-height 属性用于指定行之间的间距:
p.small {
line-height: 0.8;
}
p.big {
line-height: 1.8;
}
空白区域
white-space 属性指定元素内部空白的处理方式。
p {
white-space: nowrap;
}
文本阴影
text-shadow属性用于设置文本阴影
p{
text-shadow: [x偏移值] [y偏移值] [模糊值] [颜色值];
}
字体
font-family用于规定文本的字体
在 CSS 中,我们使用 font-family 属性规定文本的字体。
font-family 属性应包含多个字体名称作为“后备”系统,以确保浏览器/操作系统之间的最大兼容性。请以您需要的字体开始,并以通用系列结束(如果没有其他可用字体,则让浏览器选择通用系列中的相似字体)。字体名称应以逗号分隔。
**注释:**如果字体名称不止一个单词,则必须用引号引起来,例如:"Times New Roman"。
p {
font-family: "Times New Roman", Times, serif;
}
字体样式
font-style 属性主要用于指定斜体文本。
此属性可设置三个值:
- normal - 文字正常显示
- italic - 文本以斜体显示
- oblique - 文本为“倾斜”(倾斜与斜体非常相似,但支持较少)
p {
font-style: normal;
}
font-weight 属性指定字体的粗细
p {
font-weight: 700;
}
字体样式
font-size 属性设置文本的大小。
绝对尺寸(px...):
- 将文本设置为指定大小
- 不允许用户在所有浏览器中更改文本大小(可访问性不佳)
- 当输出的物理尺寸已知时,绝对尺寸很有用
相对尺寸(rem/em...):
- 设置相对于周围元素的大小
- 允许用户在浏览器中更改文本大小
表格
边框
如需在 CSS 中设置表格边框,请使用 border 属性。
下例为
| 和 | 元素规定了黑色边框:
条状表格为了实现斑马纹表格效果,请使用
响应式表格如果屏幕太小而无法显示全部内容,则响应式表格会显示水平滚动条:
JS变量声明在JS中声明变量的方法有三种:
命名标准你可以给你的变量赋任何你喜欢的名字,但有一些限制。
常见变量类型1. 数你可以在变量中存储数字,不论这些数字是像 30(也叫整数)这样,或者像 2.456 这样的小数(也叫做浮点数)。与其他编程语言不同,在 JavaScript 中你不需要声明一个变量的类型。当你给一个变量数字赋值时,不需要用引号括起来。
2. 字符串字符串是文本的一部分。当你给一个变量赋值为字符串时,你需要用单引号或者双引号把值给包起来,否则 JavaScript 将会把这个字符串值理解成别的变量名。
3. 布尔 Boolean 的值有 2 种:true 或 false。它们通常被用于在适当的代码之后,测试条件是否成立。举个例子,一个简单的示例如下:
然而实际上通常是以下用法:
4. 数组数组是一个单个对象,其中包含很多值,方括号括起来,并用逗号分隔。尝试在你的控制台输入以下行:
当数组被定义后,你可以使用如下所示的语法来访问各自的值,例如下行:
此处的方括号包含一个索引值,该值指定要返回的值的位置。计算机从 0 开始计数,而不是像我们人类那样的 1。 5. 对象在编程中,对象是现实生活中的模型的一种代码结构。你可以有一个简单的对象,代表一个停车场,并包含有关其宽度和长度的信息,或者你可以有一个代表一个人的对象,并包含有关他们的名字,身高,体重,他们说什么语言,如何说 你好,他们,等等。 尝试在你的控制台输入以下行:
要检索存储在对象中的信息,可以使用以下语法:
我们现在不会看对象了 - 你可以在将来的模块中了解更多关于这些对象的信息。 typeof()可返回传入变量的变量类型
运算符
这里的 字符串创建字符串在 JavaScript 中,你可以选择单引号(
文本处理嵌入JavaScript在模板字面量中,你可以在 🔥推荐
当然你也可以使用
类型转化通过
类似的方法还有...但不仅限于此:
String对象常用属性length这很简单 — 你可以很轻松的使用
...当然,对象String的属性远不止此,你可以查看详细信息 常用方法charAt()想要实现它,你有两种方法:
indexOf()这个函数可以帮助我们在一个字符串中查找某子字符串并返回起始索引,当然若是不包含,那么将返回
slice()这个函数可以帮助我们提取子字符串并返回
toUpperCase()/toLowerCase()这个函数能将所有字符转换为小写或大写。例如,如果要在将数据存储在数据库中之前对所有用户输入的数据进行规范化,这可能非常有用。
replase()该函数能将字符串中的一个子字符串替换为另一个子字符串。 它需要两个参数 - 要被换下的字符串和要被替换上的字符串。
|
|---|



