你不知道的HTML優化技巧

Ba la la la ~ 讀者朋友們,你們好啊,又到了冷鋒時間,話不多說,發車!


在設計和開發過程中需要遵循以下原則:

1.結構分離:使用HTML 增加結構,而不是樣式內容;

2.保持整潔:為工作流添加代碼驗證工具;使用工具或樣式向導維護代碼結構和格式

3.學習新語言:獲取元素結構和語義標記。

4.確保可訪問: 使用ARIA 屬性和Fallback 屬性等

5.測試: 使網站在多種設備中能夠良好運行,可使用emulators和性能工具。

HTML、CSS 和JavaScript三者的關系

HTML 是用于調整頁面結構和內容的標記語言。HTML 不能用于修飾樣式內容,也不能在頭標簽中輸入文本內容,使代碼變得冗長和復雜,相反使用CSS 來修飾布局元素和外觀比較合適。HTML元素默認的外觀是由瀏覽器默認的樣式表定義的,如在Chrome中h1標簽元素會渲染成32px的Times 粗體。

三條通用設計規則:

使用HTML 來構造頁面結構,CSS修飾頁面呈現,JavaScript實現頁面功能。CSS ZenGarden 很好地展示了行為分離。

如果能用CSS或JavaScript實現就少用HTML代碼。

將CSS和JavaScript文件與HTML 分開存放。這可有助于緩存和調試。

文檔結構方面也可以做優化,如下:

使用HTML5 文檔類型,以下是空文件:

<!DOCTYPE html>
<html>

<head>
<title>Recipes: pesto</title>
</head>

<body>

  <h1>Pesto</h1>

  <p>Pesto is good!</p>

</body>
</html>

在文檔起始位置引用CSS文件,如下:

<head>
  <title>My pesto recipe</title>

  <link rel="stylesheet" href="/css/global.css">
  <link rel="stylesheet" href="css/local.css">

</head>

使用這兩種方法,瀏覽器會在解析HTML代碼之前將CSS信息準備好。因此有助于提升頁面加載性能。

在頁面底部body結束標簽之前輸入JavaScript代碼,這樣有助于提升頁面加載的速度,因為瀏覽器在解析JavaScript代碼之前將頁面加載完成,使用JavaScript會對頁面元素產生積極的影響。

<body>

  ...

  <script src="/js/global.js">
  <script src="js/local.js">

</body>

使用Defer和async屬性,腳本元素具有async 屬性無法保證會按順序執行。

可在JavaScript代碼中添加Handlers。千萬別加到HTML內聯代碼中,比如下面的代碼則容易導致錯誤且不易于維護:

index.html:

<head>

  ...

  <script src="js/local.js">

</head>

<body onload="init()">

  ...

  <button onclick="handleFoo()">Foo</button>

  ...

</body>

下面的寫法比較好:

index.html:

<head>

  ...

</head>

<body>

  ...

  <button id="foo">Foo</button>

  ...

  <script src="js/local.js">

</body>

js/local.js:

init();
var fooButton =
    document.querySelector('#foo');
fooButton.onclick = handleFoo();

驗證

優化網頁的一種方法就是瀏覽器可處理非法的HTML 代碼。合法的HTML代碼很容易調試,且占內存少,耗費資源少,易于解析和渲染運行起來更快。非法的HTML代碼讓實現響應式設計變得異常艱難。

當使用模板時,合法的HTML代碼顯得異常重要,經常會發生模板單獨運行良好,當與其他模塊集成時就報各種各樣的錯誤,因此一定要保證HTML代碼的質量,可采取以下措施:

在工作流中添加驗證功能:使用驗證插件如HTMLHint或SublineLinter幫助你檢測代碼錯誤。

使用HTML5文檔類型

確保HTML的層次結構易于維護,要避免元素嵌套處于左開狀態。

保證添加各元素的結束標簽。

刪除不必要的代碼 ;沒有必要為自關閉的元素添加結束標簽;Boolean 屬性不需要賦值,如果存在則為True;

