HTML 中引入 CSS 的几种方式及优缺点

admin10个月前笔记90

image.png

内联方式

内联方式指的是直接在 HTML 标签中的 style 属性中添加 CSS。

示例:

<div style="background: red"></div>

这通常是个很糟糕的书写方式,它只能改变当前标签的样式,如果想要多个 <div> 拥有相同的样式,你不得不重复地为每个 <div> 添加相同的样式,如果想要修改一种样式,又不得不修改所有的 style 中的代码。很显然,内联方式引入 CSS 代码会导致 HTML 代码变得冗长,且使得网页难以维护。

嵌入方式

嵌入方式指的是在 HTML 头部中的 <style> 标签下书写 CSS 代码。

<head>
    <style>

    .content {
        background: red;
    }

    </style></head>

嵌入方式的 CSS 只对当前的网页有效。因为 CSS 代码是在 HTML 文件中,所以会使得代码比较集中,当我们写模板网页时这通常比较有利。因为查看模板代码的人可以一目了然地查看 HTML 结构和 CSS 样式。因为嵌入的 CSS 只对当前页面有效,所以当多个页面需要引入相同的 CSS 代码时,这样写会导致代码冗余,也不利于维护。

链接方式

链接方式指的是使用 HTML 头部的 </head> 标签引入外部的 CSS 文件。

示例:

<head>
    <link rel="stylesheet" type="text/css" href="style.css"></head>

这是最常见的也是最推荐的引入 CSS 的方式。使用这种方式,所有的 CSS 代码只存在于单独的 CSS 文件中,所以具有良好的可维护性。并且所有的 CSS 代码只存在于 CSS 文件中,CSS 文件会在第一次加载时引入,以后切换页面时只需加载 HTML 文件即可。

导入方式

导入方式指的是使用 CSS 规则引入外部 CSS 文件。

示例:

<style>
    @import url(style.css);</style>
比较链接方式和导入方式

链接方式(下面用 link 代替)和导入方式(下面用 @import 代替)都是引入外部的 CSS 文件的方式,下面我们来比较这两种方式,并且说明为什么不推荐使用 @import。

  1. link 属于 HTML,通过 标签中的 href 属性来引入外部文件,而 @import 属于 CSS,所以导入语句应写在 CSS 中,要注意的是导入语句应写在样式表的开头,否则无法正确导入外部文件;

  2. @import 是 CSS2.1 才出现的概念,所以如果浏览器版本较低,无法正确导入外部样式文件;

  3. 当 HTML 文件被加载时,link 引用的文件会同时被加载,而 @import 引用的文件则会等页面全部下载完毕再被加载;

小结:我们应尽量使用<link>标签导入外部 CSS 文件,避免或者少用使用其他三种方式。


相关文章

MySQL利用逻辑备份恢复误删的数据库

前言本篇文章介绍了MySQL数据库中误删库后,使用逻辑备份完全恢复方法的一种方法。此方法的一个前提条件是数据库打开了binlog,在生产环境中强烈建议打开binlog。这相当于数据库的归档,虽然占用了...

apache使用fcgi配置PHP环境的步骤

早期的CGI技术使外部程序与Web服务器之间交互成为可能,但CGI程序运行在独立的进程中,并对每个Web请求创建一个进程,这种方法非常容易实现,但效率很差,难以扩展。面对大量请求,进程的大量创建和消亡...

SQL中为什么不要使用1=1

最近看几个老项目的SQL条件中使用了1=1,想想自己也曾经这样写过,略有感触,特别拿出来说道说道。编写SQL语句就像炒菜,每一种调料的使用都可能会影响菜品的最终味道,每一个SQL条件的加入也可能会影响...

Linux环境变量配置全攻略

Linux环境变量配置在自定义安装软件的时候,经常需要配置环境变量,下面列举出各种对环境变量的配置方法。下面所有例子的环境说明如下:系统:Ubuntu 14.0用户名:uusama需要配置MySQL环...

CPU使用率度量指标的分析!

CPU使用率度量指标的分析!

没错,我在这里所说的是每个人在到处使用的“%CPU”这个度量指标,用于每一款性能监控产品中。用top(1)命令来查看。你可能认为90%的CPU使用率意味着:而实际上它可能意味着:停滞(stalled)...

V2Ray 是什么?

V2Ray 是什么?

V2Ray 是一个网络代理工具,通过使用特定的中转服务器完成数据传输,支持 HTTP(只支持传入)、Socks、Shadowsocks、Trojan、VMess、VLESS等内容传输协议,每个内容传输...

发表评论    

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。