← 课程 目录 CSS 课堂演示 · 第 1 章 语法与引入

CH 01 · 对应教材单元四

语法与引入

HTML 负责「这页有什么」,CSS 负责「长成什么样」。这一章先看懂一条样式规则 的解剖图,再把 CSS 用三种方式接进页面。

1.1一条规则的三要素

选择器(改谁)+ 属性(改什么)+ 值(改成多少),用大括号包起来。

p { color: #B04A2C; font-size: 18px; }
选择器 · 改谁 属性 · 改什么 值 · 改成多少 分号分隔 · 大括号成对
/* 语法结构:选择器 { 属性: 值; } */
p {
  color: #B04A2C;
  font-size: 18px;
}

/* 多条声明写在同一行也可以,
   但课堂上建议一条一行,好读好改 */
p { color: #B04A2C; font-size: 18px; }

分号是每条声明的句号,漏写分号是最常见报错——最后一条可以省,但别省,养成习惯。

1.2方式一:行内样式style 属性

直接写在标签上,只管这一个元素,「杀鸡用牛刀」都算不上,慎用。

我是行内样式染红的段落

我也是行内样式,一行一个都要写一遍

<p>我是行内样式染红的段落</p>

<p style="color:#B04A2C; font-weight:700;">
  我也是行内样式,一行一个都要写一遍
</p>

/* 缺点:结构和样式混在一起,
   十个段落想改色就要写十遍 */

行内样式优先级最高(下一章细讲),一般只用于临时测试或极个别特例。

1.3方式二:内嵌样式<style> 标签

写在页面 head 里,整页通用。单页演示、临时实验用它最方便。

古诗一首

床前明月光,疑是地上霜。

<head>
  <style>
    /* 只对「本页面」生效 */
    .embed-demo h3 {
      color: #B04A2C;
    }
    .embed-demo p {
      color: #3F6E6A;
    }
  </style>
</head>

/* 缺点:换个页面还得复制一遍——
   所以有了第三种方式 */

本项目演示卡里右边代码框的样式,就是用内嵌 + 外链两种方式组合出来的。

1.4方式三:外链样式link 标签 · 推荐

样式独立成 .css 文件,所有页面共用一份。这就是「结构与样式分离」。

<!-- index.html 里只写一行引入 -->
<head>
  <link rel="stylesheet" href="assets/demo.css">
</head>

/* assets/demo.css 里写全部样式 */
.link-demo p {
  color: #8F5E0F;
  border-bottom: 2px solid #F3E0D5;
}

/* 好处:全站改一处,页页生效;
   浏览器还能缓存 css 文件,加载更快 */

真实项目 99% 用外链。rel="stylesheet" 三个单词都别拼错,href 路径写错会「静默失效」——样式不报错、只是不生效。

1.5@import 与注释

CSS 还能用 @import 把别的样式文件「拼」进来;注释用 /* */ 包住。

下面这段 CSS 演示了 @import 的写法——注意它必须写在样式表最顶部:

/* theme.css 可以被别的文件导入复用 */
@import url("theme.css");
@import "reset.css";

/* 注释只有这一种写法(没有 //!) */
p { color: red; }  /* 行尾注释 OK */
// p { color: blue; }   ← 错!这行不是注释,
   会把样式语法搅乱 */

/* 注释用途:分区标题、临时停用某条规则、
   给同学/同事留说明 */

@import 是「下载完 CSS 再去请求下一个文件」,比 link 慢;link 支持并行下载。面试常考:两者选 link。