如何寫出高效率的HTML_html/css_WEB-ITnose
來源:懂視網(wǎng)
責編:小采
時間:2020-11-27 16:04:14
如何寫出高效率的HTML_html/css_WEB-ITnose
如何寫出高效率的HTML_html/css_WEB-ITnose:如何寫出高效率的HTML 個人翻譯,歡迎轉(zhuǎn)載! 英文原文:https://samdutton.wordpress.com/2015/04/02/high-performance-html/ 第一次翻譯國外的博文,有什么意見和建議歡迎提出! 我們該如何提升網(wǎng)頁的性能 看到這個問題時,大多數(shù)開發(fā)者會想到圖片優(yōu)化、
導讀如何寫出高效率的HTML_html/css_WEB-ITnose:如何寫出高效率的HTML 個人翻譯,歡迎轉(zhuǎn)載! 英文原文:https://samdutton.wordpress.com/2015/04/02/high-performance-html/ 第一次翻譯國外的博文,有什么意見和建議歡迎提出! 我們該如何提升網(wǎng)頁的性能 看到這個問題時,大多數(shù)開發(fā)者會想到圖片優(yōu)化、
Web三基友
HTML的含義應該不多解釋了,請自行百度百科。
首先要說的是,HTML和CSS兩兄弟雖然彼此充滿基情,但是也不能把關系搞得太復雜,樣式由CSS來控制就夠了,不要用HTML元素來強行獲取想要的樣式,比如不要僅僅為了使文字變大而使用
、、這些標題標簽,也不要僅僅為了縮進而使用標簽。
Chrome, Firefox, Internet Explorer 以及 Opera 都有各自的默認樣式表,HTML元素默認的顯示方式都是由這些默認樣式表來決定的。比如,Chrome中默認的樣式是32px bold,字體是Times.
基友三原則:
HTML用于建立結構,CSS用于渲染樣式,JavaScript用于控制行為; 首先完成HTML的設計,然后根據(jù)樣式需求來設計CSS,最后在確實需要的情況下才設計JavaScript; 將CSS和JavaScript文件進行歸檔,與HTML文件分開(這樣不僅有助于頁面緩存,而且可以使后期Debug更容易),這之后再把CSS和JavaScript鏈接到HTML中,可以根據(jù)需要來對CSS和JavaScript代碼進行壓縮加密。 結構的搭建
HTML在結構上搭建上需要注意這些:
采用HTML5標準時開頭應該加上,像這樣:
Recipes: pesto Pesto
Pesto is good!
應在head標簽中引入CSS文件,這樣瀏覽器就可以在輸出HTML之前獲取CSS信息:
在
標簽的末尾引入JavaScript文件,這樣可以在頁面顯示之后再編譯JavaScript文件,以加快頁面讀取速度,同時有助于JavaScript對頁面中的元素進行操作,像這樣: javascriptinit(); var fooButton = document.querySelector('#foo');fooButton.onclick = handleFoo();
代碼校驗
雖然現(xiàn)在瀏覽器的容錯力越來越高,但這不能成為代碼粗制濫造的借口。不管什么時候,正確的HTML代碼都更易于debug、體積更小、運行更快、渲染時消耗資源更少,而錯誤的HTML代碼只會使頁面的最終設計難以實現(xiàn)想要的效果。特別是在使用模板來開發(fā)時,正確有效的HTML就更顯得尤為重要,也許一個正常運行的模塊會在其他環(huán)境中出現(xiàn)可怕的異常。
如何才能提高HTML的正確性呢?可以有這些方式:
在項目中加入校驗過程:可以在代碼編輯器中使用HTMLHint、SublimeLinter這類代碼校驗插件,也可以在build的時候使用HTMLHint with Grunt這類校驗工具,還可以通過W3C HTML validator等網(wǎng)站來在線檢測代碼; 盡量采用HTML5標準; 確保正確的HTML層級:嵌套元素時確保元素首尾完整,在一個有大量內(nèi)容的元素的結束標簽后應添加注釋,這樣有助于后期debug,特別是在使用模板的時候,如下所示:
在所有不能自動結束的元素末尾添加結束標簽;
比如這個例子,這樣寫也可以可以正常運行: Pesto is good to eat...
...and pesto is easy to make.
不過還是下面這樣比較不容易出錯: Pesto is good to eat...
...and pesto is easy to make.
結束標簽不是必須的,所以有些人認為可以不寫,這可以接受,但是和標簽一定要加:
另一方面,要去掉冗余代碼:
像和這一類元素可以不加結束標簽; 布爾型的屬性可以不賦值,只要該屬性出現(xiàn),值就為true;
下面這樣是可以運行的(沒有加autoplay和controls): 這樣就不能運行,因為這兩個屬性值必須是true: 這樣改一下就可以運行了: 這樣寫會更易讀: CSS和 JavaScript鏈接不需要type屬性,他們就是他們; 外部鏈接可以省略協(xié)議部分(如http,ftp),這樣可以避免內(nèi)容太長而引起問題。像這樣寫是可以的:
良好的代碼排版
保持一致的代碼排版可以使HTML代碼更易于理解、優(yōu)化和debug,要做到良好的代碼排版應注意以下這幾點:
在項目中保持統(tǒng)一的HTML代碼風格; 使用代碼編輯器來幫助你自動排版,比如在Sublime Text中可以使用自帶的Reindent,也可以找一些自動排版插件來幫助你。同樣也可以使用一些在線工具比如CSS Beautifier和JS Beautifier; 在HTML中用縮進來分層更易于閱讀,如果代碼編輯器沒有自動縮進功能的話可以自行修改相應的設置。當你發(fā)現(xiàn)你的HTML層級過深的時候,那就表示你需要重構一下你的HTML了; 縮進可以通過空格或者Tab來實現(xiàn),但一定不要兩者同時使用; 用更直接易讀的方式寫HTML代碼,比如這句話,就可以很明顯的看出這是個標題:
這樣寫的話就更像是一個鏈接:
元素要按常規(guī)放置,比如footer元素最好是放在HTML頁面的底部,雖然理論上把它放在任何地方都可以正常運行; 統(tǒng)一所有引號的使用規(guī)則,不要這里用雙引號,那里又單引號; 使用小寫字母來寫標簽和屬性,大寫字母很不易讀,像這樣:
混合式的寫法簡直就是反人類:
語義化設計
語義化的意思是從名稱一眼就能看出其內(nèi)容和作用是什么,HTML的標簽就是通過使用淺顯易懂的元素名和屬性名來實現(xiàn)語義化的。HTML5又引進了一些新的語義化元素,比如,
標題使用 (, …),列表使用或者;
內(nèi)容中的標題應該從開始;
在適當?shù)牡胤绞褂肏TML5的新元素,比如 正文中的文本內(nèi)容要用標簽,內(nèi)容的結構化可以使用HTML5的新元素(或者),不要顛倒;
修改文字樣式時,和要比和更好些,因為前者語義更加明顯; 不要把文字和元素混合在一起,這樣容易導致布局出錯,比如這樣:
這樣寫會更好些:
布局
首先再次強調(diào)一遍:
樣式由CSS來控制就夠了,不要用HTML元素來強行獲取想要的樣式。
布局需要注意的問題有這些:
元素用來放文字,而不是用來布局。在瀏覽器自身的樣式表中默認
有margin和其他樣式;
想實現(xiàn)換行可以使用元素或者CSS的display屬性,盡量避免使用
來換行。文字內(nèi)容中的換行可以用
,但通常也很少這樣用,有時在詩文中會把
作為標點來使用; 避免使用
,因為這個元素對語義和結構都沒有太大幫助,反而
極差的靈活性對布局和顯示都有很大的影響; 不要濫用,W3C對的描述是這樣的:當沒有其他元素可用時才能使用。如果想讓和這類元素能夠在結尾換行,可以在樣式中添加display: block,這樣要比把它們放進或者使用
來換行要好得多; 必須知道哪些是塊級元素,這樣就可以避免把塊級元素放到里面,比如列表就不需要放到div里面; 是用來放表格數(shù)據(jù)的,不是用來布局的; Flex box現(xiàn)在越來越流行,學一學沒有壞處; 盒模型一定要掌握,必須知道什么時候該用padding,什么時候該用margin; 使用margin的規(guī)則:通常情況下,margin都是添加在元素的bottom和right,有時也可以是top或者left。無論如何,盡量避免同時在bottom和top,或者right和left添加margin??梢杂胠ast-of-type選擇器來去掉最后一個子元素的margin。 CSS方面
這篇文章雖然是講HTML的,但也有些CSS的注意事項想說一說:
不要將多句CSS寫在同一行; 不要重復使用同一個id; 有時候給父元素添加class要比給子元素添加更簡潔易維護(class的命名方式可以采用BEM規(guī)則),像這樣:
o< -->
Basil Pine nuts Garlic Basil Pine nuts Garlic 易用性
要多為用戶考慮,不同的設備條件、使用環(huán)境以及輸入法等都會給你的HTML帶來不同的體驗:
盡可能的使用語義化元素; 要準備好備用內(nèi)容:比如給 鏈接要加title屬性,title必須要有意義,不要只是鏈接的復述; 在元素中要加入type和placeholder; 設計時要盡量加入ARIA (Accessible Rich Internet Application)。 其他建議
符號的轉(zhuǎn)義,比如<和&符號,像這樣:HTML & JavaScript; 有些符號不需要轉(zhuǎn)義,比如破折號(如:4-5 weeks)還有貨幣符號(如:¢,?); 在代碼中作用不明顯的地方適當?shù)奶砑幼⑨專ㄗ⑨屧谥貥嫊r的作用性舉足輕重,優(yōu)秀的HTML代碼,無論多么復雜都可以很好的閱讀和理解); 有時全大寫的標題會起到吸引注意力的作用,但沒必要在HTML中真的輸入大寫的文字,可以在CSS中通過修改text-transform和font-variant來完成。這樣做還有個好處,就是當用戶復制這段文字時,他們可能不想要全大寫的,像下面的
,當用戶復制文字內(nèi)容時,得到的是大小寫混合的文字:
HTML W3C Web Accessibility Initiative ARIA guidance
CSS
h4 { font-variant: small-caps;}
測試
重中之重,就是一定要做測試!
在工作流程、調(diào)試工具和部署過程中都可以加入HTML測試。一定要測試你的頁面在不同條件的設備,不同大小的屏幕以及不同網(wǎng)速的環(huán)境下的讀取情況。還要使用純文字瀏覽器(如: Lynx)或者屏幕閱讀器(如:ChromeVox)來測試頁面在特殊環(huán)境下的交互性。可以使用Chrome Dev Tools device mode這種仿真器來監(jiān)視頁面的變化。工作流程中可以加入Page Speed, Web Page Test等工具來做自動化測試。
聲明:本網(wǎng)頁內(nèi)容旨在傳播知識,若有侵權等問題請及時與本網(wǎng)聯(lián)系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com
如何寫出高效率的HTML_html/css_WEB-ITnose
如何寫出高效率的HTML_html/css_WEB-ITnose:如何寫出高效率的HTML 個人翻譯,歡迎轉(zhuǎn)載! 英文原文:https://samdutton.wordpress.com/2015/04/02/high-performance-html/ 第一次翻譯國外的博文,有什么意見和建議歡迎提出! 我們該如何提升網(wǎng)頁的性能 看到這個問題時,大多數(shù)開發(fā)者會想到圖片優(yōu)化、
Top