Skip to content

CSS 基础(四) ​

本页对应 CSS 基础,共 7 段视频,约 49 分钟。

学习目标 ​

  • 能为元素设置文字颜色,正确使用十六进制颜色(# 开头、6 位/3 位缩写)、rgb() 与 rgba() 格式,并说明透明度的取值与效果。
  • 能使用浏览器开发者工具检查页面结构与样式,定位被划掉或带警告的 CSS 声明,并在源代码中修正后刷新验证。
  • 能根据新闻详情效果图先复制文字并搭建 HTML 结构,再按从上到下的顺序完成标题、来源、段落、图片等样式设置。
  • 能通过给独占一行的父级盒子添加类名并设置 text-align: center,实现图片水平居中,且不影响页面其他 div。
  • 能独立完成综合案例二的标题、段落和列表样式,设置字号、颜色、行高、首行缩进、加粗及链接颜色,并与效果图对照验证。

知识点 ​

案例目标与制作思路 ​

本节做“新闻详情”综合案例:标题、来源时间、正文段落、正文配图。效果图如下,保留原图并把 alt 改为中文:

新闻详情页面效果图

为什么需要:综合案例要把前面学的标题、段落、加粗、图片、文字样式串起来,形成完整页面。
怎么想:按转写稿强调的网页制作思路:从上到下,先整体再局部;先搭 HTML 标签,再用 CSS 美化。不要一上来就调样式。
怎么做:先把新闻文字复制进 HTML,判断每块内容用什么标签:大标题用 h1,来源时间用 div,正文段落用 p,图片放在 div 里。
易错点:不要先纠结颜色和字号;结构没搭好就调样式,后面容易返工。来源行不要随手用 p,因为 p 后面要统一首行缩进,来源行并不缩进。

先搭 HTML 结构:先标签,再局部 ​

为什么需要:标签决定页面内容的层级和语义,也决定后面 CSS 选择器怎么写。
怎么想:标题独占一行用 h1;来源和时间是一行说明文字,用 div;每段正文用 p;“央视网消息:”需要加粗,用 strong 包住;图片单独放在一个容器里,方便后面只控制这张图。
怎么做:得到如下 HTML:

html
<h1>在希望的田野上 | 湖北秋收开镰 各地多举措保增产增收</h1>
<div>来源:央视网 | 2222年12月12日 12:12:12</div>
<p><strong>央视网消息:</strong>眼下,湖北省秋收开镰已有一周多的时间。水稻收割已经超过四成,玉米收割七成。湖北省通过大力推广新品种水稻,建设高标准农田等一系列措施,为秋粮稳产提供有力支撑。</p>
<p>中稻占据了湖北全年粮食产量的一半以上。在湖北的主产区荆门市,370万亩中稻已经收割四成以上。</p>
<div class="pic">
  <img src="./1.jpg" alt="">
</div>
<p>王化林说的新品种,是湖北省研发的杂交水稻“华夏香丝”,不仅产量高,还具有抗病、抗倒、抗高温的特性。在荆门漳河镇的一工程示范田内,像“华夏香丝”这样抗旱节水的品种还有20多个,这些水稻新品将在荆门全面推广,确保来年增产增收。</p>
<p>此外,湖北还大力推进高标准农田建设。截至今年6月,已建成3980万亩高标准农田。目前,湖北全省仍有1800多万亩中稻正在有序收割中,预计10月中旬收割完毕。</p>

易错点:strong 左右要保留合适空格,避免文字挤在一起;图片容器要起类名,不能只写一个裸 div,否则后面很难单独控制图片区域。

再用 CSS 美化:按效果图逐项写 ​

为什么需要:HTML 只给内容,CSS 才让标题居中、字号颜色接近新闻页效果。转写稿提到开发中很少用纯黑,常用 #333 这类较柔和的十六进制颜色;颜色写十六进制时不要漏 #。
怎么想:先看效果图要什么:h1 不要加粗、水平居中、30px、#333;来源行 14px、#999;所有 p 首行缩进 2 个字、18px、#333;图片区域水平居中。
怎么做:保留笔记 CSS:

html
<style>
  h1 {
    text-align: center;
    font-weight: 400;
    font-size: 30px;
    color: #333;
  }

  div {
    font-size: 14px;
    color: #999;
  }

  p {
    text-indent: 2em;
    font-size: 18px;
    color: #333;
  }

  /* div {
    text-align: center;
  } */

  .pic {
    text-align: center;
  }
</style>

易错点:font-size 不要写成 font-style;text-indent: 2em 是首行缩进两个字;font-weight: 400 表示不加粗;text-align: center 要写对,别漏分号;单位 px 不要漏。

图片居中与类名隔离 ​

为什么需要:图片本身不能像文字那样直接靠 h1、p 的 text-align 居中;转写稿说,要给图片的“父亲”加水平居中,而且这个父盒子要独占一行。
怎么想:如果用 span 包图片,span 不是独占一行的盒子,效果不可靠;如果直接写 div { text-align: center; },页面中所有 div 都会居中,连上面的来源行也会被影响。
怎么做:给图片外层 div 起类名 pic,CSS 写 .pic { text-align: center; }。这样只有调用了 pic 类名的这个 div 执行居中。
易错点:类选择器要写点,如 .pic;HTML 中写 class="pic";不要为了省事直接让所有 div 居中。转写稿中注释掉的 div { text-align: center; } 正是在提醒这个问题。

用调试工具验证与排错 ​

为什么需要:代码一多,靠肉眼找错误很累。调试工具能快速指出哪条 CSS 有问题。
怎么想:打开浏览器按 F12,或右键选择“检查”;左侧看 HTML,右侧看 CSS。若某条样式被划掉、前面有黄色感叹号,就重点检查它。
怎么做:例如发现 font-size: 30 没生效,可在调试工具中看到它被划掉,补上 px 后再回源码修改;也可用上下箭头微调数值,用颜色面板切换十六进制或 RGB 观察效果。
易错点:调试工具只能帮助发现问题,不会真正修改源码;在调试工具里改完,刷新页面会还原。最终仍要回到 HTML/CSS 文件中改,并刷新验证。

先看效果与素材 ​

新闻详情案例效果图

这一节做“综合案例二:CSS 简介”,目标不是背单词,而是把前面学的标题、段落、列表、链接、加粗、颜色、行高、缩进和调试工具串起来。整体思路是:先把文字复制进来搭好 HTML 结构,再从上往下写 CSS 样式,最后用调试工具检查问题。

颜色:为什么需要、怎么想、怎么做、易错点 ​

为什么需要:页面默认是黑字白底,标题、正文、链接、提示文字要有层次,就必须控制颜色。
怎么想:开发中最常用十六进制;需要半透明时用 RGBA;英文颜色名和 RGB 主要用于认识、测试。
怎么做:十六进制以 # 开头,如 #333、#0069c2;RGB 写成 rgb(255,0,0);RGBA 多一个透明度,如 rgba(0,0,0,.6),透明度范围 0 到 1。十六进制可简写,但必须“两两相同”,如 #000000 可写 #000,#ff6700 不能乱简写。
易错点:# 不能漏;font-size 不是 font-style;line-height: 30px 别漏单位;纯黑纯红开发中不一定好看,常用 #333、#444 这类柔和颜色。

调试工具:为什么需要、怎么想、怎么做、易错点 ​

为什么需要:代码一多,靠肉眼找错很慢。调试工具能快速定位哪个选择器、哪条样式出问题。
怎么想:它只帮我们“发现问题”,不会真正修改源码;改完源码还要刷新验证。
怎么做:F12 或右键“检查”打开;左边看 HTML,右边看 CSS。选中元素后,被划掉的样式、前面的黄色叹号都提示有问题。转写稿里 height: 100 少了 px,调试工具划掉并提示,回到源码对应行补上 px 后刷新即可。调宽度、颜色时可在调试面板里点数值按上下箭头微调,满意后把结果复制回代码。
易错点:调试面板里的修改刷新就没了,不能当成最终代码;看到报错要回到源文件改,不要只在面板里“假装修好”。

搭建 HTML 结构:为什么需要、怎么想、怎么做、易错点 ​

为什么需要:结构是样式的“抓手”,结构乱了,CSS 选择器就难写。
怎么想:先看效果图分块:大标题用 h1,来源信息可用带类名的 div,正文段落用 p,列表用 ul>li,重点文字用 strong,链接用 a。
怎么做:笔记中的结构如下,先保留:

html
<h1>CSS(层叠样式表)</h1>
<p>层叠样式表 (Cascading Style Sheets,缩写为 CSS),是一种 <a href="#">样式表</a> 语言,用来描述 HTML 或 XML(包括如 SVG、MathML、XHTML 之类的 XML 分支语言)文档的呈现。CSS 描述了在屏幕、纸质、音频等其它媒体上的元素应该如何被渲染的问题。</p>
<p><strong>CSS 是开放网络的核心语言之一</strong>,由 W3C 规范 实现跨浏览器的标准化。CSS 节省了大量的工作。 样式可以通过定义保存在外部.css 文件中,同时控制多个网页的布局,这意味着开发者不必经历在所有网页上编辑布局的麻烦。CSS 被分为不同等级:CSS1 现已废弃, CSS2.1 是推荐标准, CSS3 分成多个小模块且正在标准化中。</p>
<ul>
  <li>CSS 介绍 如果你是 Web 开发的新手,请务必阅读我们的 CSS 基础 文章以学习 CSS 的含义和用法。</li>
  <li>CSS 教程 我们的 CSS 学习区 包含了丰富的教程,它们覆盖了全部基础知识,能使你在 CSS 之路上从初出茅庐到游刃有余。</li>
  <li>CSS 参考 针对资深 Web 开发者的 <a href="#">详细参考手册</a> ,描述了 CSS 的各个属性与概念。</li>
</ul>

易错点:标题不要用多个 div 硬凑;来源信息若用 div,最好加类名,如 class="time",否则后面容易误伤其他 div。

写 CSS 样式:为什么需要、怎么想、怎么做、易错点 ​

为什么需要:结构只负责内容,样式负责还原效果图。
怎么想:从上往下:标题去粗、居中、改字号颜色;来源改小字灰色;所有段落统一字号、颜色、行高、首行缩进;列表统一字号行高;链接单独改颜色。
怎么做:笔记样式如下:

html
<style>
  h1 {
    color: #333;
  }

  p {
    text-indent: 2em;
    font-size: 14px;
    color: #444;
    line-height: 30px;
  }

  a {
    color: #0069c2;
  }

  li {
    font-size: 14px;
    color: #444;
    line-height: 30px;
  }
</style>

案例中还会补:h1 { font-weight: 400; text-align: center; font-size: 30px; },来源用 .time { color: #999; font-size: 14px; },正文 p 常用 font-size: 18px; color: #333; text-indent: 2em;,列表 li 用 font-size: 14px; line-height: 30px; color: #444;。
易错点:text-indent: 2em 是首行缩进两个汉字;text-align: center 是水平居中;strong 一般直接包文字加粗,不必所有加粗都写样式。

图片水平居中:为什么需要、怎么想、怎么做、易错点 ​

为什么需要:图片本身不是独占一行的盒子,直接给 img 加 text-align: center 往往不生效。
怎么想:让“独占一行的父容器”居中,再让里面的图片跟着居中。
怎么做:给图片外套一个 div,起类名如 pic,写 .pic { text-align: center; }。不要直接给所有 div 写居中,否则上面的 .time 也会被影响。
易错点:用 span 包图片通常不行,因为 span 不是独占一行;给所有 div 加居中会“误伤”其他模块,类名的意义就是只让调用的元素生效。

第二个案例与收尾 ​

第二个案例更简单:标题 h1 改 #333,段落 p 设 font-size: 14px; color: #444; line-height: 30px; text-indent: 2em;,列表 li 同样设字号、行高;重点句用 strong 包起来;链接统一改 color: #0069c2。写完后用调试工具检查颜色、字号、行高和加粗是否符合效果图,再刷新确认。记住:先结构,后样式;先大面,后细节;调试工具只负责帮你找问题。

课件图示(PPTX) ​

day03 课件图

day03 课件图

代码示例 ​

案例一:新闻详情页(笔记 07) ​

html
<!DOCTYPE html>
<html lang="zh-CN">
<head>
  <meta charset="UTF-8">
  <title>新闻详情</title>
  <style>
    h1 {
      text-align: center;
      font-weight: 400;
      font-size: 30px;
      color: #333;
    }

    div {
      font-size: 14px;
      color: #999;
    }

    p {
      text-indent: 2em;
      font-size: 18px;
      color: #333;
    }

    .pic {
      text-align: center;
    }
  </style>
</head>
<body>
  <h1>在希望的田野上 | 湖北秋收开镰 各地多举措保增产增收</h1>
  <div class="time">来源:央视网 | 2222年12月12日 12:12:12</div>
  <p><strong>央视网消息:</strong>眼下,湖北省秋收开镰已有一周多的时间。水稻收割已经超过四成,玉米收割七成。湖北省通过大力推广新品种水稻,建设高标准农田等一系列措施,为秋粮稳产提供有力支撑。</p>
  <p>中稻占据了湖北全年粮食产量的一半以上。在湖北的主产区荆门市,370万亩中稻已经收割四成多。</p>
  <div class="pic">
    <img src="./1.jpg" alt="">
  </div>
  <p>王化林说的新品种,是湖北省研发的杂交水稻“华夏香丝”,不仅产量高,还具有抗病、抗倒、抗高温的特性。在荆门漳河镇的一工程示范田内,像“华夏香丝”这样抗旱节水的品种还有20多个,这些水稻新品将在荆门全面推广,确保来年增产增收。</p>
  <p>此外,湖北还大力推进高标准农田建设。截至今年6月,已建成3980万亩高标准农田。目前,湖北全省仍有1800多万亩中稻正在有序收割中,预计10月中旬收割完毕。</p>
</body>
</html>

关键行与易错点

  • h1 默认是加粗的,用 font-weight: 400 取消加粗;text-align: center 让标题文字水平居中。
  • div 是标签选择器,会命中页面里所有 div(包括 .pic),所以写样式时要意识到“它会影响到谁”,必要时给 div 起类名(如 .time、.pic)区分开。
  • text-indent: 2em 是首行缩进两个字,em 是相对当前字号计算的,字号变了缩进也跟着变。
  • 图片水平居中:img 是行内元素,直接给 img 加 text-align 没用,必须给它的父盒子加 text-align: center。父盒子必须是独占一行的盒子(div/p 这类),用 span 包图片是不行的。
  • div 的 font-size: 14px; color: #999 会把 .pic 也一起设置,但 .pic 里只有图片,视觉上没有影响。

案例二:CSS 简介页(笔记 08) ​

html
<!DOCTYPE html>
<html lang="zh-CN">
<head>
  <meta charset="UTF-8">
  <title>CSS 简介</title>
  <style>
    h1 {
      color: #333;
    }

    p {
      text-indent: 2em;
      font-size: 14px;
      color: #444;
      line-height: 30px;
    }

    a {
      color: #0069c2;
    }

    li {
      font-size: 14px;
      color: #444;
      line-height: 30px;
    }
  </style>
</head>
<body>
  <h1>CSS(层叠样式表)</h1>
  <p>层叠样式表 (Cascading Style Sheets,缩写为 CSS),是一种 <a href="#">样式表</a> 语言,用来描述 HTML 或 XML(包括如 SVG、MathML、XHTML 之类的 XML 分支语言)文档的呈现。CSS 描述了在屏幕、纸质、音频等其它媒体上的元素应该如何被渲染的问题。</p>
  <p><strong>CSS 是开放网络的核心语言之一</strong>,由 W3C 规范 实现跨浏览器的标准化。CSS 节省了大量的工作。 样式可以通过定义保存在外部.css 文件中,同时控制多个网页的布局,这意味着开发者不必经历在所有网页上编辑布局的麻烦。CSS 被分为不同等级:CSS1 现已废弃, CSS2.1 是推荐标准, CSS3 分成多个小模块且正在标准化中。</p>
  <ul>
    <li>CSS 介绍 如果你是 Web 开发的新手,请务必阅读我们的 CSS 基础 文章以学习 CSS 的含义和用法。</li>
    <li>CSS 教程 我们的 CSS 学习区 包含了丰富的教程,它们覆盖了全部基础知识,能使你在 CSS 之路上从初出茅庐到游刃有余。</li>
    <li>CSS 参考 针对资深 Web 开发者的 <a href="#">详细参考手册</a> ,描述了 CSS 的各个属性与概念。</li>
  </ul>
</body>
</html>

关键行与易错点

  • line-height: 30px 是行高,从上一行文字上沿到下一行文字上沿的距离,段落和列表项都统一给了 30px。
  • 段落加粗用 <strong> 标签包住文字即可,不必专门写 CSS(“一般情况直接包个 strong 就可以了”)。
  • 链接颜色由 a { color: #0069c2 } 控制;这里没有写 text-decoration: none,所以下划线保留,是符合效果图的。
  • li 和 p 的字号、颜色、行高是分别写的两条规则,因为它们是不同的标签选择器,不能指望 p 的样式自动作用到 li 上。
  • 单词易错:字号是 font-size,不是 font-style;行高是 line-height;数字后面单位 px 不能漏。

案例三:颜色表示法演示(转写稿 视频1) ​

html
<!DOCTYPE html>
<html lang="zh-CN">
<head>
  <meta charset="UTF-8">
  <title>颜色表示法</title>
  <style>
    .hex {
      color: #ff0000;
    }

    .hex-short {
      color: #f00;
    }

    .hex-gray {
      color: #333;
    }

    .hex-blue {
      color: #00f;
    }

    .rgb {
      color: rgb(255, 0, 0);
    }

    .bg {
      background-color: #f5f5f5;
    }

    .rgba-box {
      background-color: rgba(0, 0, 0, .6);
      color: #fff;
    }

    .rgba-box2 {
      background-color: rgba(0, 0, 0, .2);
      color: #fff;
    }
  </style>
</head>
<body>
  <div class="hex">十六进制红色 #ff0000</div>
  <div class="hex-short">简写红色 #f00</div>
  <div class="hex-gray">灰色 #333</div>
  <div class="hex-blue">蓝色 #00f</div>
  <div class="rgb">RGB 格式 rgb(255, 0, 0)</div>
  <div class="bg">背景色 #f5f5f5</div>
  <div class="rgba-box">半透明黑色 rgba(0, 0, 0, .6)</div>
  <div class="rgba-box2">更透明 rgba(0, 0, 0, .2)</div>
</body>
</html>

关键行与易错点

  • 十六进制必须以 # 开头,共 6 位:前两位是红、中间两位是绿、后两位是蓝。#000 是黑,#fff 是白,#f00 是纯红,#00f 是纯蓝。
  • 6 位中两两相同的可以简写成 3 位:#000000 → #000,#ff0000 → #f00,#ffffff → #fff。像 #f6700 这种不是两两相同的,不能简写。
  • 只要 6 位数字都一样,就一定是灰色:#333 偏深,#888 居中,#fff 最白。
  • rgb(255, 0, 0) 与 #ff0000 等价,三个数字取值范围是 0–255(共 256 个)。
  • rgba() 比 rgb() 多一个参数,是透明度,取值 0–1,0 完全透明、1 完全不透明;0.6 可以省略写成 .6,但那个点不能省,写成 6 就错了。
  • 实际开发中最常用十六进制,需要半透明盒子时才用 rgba;十六进制不用背,用测量工具取色后复制即可。

常见错误 ​

  1. 现象:给 .pic 加 text-align: center 后图片仍不居中。
    原因:img 是行内元素,自身没有“父容器居中”能力;或父容器不是独占一行。
    修法:给包住图片的独占一行容器加类名,再对该类名设置居中;不要直接给 img 加。

  2. 现象:新闻详情页“来源/时间”也被居中了。
    原因:直接写 div { text-align: center; },命中了页面所有 div。
    修法:给来源/时间单独起类名,只对目标类名写样式,避免标签选择器扩大作用域。

  3. 现象:图片居中用 span 包起来无效。
    原因:span 不是独占一行的盒子,不能承担该居中场景。
    修法:改用独占一行容器并加独立类名;后续学显示模式后再理解本质。

  4. 现象:十六进制颜色不生效或颜色异常。
    原因:漏写 #;或简写时没有满足“两两相同”条件。
    修法:十六进制必须以 # 开头;简写前检查每组两位是否相同,不相同就写完整 6 位。

  5. 现象:RGBA 半透明效果不对。
    原因:透明度写成 60、50 等;或把 0.6 误写成 6。
    修法:透明度范围用 0 到 1;可省略前导 0,如 .6,但不能写成 6。

  6. 现象:段落首行缩进距离不对。
    原因:把 text-indent: 2em 写成 2px 或漏单位。
    修法:按效果图要求写 2em,并检查是否被其他选择器覆盖。

  7. 现象:调试工具里改好后刷新又恢复。
    原因:DevTools 只用于检查和临时调试,不会改源码。
    修法:在工具中定位问题和试调数值,确认后回到 HTML/CSS 源码中修改并刷新验证。

  8. 现象:文字大小不生效。
    原因:把 font-size 误写成 font-style 或 fount-size。
    修法:检查属性拼写和单位;用调试工具看该声明是否被划掉。

练习 ​

  1. 按效果图完成“新闻详情”页:先搭 HTML 结构,再依次处理标题、来源时间、段落、图片居中;要求来源时间不被图片居中样式影响。
  2. 完成“CSS 简介”页:处理标题、段落首行缩进、行高、列表、链接颜色,并保留链接下划线。
  3. 用 DevTools 定位一个故意写错的样式(如漏 px、漏 #、属性拼错),记录“现象—原因—源码修法”,刷新验证。
  4. 将同一颜色的英文单词、十六进制、RGB、RGBA 各写一遍,并说明哪个适合普通文字、哪个适合半透明遮罩。
  5. 给新闻详情页中的图片居中写两种方案并对比:直接给 img 加样式 vs 给带类名的独占一行父容器加样式,说明哪种可维护。

原视频对照 ​

#视频时长
1颜色15:09
2调试工具07:47
3综合案例-html结构04:18
4综合案例-样式上05:15
5综合案例-样式下04:44
6综合案例206:13
7作业布置06:22

小结 ​

  1. 综合案例按“先整体结构、再局部样式;先标签、再美化”的顺序推进。
  2. 样式选择器要控制作用域,能起类名就不要用标签选择器大面积命中。
  3. 图片居中优先检查父容器是否独占一行,并给父容器独立类名。
  4. 颜色开发中优先使用十六进制,务必保留 #;半透明场景再考虑 RGBA。
  5. 调试工具用于发现问题、试调数值,最终必须回到源码修改。
  6. 案例实现先完成大面样式,再做细节微调,不要一开始陷入局部。
  7. 同类元素要建立可区分命名习惯,避免样式互相污染。
  8. 练习时以效果图标注为依据,逐项核对字号、颜色、缩进、行高和对齐。