HTML和CSS和JavaScript的区别

作者:漫随流水日期:2026/3/21

一、从代码外观直接区分

1.1 HTML:尖括号包裹的标签

HTML的特点是尖括号<>包围的标签,成对出现(开始标签和结束标签)。

1<div>这是一个div容器</div>
2<p>这是一个段落</p>
3<h1>这是一个标题</h1>
4<img src="图片.jpg">  <!-- 自闭合标签 -->
5<a href="链接.html">这是一个链接</a>
6<table>...</table>
7<form>...</form>

识别口诀:看到<xxx></xxx>,这就是HTML。

1.2 CSS:三种表现形式

形式一:style属性(内联样式)

1<div style="color: red; font-size: 16px; margin: 10px;">
2    这是红色文字
3</div>

识别特征:出现在HTML标签的style="..."属性中,里面是属性:值对,用分号分隔。

形式二:style标签(内部样式表)

1<style>
2    .my-class {
3        color: blue;
4        font-size: 20px;
5        background-color: #f0f0f0;
6    }
7    #my-id {
8        border: 1px solid black;
9    }
10</style>

识别特征:被<style></style>包裹,里面是选择器(.类名#ID名)和大括号{}

形式三:link标签引入外部CSS文件

<link rel="stylesheet" href="/static/css/style.css">

识别特征<link>标签,rel="stylesheet"属性,href指向.css文件。

1.3 JavaScript:两种表现形式

形式一:script标签(内部脚本)

1<script>
2    // 这是JavaScript代码
3    var myChart = echarts.init(document.getElementById('mains'));
4    myChart.setOption({
5        title: { text: '我的图表' },
6        series: [{ data: [10, 20, 30] }]
7    });
8    
9    function myFunction() {
10        alert('Hello');
11    }
12</script>

识别特征:被<script></script>包裹,里面是JavaScript语法(变量、函数、对象、方法调用)。

形式二:script标签引入外部JS文件

<script src="/static/echarts.min.js"></script>

识别特征<script>标签有src属性,指向.js文件。

如何判断是HTML还是CSS?

用这个简单的替换法

问:如果把样式去掉,剩下的还是不是完整的?

<div class="pagetitle" style="display: flex; align-items: center"> ↓ 去掉样式 ↓ <div class="pagetitle">

去掉style="..."后,剩下的<div class="pagetitle">仍然是完整的HTML标签,可以正常工作(只是没有样式了)。

这说明:CSS是附加在HTML上的额外信息,去掉后HTML依然存在。


HTML和CSS和JavaScript的区别》 是转载文章,点击查看原文


相关推荐


音视频教程-第二节
glumes2026/3/13

音视频系列教程 课程目标 学习如何使用 FFmpeg 打开和读取媒体文件的基本信息,理解 AVFormatContext 的作用。 封装格式简介 在开始之前,先简单了解一下封装格式。 我们常见的视频文件(如 .mp4、.mkv、.avi)都是封装格式,它们把视频、音频、字幕等数据打包在一起。可以简单理解为:封装格式是"盒子",里面装着编码后的视频和音频数据。 封装格式 vs 编码格式: 封装格式(如 MP4、MKV):决定如何打包和组织数据 编码格式(如 H.264、AAC):决定如何压缩数


Interspeech2022论文解读 | CUSIDE:一个流式语音识别新框架,刷新SOTA
成都它思科技有限公司2026/3/4

简介 本文介绍清华大学语音处理与机器智能实验室(Speech Processing and Machine Intelligence, SPMI)与美团的联合工作 — CUSIDE:分块、模拟未来、解码的流式语音识别新框架,刷新了目前Aishell-1上流式模型的SOTA(State Of The Art,最好结果)。该工作已被语音领域的国际会议Interspeech2022接收,论文的作者是安柯宇、郑华焕、欧智坚、向鸿雨、丁科、万广鲁。 论文链接: http://oa.ee.


Django 应用 OOM(Out of Memory)故障的定位思路和排查方法
哈里谢顿2026/2/24

二、定位思路总览 1. 确认现象 → 2. 内存分析 → 3. 代码审查 → 4. 复现验证 → 5. 修复优化 ↑___________________________________________________________| 三、详细排查步骤 第一步:确认内存使用趋势 1.1 系统层面监控 # 查看进程内存(RSS:实际物理内存,VSZ:虚拟内存) ps aux --sort=-%mem | head -20 # 实时观察 watch -n 1 'ps -p <PID>


我又开发了一款桌面APP,功能强大
500佰2026/2/16

最近这段时间,开始沉迷一件事,在抖音录制我AI写代码、做实战开发的视频,用opencode / claudecode / Agent skills 等大模型进行AI项目开发,耗时7个晚上,最晚的一次,写到了夜间3点,录制了5个视频,开发消耗AI大模型token 数1500左右。 这次我开发了一款桌面录屏APP,名字叫做focusME,目前已经开发完成,可一键安装在我们的桌面,接下来讲解一下整个开发过程。 开发成果 开发过程 前面我用opencode里面Agent skills去制定产品


Skills.lc 是什么?为什么我会做(用)这个站
HBLOG2026/2/7

在折腾 AI Agent、CLI 工具和各种自动化脚本的过程中,我一直有一个很现实的问题: 好的 skill / workflow 到底该放哪?怎么复用? Prompt 太零散,放在 Notion、Gist、README 里,时间一长就找不到; 不同项目里反复复制粘贴,又很难维护; 看到 GitHub 上有人写了不错的 skill,也不知道怎么发现、怎么用。 Skills.lc 就是在这样的背景下出现的。 它本质上不是“又一个 AI 平台”,而是一个 技能索引与分发站点,专门用来收集、整理


Spring注解秘籍:优雅地使用 @RequestHeader
独泪了无痕2026/1/29

前言   在 Spring Boot 开发中,HTTP 请求头(Header)是客户端和服务器之间传递元数据的重要方式。通过请求头,客户端可以传递认证信息、内容类型、语言偏好等数据。Spring Boot 提供了 @RequestHeader 注解,用于方便地从 HTTP 请求头中提取数据。本文将详细介绍 @RequestHeader 注解的使用方法,包括基本用法、默认值处理、多值头处理以及实际应用场景。 一、注解定义与核心属性 1.1 @RequestHeader 是什么   在构建现代 W


筑牢金融底座:企业级区块链全球化数据库架构设计白皮书
China_Yanhy2026/1/20

📖 前言:Web3 业务的双重账本 在 Web3 业务中,区块链(AMB)是不可篡改的“链上真理”,而关系型数据库(RDS/Aurora)则是承载用户资产、撮合逻辑和KYC信息的“链下业务核心”。对于追求全球化的高频交易项目,数据库的架构设计必须解决两个核心矛盾:跨国访问的物理延迟 与 资金数据的一致性。 第一部分:旗舰方案 —— Amazon Aurora Global Database (深度解析) 这是针对跨国交易所(如币安、Coinbase 模式)的首选架构。 1. 核心架构


Ansible自动化(十五):加解密详解
cly12026/1/12

Ansible Vault 是 Ansible 提供的一套用于保护敏感数据的机制,可以对各类配置文件进行加密,防止敏感信息(如密码、私钥、API 密钥等)以明文形式暴露在代码仓库或配置文件中。 一、为什么需要 Ansible 加密? 场景说明: Playbook 中包含数据库密码、API Token、SSH 私钥等敏感信息Inventory(主机清单)中直接写入了连接密码(如 ansible_password)变量文件(vars/main.yml)中包含机密配置 ✅ Ansible Vaul


Go 项目结构总是写乱?这个 50 行代码的 Demo 教你标准姿势
Java小成2026/1/4

1. 场景复现:那个让我头疼的时刻 去年,我接手了一个"祖传" Go 项目。打开代码仓库的那一刻,我整个人都不好了——所有代码都塞在一个 main.go 里,足足 3000 多行。想加个功能?先花半小时找代码在哪。想写个单元测试?抱歉,函数全是私有的,而且互相耦合,根本没法单独测。 我当时就在想:如果当初写这个项目的人,能从第一天就用一个规范的结构,后面的人得少掉多少头发? 后来我开始研究 Go 官方和社区推荐的项目布局,发现其实规则很简单,但很多人就是不知道。于是我写了这个 50 行代码的小


Vue 实例挂载的过程是怎样的?
全栈陈序员2025/12/25

一、整体流程概览 当我们执行 new Vue({ ... }) 时,Vue 会经历 初始化 → 编译模板 → 挂载 DOM 三个阶段。整个过程由 _init 方法驱动,最终通过 $mount 完成视图渲染。 核心路径: new Vue() → _init() → initState() → $mount() → mountComponent() → _render() → _update() → 真实 DOM 二、详细步骤解析 1. 构造函数与 _init 初始化 源码位

首页编辑器站点地图

本站内容在 CC BY-SA 4.0 协议下发布

Copyright © 2026 XYZ博客