<video src="foo.webm" autoplay="" controls=""/>
代碼格式

格式一致性使得HTML代碼易于閱讀,理解,優化,調試。

語義標記

語義指意義相關的事物,HTML 可從頁面內容中看出語義:元素和屬性的命名一定程度上表達了內容的角色和功能。HTML5 引入了新的語義元素,如<header>,<footer>及<nav>。

選擇合適的元素來編寫代碼可保證代碼的易讀性:

使用<h1>(<h2>,<h3>…)表示標題,<ul>或<ol>實現列表

注意使用<article> 標簽之前應添加<h1>標簽;

選擇合適的HTML5語義元素如<header>,<footer>,<nav>,<aside>;

使用<p>描述Body 文本,HTML5 語義元素可以形成內容,反之不成立。

使用<em>和<strong>標簽替代<i>和<b>標簽。

使用<label>元素,輸入類型,占位符及其他屬性來強制驗證。

將文本和元素混合,并作為另一元素的子元素,會導致布局錯誤,
例如:
<div>Name: <input type="text" id="name"></div>

換種寫法會更好

<div>
   <label for="name">Name:</label><input type="text" id="name">
</div>

布局

要提高HTML代碼的性能,要遵循HTML 代碼以實現功能和為目標,而不是樣式。

使用<p>元素修飾文本,而不是布局;默認<p>是自動提供邊緣,而且其他樣式也是瀏覽器默認提供的。

避免使用
分行,可以使用block元素或CSS顯示屬性來代替。

避免使用


來添加水平線,可使用CSS的border-bottom 來代替。

不到關鍵時刻不要使用div標簽。

盡量少用Tables來布局。

可以多使用Flex Box

使用CSS 來調整邊距等。

CSS

雖然本文講解的是如何優化HTML,下面介紹了一些使用css的基本技能:

避免內聯css

最多使用ID類 一次

當涉及多個元素時,可使用Class來實現。


以上為個人意見,如有雷同,純屬巧合,歡迎大家多提意見!Bey 了 個 Bey ~

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 227,572評論 6 531
  • 序言:濱河連續發生了三起死亡事件,死亡現場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發現死者居然都...
    沈念sama閱讀 98,071評論 3 414
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 175,409評論 0 373
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 62,569評論 1 307
  • 正文 為了忘掉前任,我火速辦了婚禮,結果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 71,360評論 6 404
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發上,一...
    開封第一講書人閱讀 54,895評論 1 321
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 42,979評論 3 440
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 42,123評論 0 286
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當地人在樹林里發現了一具尸體,經...
    沈念sama閱讀 48,643評論 1 333
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 40,559評論 3 354
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發現自己被綠了。 大學時的朋友給我發了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 42,742評論 1 369
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 38,250評論 5 356
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質發生泄漏。R本人自食惡果不足惜,卻給世界環境...
    茶點故事閱讀 43,981評論 3 346
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 34,363評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 35,622評論 1 280
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 51,354評論 3 390
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 47,707評論 2 370

推薦閱讀更多精彩內容

  • 問答題47 /72 常見瀏覽器兼容性問題與解決方案? 參考答案 (1)瀏覽器兼容問題一:不同瀏覽器的標簽默認的外補...
    _Yfling閱讀 13,774評論 1 92
  • 作者:葡萄城控件技術團隊原文地址:http://www.cnblogs.com/powertoolsteam/p/...
    IT程序獅閱讀 677評論 1 9
  • 在線閱讀 http://interview.poetries.top[http://interview.poetr...
    前端進階之旅閱讀 114,504評論 24 450
  • 南風”效應也稱“溫暖”效應,源于法國作家拉·封丹寫過的一則寓言: 北風和南風比威力,看誰能把行人身上的大衣脫掉。北...
    哈哈哈呵呵呵閱讀 515評論 0 2
  • 原創│西域武僧 我最早學會制作的綠茶,是信陽毛尖,毛尖茶品種的代表。那大約是二十年前的事情了,單位同事老家在信...
    武僧的簡書閱讀 481評論 0 6