Web安全基础相关知识2.0(前端三剑客)

HTML

定义

HTML(超文本标记语言)是用来描述网页结构的标记语言。

- 它用标签(带角号标签 例如<body>)来定义页面的各个部分,比如标题、段落、图片、链接等。
- HTML 本身不负责样式和交互,样式由 CSS 负责,交互由 JavaScript 负责。

基本结构

一个标准的 HTML5 页面结构如下:

<!DOCTYPE html>
<html lang="zh-CN">
<head>
    <meta charset="UTF-8">
    <title>页面标题</title>
</head>
<body>
    <!-- 页面可见内容 -->
    <h1>这是一级标题</h1>
    <p>这是一个段落。</p >
</body>
</html>

CSS

定义

CSS(层叠样式表)是用来描述 HTML 或 XML 文档样式的语言。

它控制网页的外观:颜色、字体、布局、间距、动画等。
CSS 与 HTML 分工明确:HTML 负责结构,CSS 负责样式。

基本语法

CSS 规则由选择器和声明块组成:

选择器 {
    属性名: 属性值;
    属性名: 属性值;
}

示例:

p {
    color: red;
    font-size: 16px;
}

- 选择器 
"p":选中所有 
"<p>" 标签。
- 声明块:
"{}" 内的样式规则。
- 属性名 
"color":要设置的样式属性(文字颜色)。
- 属性值 
"red":属性的具体值。

CSS 的三种引入方式

3.1 内联样式

直接在 HTML 标签中用 
"style" 属性定义样式:

<p>这是蓝色文字</p >

- 优点:优先级最高,适合临时覆盖样式。
- 缺点:难以维护,代码冗余。

3.2 内部样式表

在 
"<head>" 中用 
"<style>" 标签定义样式:

<head>
    <style>
        p {
            color: green;
            font-size: 16px;
        }
    </style>
</head>

- 优点:适合单个页面的样式管理。
- 缺点:多个页面无法共享样式。

3.3 外部样式表

将 CSS 代码保存在独立的 
".css" 文件中,通过 
"<link>" 标签引入:

<head>
    <link rel="stylesheet" href="styles.css">
</head>

styles.css 文件内容:

p {
    color: purple;
    font-size: 18px;
}

- 优点:样式可复用,便于维护和缓存。
- 推荐使用:大型项目必备。

CSS 选择器

选择器用于选中需要应用样式的 HTML 元素。

4.1 基础选择器

- 元素选择器:
"p { ... }"(选中所有 
"<p>" 标签)。
- 类选择器:
".intro { ... }"(选中所有 
"class="intro"" 的元素)。
- ID 选择器:
"#header { ... }"(选中 
"id="header"" 的元素)。
- 通配符选择器:
"* { ... }"(选中所有元素)。

4.2 组合选择器

- 后代选择器:
"div p { ... }"(选中 
"<div>" 内的所有 
"<p>")。
- 子元素选择器:
"div > p { ... }"(选中 
"<div>" 的直接子元素 
"<p>")。
- 相邻兄弟选择器:
"h1 + p { ... }"(选中紧跟在 
"<h1>" 后的第一个 
"<p>")。
- 通用兄弟选择器:
"h1 ~ p { ... }"(选中 
"<h1>" 后的所有同级 
"<p>")。

4.3 伪类与伪元素

- 伪类:
":hover"(鼠标悬停)、
":active"(激活状态)、
":first-child"(第一个子元素)。
- 伪元素:
"::before"(在元素前插入内容)、
"::after"(在元素后插入内容)。

CSS 盒模型

每个 HTML 元素都可以看作一个矩形盒子,由四部分组成:

1. Content(内容):元素的实际内容(文字、图片等)。
2. Padding(内边距):内容与边框之间的空间。
3. Border(边框):围绕内容和内边距的边界线。
4. Margin(外边距):元素与其他元素之间的空间。

示例:

box {
    width: 200px;       /* 内容宽度 */
    height: 100px;      /* 内容高度 */
    padding: 20px;      /* 内边距 */
    border: 5px solid black; /* 边框 */
    margin: 30px;       /* 外边距 */
}

总宽度 = 
"width + padding-left + padding-right + border-left + border-right + margin-left + margin-right"。

CSS 布局

CSS 提供了多种布局方式,常见的有:

