摘要:但是有的人可能會比較疑惑。特解釋如下個人覺得應該是設計了兩個方案。更多有趣的前端知識,可關注我的
最近在Twitter上看到這樣一個有趣的話題,為什么現在用的是 引入外部共享的樣式文件,而不使用 ?詳情請點擊https://twitter.com/csswizardry/status/1068154542192242688
我們都知道,內聯的JavaScript是在頁面的 標簽內添加,內聯的樣式是在 標簽內添加;而外部共享的JavaScript文件,則是通過 來引入,共享的樣式文件不是通過 的形式引入,而是通過 形式引入,這是為什么呢?
既然JavaScript代碼片段可以通過 這樣的共享方式引入,那么樣式文件就不可以通過類似的形式引入?w3c為什么要這樣設計,是不是因為歷史的局限性,或者是...
好了,不扯淡了。w3c這樣設計是因為JavaScript代碼片段的引入和樣式文件有本質的不同。
一個重要原因是,他們壓根沒有考慮過要實現 來引入當前文檔外部共享的樣式文件,他們的想法就是使用 來引入當前文檔外部的資源,如:父文檔,翻譯,或者層疊樣式表等。 元素規定了當前文檔和外部資源之間的關系,它常用來引入外部的樣式表,我們可以通過rel屬性設置為stylesheet來使用。通過的設計原理,我們知道它應該是可以引入scripts的,但是沒有定義與JavaScript相關的rel屬性值,奇怪的是在HTML 3.2 中,也只是定義了而沒有定義屬性src ,到了后來不知怎么的就添加這個屬性,現在我們通過 來引入外部共享的JavaScript文件,至于具體原因我想下面的內容可能會回答這個問題。
注:其中rel 屬性它用來表示引入的外部資源和當前文檔的關系,href 屬性表示引入的外部資源的url,media 屬性就是媒體查詢,我們可以定義它的值為支持媒體查詢的css代碼片段,也可以是像print, screen 這樣的名詞,當然還有其它一些優秀的特性,如:preload,prefetch等。詳情可參考MDN link。
Bruce Lawson的解釋可能會給你打開一些思路,他認為