前端深刻之css篇|link和@import到底有什麼區別?

原文: 前端深刻之css篇|link和@import到底有什麼區別?

寫在前面

在真正的前端開發中,咱們不多去寫行內樣式和內嵌樣式,一般都是去引用外部樣式。javascript

而在咱們學習之初的外部樣式表都是用link引入的,可是當後來咱們學習的逐漸深刻,發現@import也能夠引入樣式。那麼一樣是引入外部樣式,這二者有什麼區別呢,下面請跟隨我來詳細瞭解一下link@import的區別吧!css

區別

複製代碼
<!DOCTYPE html>
<html lang="en">
    <head>
        <link rel="stylesheet" rev="stylesheet" href="myCss.css" type="text/css" > 
        <style type="text/css" >   
            @import url("./myCss.css");   
        </style> 
    </head>
</html>
複製代碼

 

這就是兩種引用方式的常見用法,能夠很清晰的看出
  • 一、從屬關係:link是html的標籤,不只能夠加載 CSS 文件,還能夠定義 RSS、rel 鏈接屬性等;而@import是css的語法,只有導入樣式表的做用。
  • 二、加載順序:頁面被加載時,link會和html同時被加載而;@import引入的 CSS 將在頁面加載完畢後被加載。
  • 三、兼容性:@import是 CSS2.1 纔有的語法,因此只能在 IE5以上 才能識別;而link是 HTML 標籤,因此不存在兼容性問題。
  • 四、DOM:javascript只能控制dom去改變link標籤引入的樣式,而@import的樣式不是dom能夠控制的。
  • 五、link方式的樣式權重高於@import的權重。(若是對權重不是十分了解,能夠看我以前的文章)

@import最優寫法

@import 'style.css' //Windows IE4/ NS4, Mac OS X IE5, Macintosh IE4/IE5/NS4不識別
@import "style.css" //Windows IE4/ NS4, Macintosh IE4/NS4不識別
@import url(style.css) //Windows NS4, Macintosh NS4不識別
@import url('style.css') //Windows NS4, Mac OS X IE5, Macintosh IE4/IE5/NS4不識別
@import url("style.css") //Windows NS4, Macintosh NS4不識別

 

由上分析知道,@import url(style.css) 和@import url("style.css")是最優的選擇,兼容的瀏覽器最多。從字節優化的角度來看@import url(style.css)最值得推薦。html

結論

@import是依賴css的,存在必定的兼容問題,而且根據瀏覽器渲染機制來講,他在dom樹渲染完成後纔會渲染,而且不能被js動態修改。前端

相比之下link兼容性較好,且dom元素的樣式能夠被js動態修改,又由於link的權重高於@import,因此 @import適用於引入公共基礎樣式或第三方樣式,link適用於本身寫的且須要動態修改的樣式java

通過實際的運用,相信在你真正書寫和調整樣式時必定能夠如魚得水。瀏覽器

結語

以上就是本文章的所有內容了,若是有不正確的地方歡迎指正。dom

感謝您的閱讀,若是感受有用不妨點贊/轉發。學習

前端深刻系列是一個踩坑系列,是由我本人對工做和學習中所遇到的問題和踩過的坑的一個探索與總結,在此記錄分享出去,同時也是對自我技能的一個反思和追問。優化

前端路漫,踩坑不斷。this

前端深刻系列持續更新中……

以上2019-10-08。

相關文章
相關標籤/搜索