HTML + CSS

目录

[什么是 HTML?](#什么是 HTML?)

[什么是 CSS?](#什么是 CSS?)

[HTML 基础语法](#HTML 基础语法)

基本结构

标签规则

[常用 HTML 标签速查表](#常用 HTML 标签速查表)

[CSS 基础语法](#CSS 基础语法)

[引入 CSS 的三种方式](#引入 CSS 的三种方式)

[CSS 选择器大全](#CSS 选择器大全)

[盒模型(Box Model)详解](#盒模型(Box Model)详解)

[布局核心:Flexbox 与 Grid(重点!)](#布局核心:Flexbox 与 Grid(重点!))

Flexbox:一维布局

[CSS Grid:二维布局](#CSS Grid:二维布局)

[Flexbox vs Grid 怎么选?](#Flexbox vs Grid 怎么选?)


什么是 HTML?

HTML(HyperText Markup Language)是网页的"骨架"。

  • <h1><p><div> 等标签定义内容结构

  • 浏览器读取 HTML 文件后,将其渲染成你看到的网页

  • 不是编程语言,无需担心"逻辑复杂"

一个最简单的 HTML 页面:

复制代码
<!DOCTYPE html>
<html>
<head>
  <meta charset="UTF-8">
  <title>我的第一个网页</title>
</head>
<body>
  <h1>欢迎来到我的网站!</h1>
  <p>这是一个段落。</p>
</body>
</html>

保存为 index.html,双击打开就能看到效果!


什么是 CSS?

CSS(Cascading Style Sheets)是网页的"皮肤"。

  • 控制颜色、字体、间距、布局等视觉样式

  • 实现"内容"与"样式"分离,便于维护和复用

例如:

复制代码
h1 {
  color: #1e90ff;
  font-size: 28px;
  text-align: center;
}

这段代码会让所有 <h1> 标题变成蓝色、居中、大字号。


HTML 基础语法

基本结构

复制代码
<!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>
  <!-- 你的内容写在这里 -->
</body>
</html>

⚠️ 别忘了 <meta charset="UTF-8">,否则中文可能乱码!

标签规则

  • 大多数标签成对出现:<p>内容</p>

  • 自闭合标签无需结束:<img src="logo.png" alt="Logo">(HTML5 中可省略 /

  • 属性写在开始标签里:<a href="https://example.com">链接</a>


常用 HTML 标签速查表

标签 用途
<h1> ~ <h6> 标题(h1 最重要)
<p> 段落
<a href="..."> 超链接
<img src="..." alt="..."> 图片(alt 是无障碍必备)
<ul> / <ol> + <li> 无序/有序列表
<div> 通用块级容器
<span> 通用行内容器
<header>, <nav>, <main>, <footer> 语义化标签(强烈推荐使用!)

✅ 语义化标签不仅让代码更清晰,还能提升 SEO 和屏幕阅读器兼容性!


CSS 基础语法

CSS 的基本结构是:

复制代码
选择器 {
  属性: 值;
  color: red;
  font-size: 16px;
}

引入 CSS 的三种方式

  1. 内联样式(不推荐)

    复制代码
    <p style="color: green;">绿色文字</p>
  2. 内部样式表(适合单页)

    复制代码
    <style>
      p { color: green; }
    </style>
  3. 外部样式表(✅ 推荐!)

    复制代码
    <link rel="stylesheet" href="style.css">

CSS 选择器大全

选择器 示例 说明
元素选择器 p 选所有 <p>
类选择器 .btn class="btn" 的元素
ID 选择器 #top id="top" 的元素(页面唯一)
后代选择器 nav a nav 里的所有 <a>
子选择器 ul > li ul 的直接子元素 li
伪类 a:hover 鼠标悬停时的链接

💡 尽量少用 ID 选择器,优先用 class,更利于复用和维护。


盒模型(Box Model)详解

每个 HTML 元素都是一个"盒子",由四部分组成:

复制代码
margin → border → padding → content
  • content:实际内容(文字、图片等)

  • padding:内边距(内容到边框的距离)

  • border:边框

  • margin:外边距(与其他元素的间距)

默认情况下,widthheight 只包含 content。 但你可以通过以下代码改变行为:

复制代码
* {
  box-sizing: border-box;
}

✅ 这行代码会让 width 包含 padding + border,布局更直观,强烈建议全局设置!


布局核心:Flexbox 与 Grid(重点!)

Flexbox:一维布局

适合导航栏、卡片内对齐、垂直居中等场景。

启用方式:

复制代码
.container {
  display: flex;
}

常用属性(容器):

  • justify-content:主轴对齐(如 centerspace-between

  • align-items:交叉轴对齐(如 center 实现垂直居中)

  • flex-direction: column:改成纵向排列

  • flex-wrap: wrap:允许换行

✅ 经典用法:全屏居中

复制代码
.center {
  display: flex;
  justify-content: center;
  align-items: center;
  height: 100vh;
}

CSS Grid:二维布局

适合整体页面结构、图库、仪表盘等。

启用方式:

复制代码
.container {
  display: grid;
  grid-template-columns: 1fr 2fr; /* 两列,比例 1:2 */
  gap: 16px;
}

高级技巧:命名区域布局

复制代码
.layout {
  display: grid;
  grid-template-areas:
    "header header"
    "sidebar main"
    "footer footer";
  grid-template-rows: 80px 1fr 60px;
  grid-template-columns: 200px 1fr;
}
​
.header { grid-area: header; }
.sidebar { grid-area: sidebar; }
.main    { grid-area: main; }
.footer  { grid-area: footer; }

Flexbox vs Grid 怎么选?

场景 推荐方案
导航栏、按钮组、卡片内部对齐 ✅ Flexbox
整体页面布局、多列复杂结构 ✅ CSS Grid
不确定? Grid 做外层,Flexbox 做内层!
相关推荐
weixin_382395237 小时前
为小工厂量身打造:本地部署的物料管理系统带缺料计算
前端·制造
__zRainy__7 小时前
解决pnpm v10+不自动构建
前端·pnpm·工程化
猫猫不是喵喵.7 小时前
Vue3 Props 属性
前端·javascript·vue.js
醉城夜风~8 小时前
CSS元素显示模式(display)
前端·css
AI大模型-小华9 小时前
Codex 三方充值快速入门指南
java·前端·数据库·chatgpt·ai编程·codex·chatgpt pro
做前端的娜娜子11 小时前
同一链接实现 PC Web 与移动 H5 自适应
前端·掘金·金石计划
小帅不太帅11 小时前
架构没变、规模没变,DeepSeek V4 Flash 正式版凭什么暴涨 47 分?
前端·aigc·deepseek
jarvisuni12 小时前
DeepSeekFlash前端依旧拉垮,而且变慢了很多!
前端·javascript·算法
卷福同学13 小时前
AI编程出海第二步:验证关键词能否做站
前端·人工智能·后端