5.1 普通流

默认布局方式,元素按照 HTML 顺序从上到下、从左到右排列。

5.2 Flexbox(弹性布局)

适用于一维布局(行或列):

.container {
    display: flex;
    justify-content: center; /* 水平居中 */
    align-items: center;     /* 垂直居中 */
}

- 优点:简单易用,适合响应式设计。

5.3 Grid(网格布局)

适用于二维布局(行和列):

.container {
    display: grid;
    grid-template-columns: 1fr 1fr 1fr; /* 三列等宽 */
    gap: 10px; /* 网格间距 */
}

- 优点:强大的二维布局能力。

5.4 浮动(Float)

早期用于图文混排,现在逐渐被 Flexbox 和 Grid 取代:

img {
    float: left; /* 图片左浮动 */
    margin-right: 10px;
}

5.5 定位(Position)

控制元素的位置:

"static":默认值,正常流。
"relative":相对定位,相对于自身原位置偏移。
"absolute":绝对定位,相对于最近的定位祖先元素。
 "fixed":固定定位,相对于浏览器窗口。
"sticky":粘性定位,滚动时在阈值范围内固定。

CSS 响应式设计

让网页在不同设备上自适应显示:

6.1 媒体查询

根据屏幕尺寸应用不同样式:

/* 默认样式(手机) */
.container {
    width: 100%;
}

/* 平板及以上 */
@media (min-width: 768px) {
    .container {
        width: 750px;
    }
}

/* 桌面及以上 */
@media (min-width: 1200px) {
    .container {
        width: 1170px;
    }
}

6.2 相对单位


"%":相对于父元素尺寸。
"em":相对于当前元素字体大小。 
"rem":相对于根元素(
"<html>")字体大小。
"vw/vh":相对于视口宽度/高度的 1%。

CSS 预处理器(Sass/SCSS)

CSS 预处理器扩展了 CSS 的功能,如变量、嵌套、混合等:

// 变量
$primary-color: #007BFF;

// 嵌套
.nav {
    ul {
        margin: 0;
        padding: 0;
        list-style: none;
        li {
            display: inline-block;
            a {
                color: $primary-color;
                &:hover {
                    color: darken($primary-color, 10%);
                }
            }
        }
    }
}

编译后会生成标准 CSS。

CSS 动画与过渡

1. 过渡

平滑改变属性值:

.button {
    transition: background-color 0.3s ease;
}
.button:hover {
    background-color: #0056b3;
}

2. 动画

定义关键帧动画:

@keyframes slidein {
    from {
        transform: translateX(-100%);
    }
    to {
        transform: translateX(0);
    }
}

.element {
    animation: slidein 0.5s ease-out;
}

CSS 最佳实践

1. 语义化 HTML:用合适的标签表达内容结构。
2. 分离关注点:HTML 负责结构,CSS 负责样式,JS 负责交互。
3. 命名规范:使用 BEM(Block__Element--Modifier)等方法提高可读性。
4. 性能优化:减少重排(reflow)和重绘(repaint),压缩 CSS 文件

JavaScript

定义

JavaScript(简称 JS) 是一种脚本语言,主要用于为网页添加交互功能。

- 与 HTML(结构)、CSS(样式)并列,是前端开发的三大核心技术之一。
- 现在也可用于后端开发(Node.js)、移动端开发(React Native)、桌面应用(Electron)等。

JavaScript 的三种引入方式

2.1 内联脚本

在 HTML 标签中直接使用 
"onclick" 等事件属性:

<button onclick="alert('Hello')">点击</button>

- 缺点:难以维护,不推荐大量使用。

2.2 内部脚本

在 
"<script>" 标签中编写 JS 代码:

<script>
  console.log('页面加载完成');
</script>

2.3 外部脚本

将 JS 代码保存在 
".js" 文件中,通过 
"<script src="app.js"></script>" 引入:

<script src="app.js"></script>

- 优点:代码分离,便于维护和缓存。

JavaScript 基础语法

3.1 变量与常量


"let":可变变量(块级作用域)。

"const":不可变常量(块级作用域)。

"var"(旧版,不推荐):函数作用域,容易引发问题。

let name = 'Alice';
const age = 25;

3.2 数据类型

