CSS 的添加方法

当浏览器读到样式表时,它将根据样式表中的信息来格式化 HTML 文档。


三种使用 CSS 的方法

有三种插入样式表的方法:

  • 外部 CSS
  • 内部 CSS
  • 行内 CSS

外部 CSS

通过使用外部样式表,您只需修改一个文件即可改变整个网站的外观!

每张 HTML 页面必须在 head 部分的 <link> 元素内包含对外部样式表文件的引用。

实例

外部样式在 HTML 页面 <head> 部分内的 <link> 元素中进行定义:

  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <link rel="stylesheet" href="mystyle.css">
  5. </head>
  6. <body>
  7. <h1>这是一个标题</h1>
  8. <p>这是一个段落</p>
  9. </body>
  10. </html>

外部样式表可以在任何文本编辑器中编写,并且必须以 .css 扩展名保存。

外部 .css 文件不应包含任何 HTML 标签。

"mystyle.css" 是这样的:

  1. body {
  2. background-color: lightblue;
  3. }
  4. h1 {
  5. color: navy;
  6. margin-left: 20px;
  7. }

注意:请勿在属性值和单位之间添加空格(例如 margin-left: 20 px;)。正确的写法是:margin-left: 20px;


内部 CSS

如果一张 HTML 页面拥有唯一的样式,那么可以使用内部样式表。

内部样式是在 head 部分的 <style> 元素中进行定义。

实例

内部样式在 HTML 页面的 <head> 部分内的 <style> 元素中进行定义:

  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <style>
  5. body {
  6. background-color: linen;
  7. }
  8. h1 {
  9. color: maroon;
  10. margin-left: 40px;
  11. }
  12. </style>
  13. </head>
  14. <body>
  15. <h1>这是一个标题</h1>
  16. <p>这是一个段落。</p>
  17. </body>
  18. </html>

行内 CSS

行内样式(也称内联样式)可用于为单个元素应用唯一的样式。

如需使用行内样式,请将 style 属性添加到相关元素。style 属性可包含任何 CSS 属性。

实例

行内样式在相关元素的 "style" 属性中定义:

  1. <!DOCTYPE html>
  2. <html>
  3. <body>
  4. <h1 style="color:blue;text-align:center;">这是标题</h1>
  5. <p style="color:red;">这是一个段落。</p>
  6. </body>
  7. </html>

提示:行内样式失去了样式表的许多优点(通过将内容与呈现混合在一起)。请谨慎使用此方法。


多个样式表

如果在不同样式表中为同一选择器(元素)定义了一些属性,则将使用最后读取的样式表中的值。

假设某个外部样式表为 <h1> 元素设定的如下样式:

  1. h1 {
  2. color: navy;
  3. }

然后,假设某个内部样式表也为 <h1> 元素设置了如下样式:

  1. h1 {
  2. color: orange;
  3. }
实例

如果内部样式是在链接到外部样式表之后定义的,则 <h1> 元素将是橙色:

  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <link rel="stylesheet" type="text/css" href="mystyle.css">
  5. <style>
  6. h1 {
  7. color: orange;
  8. }
  9. </style>
  10. </head>
  11. <body>
  12. <h1>这是一个标题</h1>
  13. <p>本文档的样式是外部样式表和内部样式的组合。</p>
  14. </body>
  15. </html>
实例

不过,如果在链接到外部样式表之前定义了内部样式,则 <h1> 元素将是深蓝色:

  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <style>
  5. h1 {
  6. color: orange;
  7. }
  8. </style>
  9. <link rel="stylesheet" type="text/css" href="mystyle.css">
  10. </head>
  11. <body>
  12. <h1>这是一个标题</h1>
  13. <p>本文档的样式是外部样式表和内部样式的组合。</p>
  14. </body>
  15. </html>

层叠顺序

当为某个 HTML 元素指定了多个样式时,会使用哪种样式呢?页面中的所有样式将按照以下规则“层叠”为新的“虚拟”样式表,其中第一优先级最高:

  1. 行内样式(在 HTML 元素中)
  2. 外部和内部样式表(在 head 部分)
  3. 浏览器默认样式

因此,行内样式具有最高优先级,并且将覆盖外部和内部样式以及浏览器默认样式。

  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <link rel="stylesheet" type="text/css" href="mystyle.css">
  5. <style>
  6. body {background-color: linen;}
  7. </style>
  8. </head>
  9. <body style="background-color: lavender">
  10. <h1>多重样式会层叠为一</h1>
  11. <p>在此处,本页面的背景色同时由行内 CSS、内部 CSS 或外部 CSS 设置。</p>
  12. <p>请尝试通过删除样式来查看级联样式表的工作方式(尝试首先删除行内 CSS,然后是内部,最后是外部)。</p>
  13. </body>
  14. </html>