前端开发的核心技术主要围绕 HTML、CSS、JavaScript 三大基础语言展开,同时结合现代前端开发的需求,还包括 前端框架、构建工具、前端安全和性能优化 等内容。下面,我们详细解析前端开发中的核心技术。
一.HTML(超文本标记语言)详解
HTML(HyperText Markup Language)是前端开发的基础,用于构建网页的结构。HTML 由各种标签(Tag) 组成,每个标签都有不同的作用,主要用于定义文本、图片、链接、表单等网页元素。
1. HTML 基础
(1) HTML 文档结构
一个标准的 HTML5 文档结构如下:
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>我的网页</title>
</head>
<body>
<h1>欢迎来到我的网站</h1>
<p>这是一个 HTML 示例页面。</p>
</body>
</html>
解释:
<!DOCTYPE html>:声明 HTML5 版本,确保浏览器按照标准模式解析网页。<html lang="zh-CN">:定义 HTML 文档,lang="zh-CN"表示页面语言为中文。<head>:头部区域,包含网页的元信息(meta)、标题(title)、样式表等。<body>:网页的主体部分,包含可见内容(文本、图片、按钮等)。
2. HTML 重要标签
(1) 文字与段落标签
HTML 提供多种标签来定义网页上的文本内容:
<h1>一级标题</h1>
<h2>二级标题</h2>
<p>这是一个段落。</p>
<b>加粗文本</b> <strong>强调文本</strong>
<i>斜体文本</i> <em>加重语气</em>
<u>下划线文本</u> <s>删除线文本</s>
<mark>高亮文本</mark>
<h1>~<h6>:标题标签,h1最大,h6最小。<p>:段落标签,自动换行。<b>/<strong>:加粗文本,<strong>语义化更强。<i>/<em>:斜体文本,<em>语义化更强。<u>:下划线文本,<s>:删除线文本。<mark>:高亮文本。
(2) 链接(超链接)标签
超链接用于在网页之间跳转:
<a href="https://www.example.com" target="_blank" title="点击访问">访问示例网站</a>
href="URL":链接的目标地址。target="_blank":在新窗口打开链接。title="提示文本":鼠标悬停时显示提示信息。
锚点链接(跳转到页面内特定位置):
<a href="#section1">跳转到第1部分</a>
<h2 id="section1">第1部分</h2>
id="section1":标记锚点目标位置。href="#section1":点击后跳转到该位置。
(3) 图片标签
HTML 中使用 <img> 标签插入图片:
<img src="image.jpg" alt="示例图片" width="300" height="200">
src="image.jpg":图片路径。alt="示例图片":当图片加载失败时显示的文本(有利于 SEO)。width="300"、height="200":设置图片大小。
(4) 列表标签
无序列表(<ul>)
<ul>
<li>苹果</li>
<li>香蕉</li>
<li>橘子</li>
</ul>
有序列表(<ol>)
<ol>
<li>第一步</li>
<li>第二步</li>
<li>第三步</li>
</ol>
自定义列表(<dl>)
<dl>
<dt>HTML</dt>
<dd>超文本标记语言</dd>
<dt>CSS</dt>
<dd>层叠样式表</dd>
</dl>
(5) 表格标签
HTML 中使用 <table> 标签创建表格:
<table border="1">
<tr>
<th>姓名</th>
<th>年龄</th>
</tr>
<tr>
<td>小明</td>
<td>20</td>
</tr>
<tr>
<td>小红</td>
<td>22</td>
</tr>
</table>
<table>:定义表格。<tr>:表格行。<th>:表头(加粗)。<td>:表格单元格。
(6) 表单标签
HTML 表单用于收集用户输入:
<form action="submit.php" method="POST">
用户名:<input type="text" name="username" required><br>
密码:<input type="password" name="password"><br>
性别:
<input type="radio" name="gender" value="male"> 男
<input type="radio" name="gender" value="female"> 女<br>
爱好:
<input type="checkbox" name="hobby" value="reading"> 阅读
<input type="checkbox" name="hobby" value="sports"> 运动<br>
<button type="submit">提交</button>
</form>
<form>:表单容器,action指定提交地址,method指定提交方式(GET或POST)。<input>:type="text":文本框type="password":密码框type="radio":单选框type="checkbox":复选框
<button type="submit">:提交按钮。
(7) HTML5 语义化标签
HTML5 引入了一些语义化标签,提升可读性和 SEO 友好性:
<header>网站头部</header>
<nav>导航栏</nav>
<main>主要内容</main>
<article>文章内容</article>
<aside>侧边栏</aside>
<footer>网站底部</footer>
<header>:定义网页头部。<nav>:定义导航栏。<main>:页面的主要内容区域。<article>:独立的文章内容(如博客)。<aside>:侧边栏信息(如广告、相关链接)。<footer>:定义网页底部。
3. HTML5 新特性
(1) 音频 & 视频
<audio controls>
<source src="audio.mp3" type="audio/mpeg">
</audio>
<video controls width="400">
<source src="video.mp4" type="video/mp4">
</video>
controls:显示播放控制按钮。
(2) 画布(Canvas)
<canvas> 可用于绘制图形:
<canvas id="myCanvas" width="300" height="200"></canvas>
<script>
let canvas = document.getElementById("myCanvas");
let ctx = canvas.getContext("2d");
ctx.fillStyle = "blue";
ctx.fillRect(20, 20, 100, 50);
</script>
二.CSS(层叠样式表)详解
CSS(Cascading Style Sheets)用于美化网页,控制 HTML 元素的布局、颜色、字体、动画等。
1. CSS 基础
(1) CSS 语法
CSS 由 选择器 和 属性 组成:
选择器 {
属性: 值;
}
示例:
p {
color: blue; /* 设置文字颜色 */
font-size: 16px; /* 设置字体大小 */
}
(2) CSS 书写方式
① 内联样式(Inline CSS)
直接在 HTML 标签的 style 属性中定义:
<p style="color: red; font-size: 20px;">这是红色文字</p>
优点:单独控制某个元素
缺点:不利于代码复用和维护
② 内部样式(Internal CSS)
在 HTML 文档的 <style> 标签中定义:
<style>
p {
color: blue;
font-size: 18px;
}
</style>
适用于小型页面
影响代码的可读性
③ 外部样式(External CSS)
使用 .css 文件并在 HTML 通过 <link> 关联:
<link rel="stylesheet" href="styles.css">
推荐方式,适用于大型项目
2. CSS 选择器
(1) 基本选择器
| 选择器 | 作用 | 示例 |
|---|---|---|
* | 选中所有元素 | * { color: red; } |
element | 选中所有该标签 | p { font-size: 16px; } |
.class | 选中该类名的元素 | .btn { background: blue; } |
#id | 选中该 ID 的元素 | #header { height: 60px; } |
示例:
h1 { color: blue; } /* 选中所有 h1 */
.red-text { color: red; } /* 选中 class="red-text" */
#main-title { font-size: 24px; } /* 选中 id="main-title" */
(2) 组合选择器
| 选择器 | 作用 | 示例 |
|---|---|---|
A, B | 选中多个标签 | h1, p { color: black; } |
A B | 选中 B 是 A 的子元素 | div p { font-size: 14px; } |
A > B | 选中 B 是 A 的直接子元素 | ul > li { color: red; } |
A + B | 选中紧跟在 A 之后的 B | h1 + p { font-weight: bold; } |
A ~ B | 选中所有 A 之后的 B | h1 ~ p { font-size: 12px; } |
示例:
div p { color: green; } /* 选中 div 内所有 p */
ul > li { color: red; } /* 只选中 ul 直接子元素 li */
h1 + p { margin-top: 10px; } /* 选中紧跟 h1 之后的 p */
(3) 伪类选择器
| 选择器 | 作用 | 示例 |
|---|---|---|
:hover | 鼠标悬停 | button:hover { background: red; } |
:focus | 表单元素获取焦点 | input:focus { border: blue; } |
:first-child | 选中第一个子元素 | p:first-child { color: green; } |
:nth-child(n) | 选中特定位置元素 | li:nth-child(2) { font-weight: bold; } |
示例:
a:hover { color: orange; } /* 鼠标悬停变橙色 */
li:nth-child(odd) { background: lightgray; } /* 选中奇数项 */
(4) 伪元素选择器
| 选择器 | 作用 | 示例 |
|---|---|---|
::before | 在元素前插入内容 | p::before { content: "👉 "; } |
::after | 在元素后插入内容 | p::after { content: " ✅"; } |
::first-letter | 修改首字母 | p::first-letter { font-size: 24px; } |
示例:
h1::before { content: "🔥 "; }
p::after { content: " 📌"; }
3. CSS 盒模型
(1) 盒模型结构
每个 HTML 元素都由以下部分组成:
+------------------+
| margin | (外边距)
+------------------+
| border | (边框)
+------------------+
| padding | (内边距)
+------------------+
| content | (内容)
+------------------+
示例:
.box {
width: 200px;
padding: 10px;
border: 2px solid black;
margin: 20px;
}
4. CSS 布局
(1) Flexbox(弹性布局)
弹性布局用于实现响应式布局:
.container {
display: flex;
justify-content: center; /* 居中 */
align-items: center; /* 垂直居中 */
}
| 属性 | 作用 |
|---|---|
display: flex; | 开启 Flexbox |
justify-content: center; | 主轴对齐(居中) |
align-items: center; | 交叉轴对齐 |
(2) Grid(网格布局)
Grid 用于创建复杂布局:
.container {
display: grid;
grid-template-columns: repeat(3, 1fr);
grid-gap: 10px;
}
| 属性 | 作用 |
|---|---|
display: grid; | 开启 Grid |
grid-template-columns | 定义列 |
grid-gap | 设置间距 |
5. CSS 动画
(1) 过渡效果
button {
background: blue;
transition: background 0.3s ease;
}
button:hover {
background: red;
}
(2) 关键帧动画
@keyframes fadeIn {
from { opacity: 0; }
to { opacity: 1; }
}
.box {
animation: fadeIn 2s ease-in-out;
}
6. 响应式设计
(1) 媒体查询
@media (max-width: 600px) {
body {
background: lightgray;
}
}
(2) rem/em 相对单位
html { font-size: 16px; }
p { font-size: 1.5rem; } /* 1.5 × 16px = 24px */
三.JavaScript 详解
JavaScript(简称 JS)是前端开发的核心编程语言,主要用于网页交互、动态内容和后端开发(Node.js).
1. JavaScript 基础
(1) JavaScript 语法
JavaScript 代码可以写在 <script> 标签中:
<script>
alert("Hello, JavaScript!"); // 弹出提示框
</script>
或者存入外部文件 script.js,并在 HTML 中引入:
<script src="script.js"></script>
(2) 变量与常量
① 变量(var、let、const)
JavaScript 变量用于存储数据:
var name = "张三"; // 旧版,避免使用
let age = 25; // 推荐
const PI = 3.14; // 常量,不能修改
var:有函数作用域,会变量提升,不推荐使用。let:有块级作用域,不会提升,推荐。const:定义常量,值不可更改。
2. 数据类型
(1) 基本数据类型
| 类型 | 说明 | 示例 |
|---|---|---|
Number | 数字类型 | let num = 100; |
String | 字符串类型 | let str = "Hello"; |
Boolean | 布尔类型 | let isTrue = true; |
Null | 空值 | let a = null; |
Undefined | 未定义 | let b; |
Symbol | 唯一值 | let s = Symbol(); |
BigInt | 大整数 | let big = 123n; |
(2) 复杂数据类型
① 数组(Array)
let fruits = ["苹果", "香蕉", "橘子"];
console.log(fruits[0]); // 苹果
fruits.push("西瓜"); // 添加元素
fruits.pop(); // 移除最后一个元素
② 对象(Object)
let person = {
name: "张三",
age: 25,
sayHello: function() {
console.log("你好!");
}
};
console.log(person.name); // 张三
person.sayHello(); // 你好!
3. 运算符
| 运算符 | 作用 | 示例 |
|---|---|---|
+ | 加法 | 5 + 3 // 8 |
- | 减法 | 5 - 2 // 3 |
* | 乘法 | 4 * 2 // 8 |
/ | 除法 | 10 / 2 // 5 |
% | 取余 | 10 % 3 // 1 |
++ | 自增 | let a = 1; a++ |
-- | 自减 | let b = 2; b-- |
== | 等于(不检查类型) | "5" == 5 // true |
=== | 严格等于(检查类型) | "5" === 5 // false |
4. 条件语句
(1) if 语句
let age = 18;
if (age >= 18) {
console.log("可以投票");
} else {
console.log("未成年");
}
(2) switch 语句
let fruit = "苹果";
switch (fruit) {
case "苹果":
console.log("红色");
break;
case "香蕉":
console.log("黄色");
break;
default:
console.log("未知颜色");
}
5. 循环
(1) for 循环
for (let i = 0; i < 5; i++) {
console.log("循环次数:" + i);
}
(2) while 循环
let i = 0;
while (i < 5) {
console.log("循环次数:" + i);
i++;
}
6. 函数
(1) 普通函数
function add(a, b) {
return a + b;
}
console.log(add(3, 5)); // 8
(2) 箭头函数(ES6)
const add = (a, b) => a + b;
console.log(add(3, 5)); // 8
7. 事件处理
(1) 点击事件
<button onclick="showMessage()">点击我</button>
<script>
function showMessage() {
alert("按钮被点击了!");
}
</script>
(2) 监听事件
document.getElementById("myButton").addEventListener("click", function() {
alert("按钮点击!");
});
8. DOM 操作
(1) 获取元素
let element = document.getElementById("myDiv"); // 通过 ID
let elements = document.getElementsByClassName("myClass"); // 通过类名
let tags = document.getElementsByTagName("p"); // 通过标签名
let query = document.querySelector(".box"); // 通过 CSS 选择器
(2) 修改元素内容
document.getElementById("myDiv").innerHTML = "新内容";
document.getElementById("myDiv").style.color = "red";
9. 定时器
(1) setTimeout(延迟执行)
setTimeout(() => {
console.log("2 秒后执行");
}, 2000);
(2) setInterval(循环执行)
setInterval(() => {
console.log("每秒执行一次");
}, 1000);
10. AJAX & Fetch
(1) AJAX(XMLHttpRequest)
let xhr = new XMLHttpRequest();
xhr.open("GET", "https://api.example.com/data", true);
xhr.onload = function () {
console.log(xhr.responseText);
};
xhr.send();
(2) Fetch(ES6 推荐)
fetch("https://api.example.com/data")
.then(response => response.json())
.then(data => console.log(data))
.catch(error => console.log(error));
11. 本地存储
(1) localStorage(长期存储)
localStorage.setItem("username", "张三");
console.log(localStorage.getItem("username")); // 张三
(2) sessionStorage(临时存储)
sessionStorage.setItem("token", "123456");
console.log(sessionStorage.getItem("token"));
12. ES6+ 新特性
| 特性 | 说明 |
|---|---|
let / const | 块级作用域 |
箭头函数 | () => {} |
解构赋值 | [a, b] = [1, 2] |
模板字符串 | Hello, ${name}! |
Promise | 异步处理 |
async/await | 处理异步代码 |
四.总结
前端开发的核心技术围绕 HTML、CSS、JavaScript 展开,同时结合 框架、构建工具、安全优化,形成完整的开发体系。
1194

被折叠的 条评论
为什么被折叠?



