CSS 外部样式

本节我们讲最后一种 CSS 引入方式,也是实际开发中主要使用的一种方式,即外部样式。

什么是外部样式

外部样式就是把 CSS 代码保存在一个单独的文件中,文件的扩展名为 .css,然后在 HTML 页面中引入这个 CSS 文件即可。

HTML 文件引入外部样式表有两种方式,分别是链接式和导入式。

链接外部样式表

链接外部样式表就是在 HTML 文件中使用 <link/> 标签链接外部样式表,且 <link/> 标签必须放到 HTML 中的 <head> 标签内。在一个 HTML 页面中可以链接多个 CSS 文件,一个 CSS 文件也可以被多个 HTML 页面引用。

语法如下:

<link rel="stylesheet" type="text/css" href="css文件路径">

其中 rel="stylesheet" 是指在页面中使用这个外部样式表,type="text/css" 是指文件的类型是样式表文本,href 属性用于指定 css 文件的路径。

外部样式表实现了结构与样式的彻底分离,一个 css 文件可以应用到多个 HTML 页面中。当改变 css 文件中的样式时,所有应用这个 css 文件的页面中的样式都会随之改变。

示例:

例如我们创建一个 index.css 的文件,将需要用到的 css 代码保存到这个文件中:

h2{
    color: lightsalmon;
    }
p{
    color:limegreen ;
    font-size: 18px;
    line-height: 20px;
}
span{
    color: mediumpurple;
    font-weight: bold;
}

然后可以在 HTML 文件中通过 <link/> 标签引用这个文件:

<!DOCTYPE>
<html>
    <head>
        <meta charset="utf-8">
        <title>CSS学习(9xkd.com)</title>
        <link rel="stylesheet" type="text/css" href="./index.css">
    </head>
    <body>
       <h2>《木兰花令 拟古决绝词》</h2>
       <p>人生若只如初见,何事秋风悲画扇</p>
       <p>等闲变却故人心,却道故人心易变。</p>
       <p>骊山语罢清宵半,泪雨零铃终不怨。</p>
       <p>何如薄幸锦衣郎,<span>比翼连枝当日愿。</span></p>
    </body>
</html>

在浏览器中演示效果:



可以看到最终效果和上一节内嵌样式示例中的是效果一样。只不过 CSS 部分独立为了一个单独的文件。

由于链接式在减少代码书写和减少维护工作方面都非常突出,所以链接式是最常用的一种引用 CSS 样式的方法。

导入外部样式表

导入外部样式表就是在 HTML 页面中使用 @import 导入外部样式表,导入样式表的语法需要放置到 <style> 标签中。

导入外部样式表和链接外部样式表是很像的,都实现了页面与样式的分离。 不同在于导入外部样式表在页面初始化时,就把样式导入到了页面中,这样就变成了内嵌样式。而链接外部样式表是在页面中有标签需要样式时才以链接的方式引入,这样看的话链接外部样式表会更加合适。

语法格式:

<style>
    @import url("css文件路径");
</style>

@import 表示导入文件,前面的 @ 符号必须写哟,url 中的则是样式表文件的路径。

示例:

将上述示例中的引入 css 文件的方式改为导入外部样式表:

<!DOCTYPE>
<html>
    <head>
        <meta charset="utf-8">
        <title>CSS学习(9xkd.com)</title>
        <style>
            @import url("index.css");
        </style>
    </head>
    <body>
       <h2>《木兰花令 拟古决绝词》</h2>
       <p>人生若只如初见,何事秋风悲画扇</p>
       <p>等闲变却故人心,却道故人心易变。</p>
       <p>骊山语罢清宵半,泪雨零铃终不怨。</p>
       <p>何如薄幸锦衣郎,<span>比翼连枝当日愿。</span></p>
    </body>
</html>

演示效果是不变的,因为 css 文件中的内容并没有改变。导入式除了可以在同一个页面中导入多个样式文件,还可以在 css 样式文件中使用 import 进行导入。

样式优先级

我们学习了关于 CSS 样式的三种引用方式,那么它们之间的优先关系是怎么样的呢?也就是说当元素同时继承这些样式,但是样式之间发生了冲突,最终会应用哪个样式。

示例:

例如在一个 <p> 标签的行内样式中定义了字体大小为16px,在嵌套样式中定义字体大小18px,在外部样式中定义了字体大小为20px。最终会应用哪个字体大小呢?这里我不演示,大家自己来试一下。

试完之后,是不是能得出如下结论呢,CSS 中样式的优先级规则如下所示:

  • 行内样式>内嵌样式>外部样式

也就是说行内样式的优先级最高,最先会应用行内样式,其次是内嵌样式,最后是外部样式,这讲究一个就近原则。