- 原始类型:
"string"、
"number"、
"boolean"、
"null"、
"undefined"、
"symbol"(ES6)、
"bigint"(ES2020)。
- 引用类型:
"object"(包括数组、函数等)。

let str = "Hello";
let num = 42;
let isDone = true;
let obj = { key: "value" };
let arr = [1, 2, 3];

3.3 运算符

- 算术:"+"、"-"、"*"、"/"、"%"、"**"(幂)
- 比较:"=="(宽松相等)、"==="(严格相等)、"!="、"!=="、">"、"<" 
- 逻辑:"&&"(与)、"||"(或)、"!"(非)。

流程控制

4.1 条件语句

if (age >= 18) {
  console.log("成年人");
} else {
  console.log("未成年人");
}

4.2 循环语句

// for 循环
for (let i = 0; i < 5; i++) {
  console.log(i);
}

// while 循环
let j = 0;
while (j < 5) {
  console.log(j);
  j++;
}

5. 函数

函数是可重复使用的代码块。

5.1 函数声明

function greet(name) {
  return "Hello, " + name;
}
console.log(greet("Bob")); // Hello, Bob

5.2 箭头函数

const add = (a, b) => a + b;
console.log(add(2, 3)); // 5

6. 对象与数组

6.1 对象

let person = {
  name: "Alice",
  age: 25,
  sayHi: function() {
    console.log("Hi, I'm " + this.name);
  }
};
person.sayHi(); // Hi, I'm Alice

6.2 数组

let fruits = ["apple", "banana", "orange"];
fruits.push("grape"); // 添加元素
console.log(fruits[1]); // banana

7. DOM 操作(前端核心)

DOM(Document Object Model)是 HTML 文档的对象表示,JS 可以通过 DOM API 操作页面元素。

7.1 选择元素

let title = document.getElementById("title");
let items = document.querySelectorAll(".item");

7.2 修改内容

title.textContent = "新标题";
title.style.color = "red";

7.3 事件监听

let btn = document.querySelector("button");
btn.addEventListener("click", function() {
  alert("按钮被点击");
});

前端开发常见代码

1. HTML 基础结构

<!DOCTYPE html>
<html lang="zh-CN">
<head>
    <meta charset="UTF-8">
    <title>页面标题</title>
    <link rel="stylesheet" href="style.css">
</head>
<body>
    <header>
        <h1>网站标题</h1>
    </header>
    <main>
        <p>这是一个段落。</p >
    </main>
    <footer>
        <p>版权 © 2026</p >
    </footer>
    <script src="app.js"></script>
</body>
</html>

2. CSS 常用样式

/* 重置默认边距 */
* {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
}

body {
    font-family: Arial, sans-serif;
    line-height: 1.6;
    background-color: #f4f4f4;
}

.container {
    width: 80%;
    margin: 0 auto;
    padding: 20px;
}

.btn {
    display: inline-block;
    padding: 10px 20px;
    background: #007BFF;
    color: white;
    text-decoration: none;
    border-radius: 5px;
    transition: background 0.3s;
}

.btn:hover {
    background: #0056b3;
}

3. JavaScript 基础

// 获取元素
const btn = document.querySelector('.btn');
const output = document.getElementById('output');

// 事件监听
btn.addEventListener('click', () => {
    output.textContent = '按钮被点击了!';
});

// 定时器
setTimeout(() => {
    console.log('3秒后执行');
}, 3000);

// 数组操作
const numbers = [1, 2, 3, 4, 5];
const doubled = numbers.map(n => n * 2);
console.log(doubled); // [2, 4, 6, 8, 10]

Read more

OpenClaw本地部署接入飞书机器人完全安装指南

OpenClaw本地部署接入飞书机器人完全安装指南

作者:网心 2026-3-10 在 Windows 系统上从头开始部署 OpenClaw,并将其配置为可以接入飞书的智能机器人。我们将以实战中遇到的问题为鉴,确保安装过程顺畅无误。 第一章:准备工作与环境检查 在正式开始安装前,请确保您的电脑满足以下基础条件,并理解我们将要使用的关键命令。 1. 系统要求 操作系统: Windows 10 或 Windows 11 (需使用管理员权限运行 PowerShell)。 网络环境: 能够正常访问 GitHub 和 npm 仓库。如果您在网络受限的环境中,可能需要提前准备代理或镜像配置。 2. 核心命令解释 在整个安装过程中,有两个核心命令您需要理解: 一键安装命令:iwr -useb https://openclaw.ai/install.ps1 | iex iwr:Invoke-WebRequest 的别名,用于从指定网址下载文件。

