首頁  >  文章  >  web前端  >  在html中引入CSS檔案時,link和@import有什麼差別?

在html中引入CSS檔案時,link和@import有什麼差別?

yulia
yulia原創
2018-09-17 14:02:173477瀏覽

之前介紹了如何在HTML中引入CSS檔案,將CSS匯入HTML的方式有四種,分別是行內式,嵌入式,外部樣式。外部樣式又分為import導入式,link連結式。同樣是外部樣式,那link和@import的差別在哪裡? 想知道的小夥伴繼續往下看吧。

一、引入方式的差異

link連結式:

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

import導入式:

<style type="text/css">   
    @import url("css/green.css");
</style>

二、瀏覽器的差異

link不會出現相容性問題,@import 則需要在IE5以上才實作。
在頁面載入過程中,如果是link匯入的 CSS 樣式文件,CSS樣式會和內容同時載入出來。若是@import引入的 CSS文件,樣式會在頁面載入完成後才會載入。 

三、從屬關係的區別

@import是 CSS 提供的語法規則,只有導入樣式表的功能。而link是HTML提供的標籤,不僅可以載入 CSS 文件,還可以定義 RSS、rel 連接屬性等。 

四、DOM控制樣式時的差異

需要javascript控制DOM改變樣式的時候,只能使用link標籤,因為@import不是DOM可以控制的。

五、CSS優先權的區別

同等權重CSS樣式的優先權由高到低的排序是:行內樣式、內聯樣式、外聯樣式、導入樣式。如果外聯樣式和匯入樣式都有一個div{color:XX},最終的div樣式是外聯樣式中所定義div樣式 。

舉例:分別給div行內樣式、內聯樣式、外聯樣式、匯入樣式,看看他最後呈現什麼效果。



 
  
  
  
  <link rel="stylesheet" type="text/css" href="css/green.css"/>
 
 
  
have a nice day

效果圖:

在html中引入CSS檔案時,link和@import有什麼差別?

由圖可見,div最終呈現的是紫色,而紫色是行內樣式設定的,它的優先順序最高。接下來繼續看,如果是內聯樣式和導入樣式,它又會是什麼效果呢?

<!DOCTYPE html>
<html>
 <head>
  <meta charset="UTF-8">
  <title></title>
  <style type="text/css"> 
  div{background: yellow;}  
   @import url("css/red.css");   
  </style>
 </head>
 <body>
  <div style="width: 150px;height: 150px;">have a nice day </div>
 </body>
</html>

效果圖:

在html中引入CSS檔案時,link和@import有什麼差別?

顯而易見,div最終呈現黃色,黃色是內聯樣式,它的優先權高於導入樣式。

總結:以上講述了CSS中的link和import的區別,總的來說,最好不要使用improt導入式,如果import加載的樣式比較大,容易出現加載延遲,甚至有閃屏的情況。就目前來看,小型的網站還是推薦使用link導入,當然如果將來我們需要把CSS進行模組化管理,那會用到@import,這個還需要看情況的。

以上是在html中引入CSS檔案時,link和@import有什麼差別?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn