前端学习笔记
HTML基础教程
HTML文档结构
HTML文档由多个部分组成,包括文档类型声明、HTML标签、头部信息和主体内容等。
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>页面标题</title>
<link rel="icon" href="图标路径 - 网站图标">
<link rel="shortcut" href="图标路径 - 地址栏显示图标">
<!-- 其他元数据和资源引用 -->
</head>
<body>
<!-- 页面内容 -->
</body>
</html>
HTML标签
标题标签
HTML提供了6级标题标签,从H1到H6,用于表示不同级别的标题。
<h1>一级标题,一个网页尽量出现一次H1</h1>
<h2>二级标题</h2>
<h3>三级标题</h3>
<h4>四级标题</h4>
<h5>五级标题</h5>
<h6>六级标题</h6>
文本标签
文本标签用于格式化文本内容,如粗体、斜体、上标等。
<strong>文本标签:粗体</strong>
<em>文本标签:斜体</em>
<sup>文本标签:上标</sup>
<sub>文本标签:下标</sub>
<s>文本标签:中划线</s>
<u>文本标签:下划线</u>
<big>大号文本</big>
<small>小号文本</small>
<code>代码文本</code>
特殊字符
HTML中使用特殊字符实体来表示一些特殊符号。
空格 : (三个空格等价于一个汉字)
分节§ :§
版权© :©
注册® :®
商标™:™
欧元€ :€
日元¥ :¥
摄氏° :°
大于> :>
列表标签
HTML提供了三种列表标签:有序列表、无序列表和定义列表。
有序列表
<div id="有序列表">
<ol type="i">
<!--只能包含li元素-->
<li>列表项</li>
<li>列表项</li>
<li>列表项</li>
</ol>
</div>
无序列表
<div id="无序列表">
<ul type="disc"><!--disc/circle/square-->
<!--只能包含li元素-->
<li>列表项</li>
<li>列表项</li>
<li>列表项</li>
</ul>
</div>
定义列表
<div id="定义列表">
<dt>名词1</dt>
<dd>描述1</dd>
<dt>名词2</dt>
<dd>描述2</dd>
<dt>名词3</dt>
<dd>描述3</dd>
</div>
表格标签
表格用于展示结构化数据,由表头、表体和表脚组成。
<div id="表格">
<table>
<caption>表格标题</caption>
<thead>
<tr>
<th>班级</th>
<th>姓名</th>
<th>总分</th>
</tr>
</thead>
<tbody>
<tr>
<td>一班</td>
<td>张三</td>
<td>100</td>
</tr>
<tr>
<td>二班</td>
<td>李四</td>
<td>90</td>
</tr>
<tr>
<td>三班</td>
<td>王五</td>
<td>85</td>
</tr>
</tbody>
<tfoot>
<tr>
<td>总分</td>
<td></td>
<td>275</td>
</tr>
</tfoot>
</table>
</div>
图片标签
图片标签用于在网页中插入图片,并提供图片的相关属性。
<img src="图片路径" alt="图片描述" width="图片宽度" height="图片高度" />
链接标签
链接标签用于在网页中插入超链接,并提供链接的相关属性。
<a href="链接地址" target="_blank">链接文本</a>
表单标签
表单标签用于创建网页表单,并提供表单的相关属性。
<form action="提交地址" method="post">
<label for="name">姓名</label>
<input type="text" id="name" name="name" />
<br />
<label for="email">邮箱</label>
<input type="email" id="email" name="email" />
<br />
<label for="message">留言</label>
<textarea id="message" name="message"></textarea>
<br />
<input type="submit" value="提交" />
</form>
框架标签
框架标签用于创建网页内嵌框架,并提供框架的相关属性。
<iframe src="框架地址" frameborder="0"></iframe>
CSS基础教程
CSS选择器
CSS选择器用于选择网页元素,并应用相应的样式。
标签选择器
标签选择器用于选择特定标签。
标签名 {
/* 样式 */
}
类选择器
类选择器用于选择具有相同类属性的元素。
.类名 {
/* 样式 */
}
ID选择器
ID选择器用于选择具有相同ID属性的元素。
#ID名 {
/* 样式 */
}
通配选择器
通配选择器用于选择所有元素。
* {
/* 样式 */
}
后代选择器
后代选择器用于选择特定元素的后代元素。
父元素 > 子元素 {
/* 样式 */
}
子元素选择器
子元素选择器用于选择特定元素的直接子元素。
父元素 < 子元素 {
/* 样式 */
}
相邻兄弟选择器
相邻兄弟选择器用于选择特定元素的相邻兄弟元素。
元素A + 元素B {
/* 样式 */
}
属性选择器
属性选择器用于选择具有特定属性的元素。
元素[属性名=属性值] {
/* 样式 */
}
CSS样式
CSS样式用于设置网页元素的样式。
字体样式
字体样式用于设置字体。
font-family: 字体名称, 字体名称, ...;
font-size: 字体大小;
font-style: normal/italic/oblique;
font-weight: normal/bold/bolder/lighter;
font-variant: normal/small-caps;
line-height: 行高;
text-align: left/right/center/justify;
text-decoration: none/underline/overline/line-through/blink;
text-transform: none/capitalize/uppercase/lowercase;
text-indent: 缩进距离;
letter-spacing: 字符间距;
word-spacing: 单词间距;
color: 颜色;
背景样式
背景样式用于设置背景。
background-color: 背景颜色;
background-image: 背景图片路径;
background-repeat: no-repeat/repeat/repeat-x/repeat-y;
background-position: 背景位置;
background-attachment: scroll/fixed/local;
background-size: 背景大小;
边框样式
边框样式用于设置边框。
border: 边框宽度 边框样式 边框颜色;
border-width: 边框宽度;
border-style: none/solid/dashed/dotted/double/groove/ridge/inset/outset;
border-color: 边框颜色;
border-top: 边框宽度 边框样式 边框颜色;
border-right: 边框宽度 边框样式 边框颜色;
border-bottom: 边框宽度 边框样式 边框颜色;
border-left: 边框宽度 边框样式 边框颜色;
border-top-width: 边框宽度;
border-right-width: 边框宽度;
border-bottom-width: 边框宽度;
border-left-width: 边框宽度;
border-top-style: none/solid/dashed/dotted/double/groove/ridge/inset/outset;
border-right-style: none/solid/dashed/dotted/double/groove/ridge/inset/outset;
border-bottom-style: none/solid/dashed/dotted/double/groove/ridge/inset/outset;
border-left-style: none/solid/dashed/dotted/double/groove/ridge/inset/outset;
border-top-color: 边框颜色;
border-right-color: 边框颜色;
border-bottom-color: 边框颜色;
border-left-color: 边框颜色;
border-collapse: collapse/separate;
border-spacing: 边框间距;
outline: 轮廓宽度 轮廓样式 轮廓颜色;
outline-width: 轮廓宽度;
outline-style: none/solid/dashed/dotted/double/groove/ridge/inset/outset;
outline-color: 轮廓颜色;
盒子模型样式
盒子模型样式用于设置盒子模型。
width: 宽度;
height: 高度;
margin: 外边距;
margin-top: 上外边距;
margin-right: 右外边距;
margin-bottom: 下外边距;
margin-left: 左外边距;
padding: 内边距;
padding-top: 上内边距;
padding-right: 右内边距;
padding-bottom: 下内边距;
padding-left: 左内边距;
border-radius: 圆角半径;
box-shadow: 阴影水平偏移量 阴影垂直偏移量 阴影模糊半径 阴影扩展半径 阴影颜色;
overflow: visible/hidden/scroll/auto;
display: inline/block/inline-block/list-item/table/table-cell/table-row/none;
position: static/relative/absolute/fixed;
top: 上边距;
right: 右边距;
bottom: 下边距;
left: 左边距;
z-index: 层级;
其他样式
其他样式用于设置其他样式。
cursor: pointer/auto/crosshair/default/pointer/move/e-resize/nw-resize/n-resize/se-resize/sw-resize/s-resize/w-resize/text/wait/help/progress;
opacity: 透明度;
visibility: visible/hidden/collapse;
clear: none/left/right/both;
content: 内容;
quotes: 引号;
counter-reset: 计数器名称;
counter-increment: 计数器名称;
nav-index: 导航序号;
nav-up: 上一导航链接;
nav-right: 下一导航链接;
nav-down: 下一导航链接;
nav-left: 上一导航链接;
text-shadow: 水平偏移量 垂直偏移量 模糊半径 颜色;
text-emphasis-color: 颜色;
text-indent: 缩进距离;
text-decoration-color: 颜色;
JavaScript核心知识点
JavaScript基础
变量
变量用于存储数据,可以是任意类型。
var 变量名 = 值;
let 变量名 = 值;
const 变量名 = 值;
条件语句
条件语句用于执行不同的代码块。
if (条件) {
// 代码块
} else if (条件) {
// 代码块
} else {
// 代码块
}
循环语句
循环语句用于重复执行代码块。
for (初始化; 条件; 迭代) {
// 代码块
}
for (var i = 0; i < 10; i++) {
// 代码块
}
while (条件) {
// 代码块
}
do {
// 代码块
} while (条件);
函数
函数用于封装代码,可以重复使用。
function 函数名() {
// 代码块
}
函数名();
事件处理
事件处理用于响应用户操作。
元素.addEventListener('事件类型', 函数);
元素.removeEventListener('事件类型', 函数);
JSON
JSON (JavaScript Object Notation) 是一种轻量级的数据交换格式。
var obj = {
'属性名': '值',
'属性名': '值',
'属性名': '值',
};
var json = JSON.stringify(obj);
var obj = JSON.parse(json);
JavaScript对象
JavaScript对象用于存储数据。
对象字面量
对象字面量用于创建对象。
var obj = {
'属性名': '值',
'属性名': '值',
'属性名': '值',
};
属性
属性用于获取或设置对象的值。
obj.属性名 = 值;
var 值 = obj.属性名;
方法
方法用于操作对象。
obj.方法名();
原型
原型用于创建对象。
function 构造函数() {
this.属性名 = '值';
}
构造函数.prototype.方法名 = function() {
// 代码块
};
var obj = new 构造函数();
JavaScript数组
JavaScript数组用于存储一组数据。
创建数组
创建数组有两种方式。
var arr = new Array();
var arr = [元素1, 元素2, 元素3];
数组方法
数组方法用于操作数组。
arr.push(元素); // 尾部添加元素
arr.unshift(元素); // 头部添加元素
arr.pop(); // 尾部删除元素
arr.shift(); // 头部删除元素
arr.splice(起始索引, 删除个数, 新元素1, 新元素2, ...); // 插入/删除元素
arr.indexOf(元素); // 返回元素的索引
arr.lastIndexOf(元素); // 返回元素的最后一次出现的索引
arr.sort(); // 排序
arr.reverse(); // 反转
arr.join('' / ''); // 转换为字符串
arr.slice(起始索引, 结束索引); // 切片
JavaScript正则表达式
JavaScript正则表达式用于匹配文本。
创建正则表达式
创建正则表达式有两种方式。
var regex = /正则表达式/gi;
var regex = new RegExp('正则表达式', 'gi');
正则表达式方法
正则表达式方法用于匹配文本。
regex.test(文本); // 返回布尔值
regex.exec(文本); // 返回匹配结果数组
regex.match(文本); // 返回匹配结果数组
regex.replace(文本, 新文本); // 替换文本
regex.search(文本); // 返回匹配到的第一个位置
函数定义
JavaScript中函数是一等公民,可以通过多种方式定义。
function 函数名() {
// alert("Hello");
}
函数名();
函数参数
JavaScript函数可以有多个参数。
// 显式类型转换:Number() parseInt() parseFloat() toString()
// 前面一种是只能全为数字,后面两种是将开头为数字的部分转换(正负号除外)
// document.write中的换行用<br> alert用\n
// isFinite() 某数是否有限数值
// isNaN()
// escape() unescape()
// eval()
字符串操作
JavaScript提供了丰富的字符串操作方法。
var str = 'Hello World!';
str.length;
str.toLowerCase();
str.toUpperCase();
str.charAt(n);
str.substring(左闭, 右开);
str.replace(原字符, 新字符);
str.replace(正则表达式, 新字符);
str.split('分隔符')[n];
str.indexOf('首次出现的下标位置');
str.lastIndexOf('首次出现的下标位置');
数组操作
JavaScript数组是动态的,可以包含不同类型的元素。
var array = new Array(); / [];
array.slice(左开, 右闭);
array.unshift();
array.push();
array.shift();
array.pop();
array.sort(up/down);
array.reverse();
array.join();
str.split();
日期和数学对象
JavaScript提供了日期和数学对象来处理时间和数值计算。
var oDate = new Date();
getFullYear();
getMonth();
getDate();
getHours();
getMinutes();
getSeconds();
getDay();
Math.floor(Math.random() * (m - n + 1)) + n;
DOM操作
DOM (Document Object Model) 操作允许JavaScript动态修改网页内容。
DOM对象获取
// DOM对象的获取:getElementById、getElementsByTagName、getElementsByClassName、getElementsByName、document.title、document.body
// document.querySelector、document.querySelectorAll写法和CSS选择器一样
DOM元素操作
// 创建元素:document.createElement、document.createTextNode => appendChild、insertBefore、removeChild
// 复制元素:obj.cloneNode(1/true: 复制子元素、0/false: 不复制子元素)
// 替换元素:document.body.replaceChild
// 删除元素:removeAttribute
样式操作
// 获取CS属性值:getComputedStyle + '.attr' / ["attr"] 可直接赋值修改属性值
// getComputedSytle是计算后的样式,只有这个属性获得的对象才可以修改行内样式,上面的直接调用属性的方法属性只能修改标签中的内部样式
// cssText属性 = CSS代码
// 切换CSS样式一般是用JS直接修改标签的className
节点关系
// 查找父元素:.parentNode
// 查找子元素:.childNodes、firstChild、lastChild 包含所有元素节点、文本节点等
// 查找子元素:.children、firstElementChild、lastElementChild 只包含所有元素节点
// .length 可返回类数组的长度
// nodeType:1元素、2属性、3文本、8注释、9文档
// 查找兄弟元素:previousSibling、nextSibling、previousElementSibling、nextElementSibling
// 内部元素:innerHTML、内部文本:innerText
事件处理
JavaScript通过事件处理机制响应用户交互。
事件类型
// 鼠标事件:onclick、onmouseover、onmouseout、onmousedown、onmouseup、onmousemove
// 键盘事件:onkeydown、onkeyup
// 表单事件:onfocus、onblur、onselect选中文本框内容、onchange选择某一项 -> 方法:focus()、select()
// HTML5中的表单新增元素:placeholder,聚焦前空内容显示特定文本
// 编辑事件:oncopy、onselectstart、oncontextmenu => 返回布尔值即可
// 页面事件:onload、onbeforeunload
事件绑定
// 事件处理器:obj.onclick = function(){};
// 绑定事件:addEventListener(type"不带on的事件类型名", fn函数名, false事件冒泡); // 可为同一个元素添加多个相同的事件
// 解除事件:removeEventListener
// event对象(function(e)、e.):type、keyCode、shiftKey、ctrlKey、altKey
// this:调用this所在的函数的DOM对象
window对象
window对象是浏览器的全局对象,提供了许多有用的方法和属性。
// window对象 下一级 document文档对象、location地址对象、navigator浏览器对象、history历史对象、screen屏幕对象
// window对象的方法:alert、confirm、prompt、open、close、setTimeout、clearTimeout、setInterval、clearInterval