前端的核心技术

前端开发的核心技术主要围绕 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 指定提交方式(GETPOST)。
  • <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 之后的 Bh1 + p { font-weight: bold; }
A ~ B选中所有 A 之后的 Bh1 ~ 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) 变量与常量

① 变量(varletconst

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 展开,同时结合 框架、构建工具、安全优化,形成完整的开发体系。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值