有 4 种方式可以在 HTML 中引入 CSS。

  1. 内联方式
<div style="background: red"></div>
  1. 嵌入方式 嵌入方式指的是在 HTML 头部中的 <style> 标签下书写 CSS 代码。
<head>
<style>
.content {
	background: red;
}
</style>
</head>
  1. 链接方式 链接方式指的是使用 HTML 头部的 <head> 标签引入外部的 CSS 文件。
<head>
    <link rel="stylesheet" type="text/css" href="style.css">
</head>
  1. 导入方式 导入方式指的是使用 CSS 规则引入外部 CSS 文件。
<style>
    @import url(style.css);
</style>

# 两者区别:

区别1:link是XHTML标签,除了加载CSS外,还可以定义RSS,定义rel连接属性等其他事务;@import属于CSS范畴,只能加载CSS。

区别2:link引用CSS时,在页面载入时同时加载;@import需要页面网页完全载入以后加载。

区别3:link是XHTML标签,无兼容问题;@import是在CSS2.1提出的,低版本的浏览器不支持。

区别4:link支持使用Javascript控制DOM去改变样式;而@import不支持。

<!DOCTYPE html>  
<html lang="en">  
<head>  
  <meta charset="UTF-8">  
  <meta name="viewport" content="width=device-width, initial-scale=1.0">  
  <title>Link Example</title>  
  <link id="myStyles" rel="stylesheet" href="styles.css">  
</head>  
<body>  
  <h1>Hello, World!</h1>  
  <p>This is a paragraph.</p>  
  <button onclick="changeStyle()">Change Style</button>  
  
  <script>  
    function changeStyle() {  
      var link = document.getElementById('myStyles');  
      link.href = 'new-styles.css'; // 更改链接到新的CSS文件  
    }  
  </script>  
</body>  
</html>
// @import 不可直接修改,只能借助style标签额外处理
var style = document.createElement('style');  
style.type = 'text/css';  
style.innerHTML = '@import url("new-styles.css");';  
document.getElementsByTagName('head')[0].appendChild(style);

@import 在原生 CSS 和预处理器中的使用确实在某些场景下可能存在性能问题,主要是因为它可能导致额外的 HTTP 请求或影响编译性能。但在 Vue 项目中,特别是在单文件组件(.vue 文件)中使用 <style> 标签内的 @import 语句来引入 CSS 文件,情况有所不同。

在 Vue 的单文件组件中,当您使用 <style> 标签内的 @import 语句时,构建工具(如 Webpack)会处理这些导入,并在最终的构建输出中将 CSS 内容嵌入到主 JS bundle 或作为单独的 CSS 文件提取出来。这意味着在运行时,不会有额外的 HTTP 请求来加载这些样式,因此不会受到传统 @import 在原生 CSS 中的性能问题影响。

最后更新: 4/19/2024, 9:01:46 AM