前端規範,HTML的<head>標籤內<meta>、<title>等標籤順序是怎樣的?
首先,看了一下幾個公司的規範:
百度efe的:ecomfe/spec · GitHub騰訊 AlloyTeam:Code Guide by @AlloyTeamGithub:Styleguide · GitHub發現都沒有HTML中&標籤里其他標籤如:&、&、&、& 然後,看了BAT各大網站,發現順序也是各異。知乎抽風,上傳暫時不了圖片,無法品鑒了。就想問一下哪些前端團隊規範了這塊東西?是根據什麼規定順序的?
沒有特定規定。
不過我至少有一條建議:確保&放在最前,讓瀏覽器儘早獲得字元編碼信息,如果要瀏覽器據此決定轉碼可以早點轉。瀉藥,剛注意到。
其實都答的七七八八了啊。基本上就這幾個標籤么
&、&、&當然,約往後位置約不重要。比如 4 5 調換也沒啥大事兒。
基本規律是:- meta 最好寫在第一個,特別是 meta chaset 設定必須寫第一個,它們是元數據,能讓數據獲取方得知此頁面的元數據。最先得知頁面編碼,進而獲取之後meta(如果有)內的作者、關鍵字等數據(因為這些內容可能是非ASCII字元)時,可以用指定編碼方式獲取。獲取方得到全部元數據後可以自行判斷是否繼續獲取其後內容。
- title 緊隨 meta 之後是因為可能獲取方需要知道頁面標題信息,並且在最先獲取 chaset 信息後知道此標題的編碼方式。如果獲取方是頁面瀏覽器,那麼它可以最先用正確的頁面編碼方式顯示標題給用戶。
- link、style 緊隨 meta,其實還是主要為 link 大部分都是 CSS 樣式文件考慮。由於外聯樣式可以並行下載,不會阻塞後續處理工作,style 也能讓瀏覽器儘快得知頁面排版布局信息。
- base 一般情況下用的不多,只要不放第一個基本沒啥關係。
- script 放在最後,是基於script 不關是下載還是執行都會阻塞頁面考慮,讓它盡量偏後。(當然,這在絕大部分現代瀏覽器中不是事兒了,它會盡量"拖後"外聯腳本下載時機)現在大多數情況沒有特殊需求 script 都不放在 head 里了,而是放在 body 最後一個子節點上(也有給扔 html body 之外的,瀏覽器容錯還是能給它修正回 body 最後節點上)。
這道題是屬於明顯沒有唯一答案的,跟著自己的需求以及客戶端變化來就好了。
之前寫過的一篇博文中的一段:關於頁面head- 首先要指定編碼,當然服務端也要指定編碼,保持一致。
- 然後是對於可以切換內核的瀏覽器提示優先切換內核,諸如國內佔比比較大的360瀏覽器6.0版本之後。然後是IE相關的瀏覽器使用其支持的最高版本的文檔模式。
- 接著考慮可以使用viewport來支持不同尺寸和解析度的設備。
- 關於頁面相關說明,諸如作者可以在適當位置添加。
- 蜘蛛是否抓取索引的標誌可以考慮添加。
- 接著是dns-prefetch緩存assets相關的域名。
- 如果你確定頁面多數內容是彈出新窗口,那麼可以指定頁面的鏈接打開模式。
- 對於不支持或者禁用腳本的網站,可以使用轉向帶參數,請求無腳本時候的網站內容。
- 頁面標題是頁面必不可少的,同時也是蜘蛛索引的重要指標,可以考慮程序動態輸出。
- 引入主要的樣式文件,同時根據設備類型來引入設備相關的樣式文件,以支持平板以及印表機。
- 前端腳本通過後端變數設置版本,以利於文檔和靜態資源的更新。
- 關於前置全局腳本,需要做到:
- 如果頁面不作為iframe內容使用,要防止惡意被嵌套,發生誤導或者釣魚相關的事情。
- 如果使用類名作為鉤子來告知頁面程序是否支持調用,可以在此進一步處理。
- 對於舊版本的IE,這裡特指版本小於等於IE8的老舊瀏覽器,如果要做優雅降級,那麼需要再此做前置程序處理。
- 如果頁面程序存在依賴數據來渲染的情況,前置的數據也推薦放置於此。
- 如果頁面依賴腳本載入器,可以在此添加載入器腳本。
- 對於舊版本的瀏覽器可以使用IE條件注釋配合shim腳本,以及respond來提供一些額外的功能支持,以減少寫代碼時的額外處理,以及保持一致性訪問。
- 頁面關鍵詞和相關說明也是至關重要的,如果你做SEO的話。
- 如果你還要提供RSS以及PING,請也在此一併提供。
- 對於搜索引擎提供shortlink,以合併改版rewrite後的狀況。
- 如果頁面不作為iframe內容使用,要防止惡意被嵌套,發生誤導或者釣魚相關的事情。
最近也有留意這個問題,在 Google 的開發文檔中有提到 & 需要遵循以下三點:
- 在 &標籤內;
- 在任何內容的前面,也就是 & 標籤內的第一個;
- 包括 DOCTYPE 和 空格, & 聲明需要在前 512 位元組內;
&
&
&
&
&
&
&
...
&
&
Important: The & tag must appear in the document before any content that could be controlled by an attacker, such as a &
tag containing a dynamically generated title for the document.
定義和用法
&
label 元素不會向用戶呈現任何特殊效果。不過,它為滑鼠用戶改進了可用性。如果您在 label 元素內點擊文本,就會觸發此控制項。就是說,當用戶選擇該標籤時,瀏覽器就會自動將焦點轉到和標籤相關的表單控制項上。
&
實例
帶有兩個輸入欄位和相關標記的簡單 HTML 表單:
?
1234567&
瀏覽器支持所有主流瀏覽器都支持 &
Safari 2 或更早的版本不支持 &
HTML 與 XHTML 之間的差異NONE
提示和注釋:
注釋:"for" 屬性可把 label 綁定到另外一個元素。請把 "for" 屬性的值設置為相關元素的 id 屬性的值。
可選的屬性DTD 指示此屬性允許在哪種 DTD 中使用。S=Strict, T=Transitional, F=Frameset.
屬性值描述DTDforelement_id規定 label 與哪個表單元素綁定。STF標準屬性id, class, title, style, dir, lang, xml:lang
事件屬性
accesskey, onfocus, onblur, onclick, ondblclick, onmousedown, onmouseup,onmouseover
其實這些沒有嚴格的規範啦,一般&
推薦閱讀:
※css3/css4 這種命名是否錯誤?若是,正確的又是怎樣,又該如何糾正?
※前端工程師如何接私活呢?有哪些途徑?
※為什麼 input 元素能用 width 屬性?
※Web開發中的"路由"是什麼意思?
※前端開發瓶頸?