Magic API:低代码接口开发平台完全指南

Magic API:低代码接口开发平台完全指南

Magic API:低代码接口开发平台完全指南 🌟 你好,我是 励志成为糕手 ! 🌌 在代码的宇宙中,我是那个追逐优雅与性能的星际旅人。 ✨ 每一行代码都是我种下的星光,在逻辑的土壤里生长成璀璨的银河; 🛠️ 每一个算法都是我绘制的星图,指引着数据流动的最短路径; 🔍 每一次调试都是星际对话,用耐心和智慧解开宇宙的谜题。 🚀 准备好开始我们的星际编码之旅了吗? 目录 * Magic API:低代码接口开发平台完全指南 * 摘要 * 1. Magic API概述与核心概念 * 1.1 什么是Magic API * 1.2 Magic API的核心特性 * 1.3 Magic API的设计理念 * 2. Magic API架构设计与组件分析 * 2.1 整体架构概览 * 2.2 API引擎工作原理 * 2.3 脚本引擎与SQL执行机制 * 3. Magic API核心功能实现

基于YOLOv8/YOLOv10/YOLOv11/YOLOv12与SpringBoot的跌倒检测系统(千问+DeepSeek智能分析+web交互界面+前后端分离+YOLO数据)

基于YOLOv8/YOLOv10/YOLOv11/YOLOv12与SpringBoot的跌倒检测系统(千问+DeepSeek智能分析+web交互界面+前后端分离+YOLO数据)

项目摘要 本项目旨在设计并实现一个高效、智能且用户友好的基于多版本YOLO深度学习模型与SpringBoot Web框架的实时跌倒检测系统。随着全球老龄化社会的加速到来,老年人在日常生活中发生跌倒的风险日益增高,及时、准确地检测跌倒事件对于保障其生命安全与健康具有重大社会意义。传统监控或穿戴式设备存在隐私侵扰、用户体验不佳或漏报率高等局限。因此,本项目融合了当前前沿的计算机视觉技术与现代Web开发架构,构建了一个集智能分析、实时监控、数据管理与远程交互于一体的综合性解决方案。 系统的核心检测引擎采用了性能卓越的YOLO系列目标检测算法,并创新性地集成了YOLOv8、YOLOv10、YOLOv11及YOLOv12四种最新版本模型,为用户提供了灵活、可对比的算法选择,以适应不同的精度与速度需求。模型在精心标注的自定义数据集上进行训练与验证,该数据集包含 ‘fallen’(已跌倒)、‘falling’(正在跌倒)和‘stand’(站立/正常) 三个关键类别,共计3,888张图像(训练集3,594张,验证集294张),确保了系统对跌倒过程动态的精确识别能力。 系统后端采用SpringB

科哥OCR WebUI太香了!紫蓝渐变界面操作丝滑又高效

科哥OCR WebUI太香了!紫蓝渐变界面操作丝滑又高效 1. 这不是又一个OCR工具,而是一次体验升级 你有没有过这样的经历: 花半小时配环境、改路径、调参数,终于跑通一个OCR模型,结果打开网页——灰扑扑的Gradio默认界面,按钮挤在角落,上传框像上世纪的网页表单,检测完还得手动翻JSON看坐标? 科哥做的这个cv_resnet18_ocr-detection WebUI,彻底改写了这个剧本。 它没有堆砌炫技功能,却把“好用”刻进了每一处交互细节:紫蓝渐变的标题栏不刺眼、悬停有微光反馈、检测进度条带实时耗时显示、结果文本一键全选复制、坐标数据自动格式化为可读结构……这不是给工程师看的调试面板,而是为真实使用者设计的工作台。 更关键的是——它足够轻量。 不用GPU也能跑,CPU上单图检测3秒出结果;模型基于ResNet18轻量架构,显存占用低,连GTX 1060都能稳稳扛住批量处理;所有功能模块(单图/批量/训练/导出)都封装在同一个Web界面里,无需切终端、不用记命令,点几下就完成从前要写脚本才能做的事。 这篇文章不讲模型结构、