之前介紹了如何在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
效果圖:
由圖可見,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>
效果圖:
顯而易見,div最終呈現黃色,黃色是內聯樣式,它的優先權高於導入樣式。
總結:以上講述了CSS中的link和import的區別,總的來說,最好不要使用improt導入式,如果import加載的樣式比較大,容易出現加載延遲,甚至有閃屏的情況。就目前來看,小型的網站還是推薦使用link導入,當然如果將來我們需要把CSS進行模組化管理,那會用到@import,這個還需要看情況的。
以上是在html中引入CSS檔案時,link和@import有什麼差別?的詳細內容。更多資訊請關注PHP中文網其他相關文章!