Skip to content

Commit 7a48e43

Browse files
authored
Merge pull request #78 from chenerApple/master
web_foundation
2 parents 68dcd8f + 554ce03 commit 7a48e43

File tree

7 files changed

+374
-0
lines changed

7 files changed

+374
-0
lines changed

docs/frontend/web

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
Web Foudation
2+
html.md
3+
css.md
4+
javascript.md
5+
hw.pdf
Lines changed: 60 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,60 @@
1+
2+
3+
### **CSS(层叠样式表)**
4+
CSS 是一种用于控制网页样式和布局的语言,它可以让开发者定义网页的外观,例如字体、颜色、间距、布局等。CSS 的主要作用是将HTML文档的结构与样式分离,从而提高开发效率和页面的可维护性。
5+
6+
#### **1. CSS 的作用**
7+
- **样式设计**:定义字体、颜色、背景、边框等视觉元素。
8+
- **布局控制**:通过CSS的布局模型(如Flexbox、Grid、定位等)来安排页面元素的位置。
9+
- **响应式设计**:通过媒体查询(Media Queries)实现不同设备上的自适应布局。
10+
- **动画和交互**:创建简单的动画效果(如过渡、关键帧动画)和交互反馈(如悬停效果)。
11+
12+
#### **2. CSS 的基本语法**
13+
CSS 的基本语法由选择器和声明块组成:
14+
```css
15+
选择器 {
16+
属性1: 值1;
17+
属性2: 值2;
18+
...
19+
}
20+
```
21+
- **选择器**:用于选择页面中的HTML元素,例如类选择器(`.class`)、ID选择器(`#id`)、标签选择器(`div`)等。
22+
- **声明块**:包含一系列属性和值,用于定义样式。
23+
24+
#### **3. 示例代码**
25+
```html
26+
<!DOCTYPE html>
27+
<html lang="en">
28+
<head>
29+
<meta charset="UTF-8">
30+
<meta name="viewport" content="width=device-width, initial-scale=1.0">
31+
<title>CSS 示例</title>
32+
<style>
33+
/* 样式定义 */
34+
body {
35+
font-family: Arial, sans-serif;
36+
background-color: #f0f0f0;
37+
color: #333;
38+
}
39+
.box {
40+
width: 200px;
41+
height: 200px;
42+
background-color: #4CAF50;
43+
color: white;
44+
text-align: center;
45+
line-height: 200px;
46+
border-radius: 10px;
47+
transition: transform 0.3s ease;
48+
}
49+
.box:hover {
50+
transform: scale(1.1);
51+
}
52+
</style>
53+
</head>
54+
<body>
55+
<div class="box">Hover over me</div>
56+
</body>
57+
</html>
58+
```
59+
在这个示例中,CSS 定义了一个绿色的盒子,并在鼠标悬停时放大。
60+
Lines changed: 106 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,106 @@
1+
2+
3+
# Web开发基础
4+
5+
### 1. Web通信
6+
Web通信是Web应用的核心,主要涉及客户端(通常是浏览器)与服务器之间的交互。其核心概念和框架如下:
7+
8+
#### **1.1 HTTP协议**
9+
- **定义**:HTTP(HyperText Transfer Protocol,超文本传输协议)是Web通信的基础协议,用于定义客户端和服务器之间请求和响应的格式。
10+
- **请求(HTTP Request)**
11+
- **请求方法**:常用的有GET(获取资源)、POST(提交数据)、PUT(更新资源)、DELETE(删除资源)。
12+
- **参数传递**:可以通过路径(如`/info/aaa`)、查询字符串(如`?username=aaa`)或请求体(如JSON格式)传递数据。
13+
- **身份验证**:通过Cookies等方式实现用户身份验证,但也存在安全性问题(如第三方Cookies)。
14+
- **响应(HTTP Response)**
15+
- **状态码**:用于表示请求的结果,如200(成功)、400(请求错误)、403(禁止访问)、404(未找到)、500(服务器错误)。
16+
- **正文**:响应中可以携带文件或数据,如HTML页面、图片等。
17+
- **HTTPS**:HTTP的加密版本,通过SSL/TLS协议实现数据加密传输,解决HTTP的不安全问题(如信息明文传输、无法验证身份等)。
18+
19+
#### **1.2 请求与响应流程**
20+
以网上选课系统为例:
21+
1. 用户通过浏览器访问选课系统(GET请求)。
22+
2. 服务器返回选课页面(200 OK状态码)。
23+
3. 用户输入用户名和密码并提交(POST请求)。
24+
4. 服务器验证用户信息,返回课表数据(响应正文)。
25+
26+
#### **1.3 调试工具**
27+
- **Postman/Apifox**:用于手动发送HTTP请求,测试API接口。
28+
29+
---
30+
31+
### 2. Web页面
32+
Web页面是用户通过浏览器访问的内容,由HTML、CSS和JavaScript组成,统称为“前端三件套”。
33+
34+
#### **2.1 HTML(HyperText Markup Language)**
35+
- **定义**:HTML是用于描述网页内容的标记语言,通过标签定义网页的结构和内容。
36+
- **常用标签**
37+
- **文本标签**`<h1>-<h6>`(标题)、`<p>`(段落)、`<ul>`(无序列表)、`<ol>`(有序列表)、`<li>`(列表项)。
38+
- **图像和链接**`<img>`(插入图片)、`<a>`(超链接)。
39+
- **容器标签**`<div>`(分区容器)、`<span>`(文本片段)。
40+
- **其他**`<header>`(页眉)、`<style>`(内部样式表)。
41+
- **属性**:HTML标签可以有属性,如`class`(类名)、`id`(唯一标识符)、`style`(样式)、`src`(外部资源链接)。
42+
43+
#### **2.2 CSS(Cascading Style Sheets)**
44+
- **定义**:CSS用于美化网页,定义HTML元素的样式。
45+
- **使用方式**
46+
- **内联样式**:通过`style`属性直接在HTML标签中定义样式。
47+
- **内部样式表**:在`<head>`中使用`<style>`标签定义样式。
48+
- **外部样式表**:将样式定义在单独的`.css`文件中,通过`<link>`标签引入。
49+
- **层叠性(Cascading)**:当多个样式定义冲突时,优先级顺序为:内联样式 > 内部样式表 > 外部样式表。
50+
51+
#### **2.3 JavaScript(JS)**
52+
- **定义**:JavaScript是一种脚本语言,用于实现网页的动态交互。
53+
- **功能**
54+
- 操纵HTML元素(如修改样式、内容)。
55+
- 响应用户事件(如点击按钮)。
56+
- 与服务器交互(如通过AJAX动态加载数据)。
57+
- **使用方式**
58+
- **嵌入HTML**:通过`<script>`标签直接写在HTML文件中。
59+
- **外部脚本**:将JavaScript代码写在单独的`.js`文件中,通过`<script src="...">`引入。
60+
61+
---
62+
63+
### 3. Web应用基础
64+
Web应用是基于Web技术构建的应用程序,分为静态网页和动态网页,采用前后端分离的开发模式。
65+
66+
#### **3.1 静态网页**
67+
- **定义**:内容固定不变的网页,服务器只需查找并返回请求的文件。
68+
- **特点**
69+
- 简单,无需服务器端逻辑处理。
70+
- 适合内容不经常更新的网站(如个人博客)。
71+
- **服务器端**:使用通用的Web服务器软件(如Apache、Nginx)即可满足需求。
72+
73+
#### **3.2 动态网页**
74+
- **定义**:内容根据用户请求动态生成的网页。
75+
- **特点**
76+
- 服务器端需要处理逻辑(如从数据库读取数据)。
77+
- 内容根据用户需求动态变化(如用户信息、搜索结果)。
78+
- **实现方式**
79+
- 服务器端使用模板文件,根据请求内容填充数据后返回。
80+
- 常用技术栈:PHP、Node.js、Python(Django/Flask)等。
81+
82+
#### **3.3 前后端分离**
83+
- **定义**:将前端(用户界面)和后端(服务器逻辑)分离,各自独立开发。
84+
- **优势**
85+
- **开发效率**:前端和后端可以并行开发。
86+
- **用户体验**:前端可以快速响应用户操作,后端专注于数据处理。
87+
- **可维护性**:代码结构清晰,便于维护和扩展。
88+
- **实现方式**
89+
- 前端通过API(应用程序接口)与后端通信。
90+
- 前端框架(如React、Vue.js)负责页面渲染,后端框架(如Spring Boot、Express.js)提供数据服务。
91+
- **安全问题**:前端代码可能被篡改,导致向后端发送恶意请求。
92+
93+
#### **3.4 持久化存储**
94+
- **定义**:Web应用需要存储数据,以便在用户请求时提供。
95+
- **存储方式**
96+
- **服务器端存储**:使用数据库(如MySQL、MongoDB)保存用户数据、历史记录等。
97+
- **客户端存储**:使用Cookies、LocalStorage等技术保存用户偏好、登录状态等。
98+
99+
---
100+
101+
### 4. 学习路径与总结
102+
- **Web开发基础**:掌握HTML、CSS和JavaScript,理解HTTP协议和Web通信流程。
103+
- **前后端分离开发**:学习前端框架(如React、Vue.js)和后端框架(如Node.js、Django)。
104+
- **数据存储**:学习数据库技术(如SQL、NoSQL)和API开发。
105+
- **工具**:掌握浏览器开发者工具(如Chrome DevTools)、API测试工具(如Postman)。
106+
Lines changed: 148 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,148 @@
1+
## HTML
2+
3+
### 1. HTML(HyperText Markup Language)
4+
5+
#### **1.1 HTML的定义与作用**
6+
HTML是用于构建网页结构的标记语言。它通过一系列的标签(Tags)定义网页的内容和结构,告诉浏览器如何显示页面内容。HTML文件以`.html`为扩展名,通常包含以下基本结构:
7+
8+
```html
9+
<!DOCTYPE html>
10+
<html lang="en">
11+
<head>
12+
<meta charset="UTF-8">
13+
<meta name="viewport" content="width=device-width, initial-scale=1.0">
14+
<title>Document Title</title>
15+
</head>
16+
<body>
17+
<h1>Welcome to My Web Page</h1>
18+
<p>This is a paragraph of text.</p>
19+
</body>
20+
</html>
21+
```
22+
23+
#### **1.2 HTML文档结构**
24+
1. **`<!DOCTYPE html>`**
25+
- 声明文档类型,告诉浏览器这是一个HTML5文档。
26+
2. **`<html>`**
27+
- 根元素,包含整个HTML文档的内容。
28+
- `lang`属性指定文档的语言(如`en`表示英语)。
29+
3. **`<head>`**
30+
- 包含文档的元数据(Metadata),这些内容不会直接显示在页面上。
31+
- 常见的元数据包括:
32+
- **`<meta charset="UTF-8">`**:指定字符编码为UTF-8。
33+
- **`<meta name="viewport" content="width=device-width, initial-scale=1.0">`**:优化移动设备的显示效果。
34+
- **`<title>`**:定义文档的标题,显示在浏览器的标题栏或标签页上。
35+
- **`<link>`**:用于引入外部资源,如CSS文件。
36+
- **`<script>`**:用于引入外部JavaScript文件或定义内联脚本。
37+
4. **`<body>`**
38+
- 包含用户可见的内容,如文本、图像、按钮等。
39+
40+
#### **1.3 常用HTML标签**
41+
HTML标签分为块级标签(Block-level)和行内标签(Inline-level)。
42+
43+
##### **1.3.1 文本标签**
44+
- **标题标签**`<h1>``<h6>`,定义不同级别的标题。
45+
```html
46+
<h1>This is a Level 1 Heading</h1>
47+
<h2>This is a Level 2 Heading</h2>
48+
```
49+
- **段落标签**`<p>`,定义段落。
50+
```html
51+
<p>This is a paragraph of text.</p>
52+
```
53+
- **文本修饰**
54+
- **`<strong>`**:加粗文本。
55+
- **`<em>`**:斜体文本。
56+
- **`<u>`**:下划线文本。
57+
- **`<s>`**:删除线文本。
58+
```html
59+
<p>This is <strong>important</strong> text.</p>
60+
<p>This is <em>emphasized</em> text.</p>
61+
```
62+
63+
##### **1.3.2 列表标签**
64+
- **无序列表**`<ul>`,列表项用`<li>`表示。
65+
```html
66+
<ul>
67+
<li>Item 1</li>
68+
<li>Item 2</li>
69+
<li>Item 3</li>
70+
</ul>
71+
```
72+
- **有序列表**`<ol>`,列表项用`<li>`表示。
73+
```html
74+
<ol>
75+
<li>First Item</li>
76+
<li>Second Item</li>
77+
<li>Third Item</li>
78+
</ol>
79+
```
80+
81+
##### **1.3.3 图像与链接**
82+
- **图像**`<img>`,通过`src`属性指定图像路径,`alt`属性提供图像的描述。
83+
```html
84+
<img src="image.jpg" alt="Description of Image">
85+
```
86+
- **超链接**`<a>`,通过`href`属性指定链接目标。
87+
```html
88+
<a href="https://example.com">Visit Example</a>
89+
```
90+
91+
##### **1.3.4 表格**
92+
- **表格**`<table>`,通过`<tr>`定义行,`<td>`定义单元格。
93+
```html
94+
<table border="1">
95+
<tr>
96+
<th>Header 1</th>
97+
<th>Header 2</th>
98+
</tr>
99+
<tr>
100+
<td>Row 1, Cell 1</td>
101+
<td>Row 1, Cell 2</td>
102+
</tr>
103+
<tr>
104+
<td>Row 2, Cell 1</td>
105+
<td>Row 2, Cell 2</td>
106+
</tr>
107+
</table>
108+
```
109+
110+
##### **1.3.5 表单**
111+
- **表单**`<form>`,用于收集用户输入。
112+
```html
113+
<form action="/submit" method="post">
114+
<label for="username">Username:</label>
115+
<input type="text" id="username" name="username"><br><br>
116+
<label for="password">Password:</label>
117+
<input type="password" id="password" name="password"><br><br>
118+
<input type="submit" value="Submit">
119+
</form>
120+
```
121+
122+
##### **1.3.6 容器标签**
123+
- **`<div>`**:块级容器,用于布局。
124+
- **`<span>`**:行内容器,用于文本包装。
125+
```html
126+
<div class="container">
127+
<h1>Welcome</h1>
128+
<p>This is a paragraph inside a div.</p>
129+
</div>
130+
```
131+
132+
#### **1.4 HTML属性**
133+
HTML标签可以有属性,用于提供附加信息。属性以“名称-值”对的形式出现,放在开始标签中。常见的属性包括:
134+
- **`class`**:为元素定义类名,方便CSS样式化。
135+
- **`id`**:为元素定义唯一标识符,常用于JavaScript操作。
136+
- **`style`**:直接在标签中定义样式。
137+
- **`src`**:用于链接外部资源(如图片、脚本)。
138+
- **`href`**:用于指定超链接的目标URL。
139+
140+
#### **1.5 HTML语义化**
141+
HTML5引入了许多语义化标签,用于更清晰地定义页面结构,提高可读性和搜索引擎优化(SEO)。常见的语义化标签包括:
142+
- **`<header>`**:定义页眉。
143+
- **`<footer>`**:定义页脚。
144+
- **`<nav>`**:定义导航链接。
145+
- **`<article>`**:定义独立的文章内容。
146+
- **`<section>`**:定义文档中的一个区域。
147+
- **`<aside>`**:定义与页面内容相关的辅助信息。
148+
852 KB
Binary file not shown.
Lines changed: 54 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,54 @@
1+
2+
### **JavaScript**
3+
JavaScript 是一种运行在浏览器中的脚本语言,用于实现网页的交互功能。它可以让网页“动起来”,例如响应用户输入、操作DOM(文档对象模型)、发送和接收数据等。
4+
5+
#### **1. JavaScript 的作用**
6+
- **交互功能**:实现按钮点击、表单验证、动态内容更新等。
7+
- **DOM 操作**:动态修改HTML元素的属性、内容和样式。
8+
- **事件处理**:监听和响应用户操作(如点击、键盘输入、鼠标移动等)。
9+
- **异步通信(AJAX)**:在不刷新页面的情况下与服务器通信,实现动态加载数据。
10+
- **框架和库**:通过Vue.js、React.js、jQuery等框架和库,简化开发流程。
11+
12+
#### **2. JavaScript 的基本语法**
13+
JavaScript 是一种基于对象的语言,支持函数式编程和面向对象编程。以下是基本语法:
14+
```javascript
15+
// 变量声明
16+
let name = "Kimi";
17+
const age = 25;
18+
19+
// 函数定义
20+
function greet() {
21+
alert("Hello, world!");
22+
}
23+
24+
// 事件监听
25+
document.getElementById("myButton").addEventListener("click", function() {
26+
alert("Button clicked!");
27+
});
28+
```
29+
30+
#### **3. 示例代码**
31+
```html
32+
<!DOCTYPE html>
33+
<html lang="en">
34+
<head>
35+
<meta charset="UTF-8">
36+
<meta name="viewport" content="width=device-width, initial-scale=1.0">
37+
<title>JavaScript 示例</title>
38+
</head>
39+
<body>
40+
<button id="myButton">Click me</button>
41+
<script>
42+
// 获取按钮元素
43+
const button = document.getElementById("myButton");
44+
45+
// 添加点击事件监听
46+
button.addEventListener("click", function() {
47+
alert("Button clicked!");
48+
});
49+
</script>
50+
</body>
51+
</html>
52+
```
53+
在这个示例中,JavaScript 为按钮添加了一个点击事件,点击按钮后会弹出一个对话框。
54+

0 commit comments

Comments
 (0)