Web開發者不可不知的16條原則

HTML已經走過了近20的發展歷程。從HTML4到XHTML,再到最近十分火熱的HTML5,它幾乎見證了整個互聯網的發展。但是,即便到現在,有很多基礎的概念和原則依然需要開發者高度注意。下面,小編向大家介紹這些應該遵循的開發原則。

1、善用DIV來布局

當開發一個Web頁面時,要考慮第一件事就是區分頁面重點。將這些內容用DIV標簽包含起來,頁面的代碼會呈現出整潔、縮進良好的風格。

<div id="header"></div> ?

<div id="body-container"> ?

????????<div id="content"> <!-- Content -- > </div> ???

????????<div id="right-side-bar"> <!-- Right Side Bar Content Area -- ></div> ?

</div> ???

<div id="footer"></div>

2、將HTML標簽和css樣式表分割開來

好的頁面應該將HTML標簽和css樣式表分割開來。這是每一個Web開發者在首次接觸Web開發時就應該知道的一條原則。然而,直到今天,仍然有很多開發者沒有嚴格遵循這一原則。

不要在HTML標簽里內嵌樣式表代碼。開發者應該養成習慣,單獨建立文件,用以存放css樣式表。而這也將方便其他開發者在修改你的代碼時,能迅速完成工作。

<p style="color: #CCC; font-size:16px; font-family: arial">

An example to illustrate inline style in html</p>

3、優化CSS代碼

現如今,為網站添加多個CSS文件的做法已經很普遍。但是,當網站包含的CSS文件過多時,會降低網站的響應速度。解決辦法是:精簡代碼并對多個CSS文件進行優化,將其合并成一個文件。這個辦法能顯著提升網站的加載速度。此外,有很多工具可以用來優化CSS文件,例如CSS Optimizer、Clean CSS等。

對于CSS這塊,我們還推薦過你應該知道的9個優秀的CSS框架,可以了解一下CSS框架的種類和相關用法。

4、優化Javascript文件,并將其放到頁面底部

和CSS一樣,為頁面添加多個Javascript文件也是很普遍的做法。但這同樣會降低網站的響應速度。為此,開發者應該精簡、優化這些Javascript文件。

但有一點和CSS不同,瀏覽器通常不支持并行加載。這也就是說,當瀏覽器加載Javascript文件時,將不再同時加載其它內容。而這就導致了網頁的加載速度好像變慢了。

一個好的解決辦法是:將Javascript文件的加載順序放在最后。為了實現這一目標,開發者可以把Javascript代碼放在HTML文檔的底部,而最好的位置是放在接近</body>標簽的地方。

5、善用標題元素

<h1> 到 <h6>這些元素用來突出頁面的重點內容。這有助于用戶更加關注頁面的重點部分。對于博客,我(指本文作者)推薦使用<h1>標簽來突出博客標題。因為,博客標題幾乎是頁面中最重要的部分。

<h1>This is the topmost heading</h1>

<h2>This is a sub-heading underneath the topmost heading.</h2>

<h3>This is a sub-heading underneath the h2 heading.</h3>

6、在合適的地方使用合適的HTML標簽

HTML標簽是構造規范內容結構的關鍵。例如,<em>標簽用來強調重點內容。<p>標簽適用于突出文章段落。如果想要在段落間加空行,就不要使用<br />標簽。

<em>emphasized text</em>

<strong>strongly emphasized text</strong>

對于一組相關的元素,建議使用<ul>、<ol>或 <dl>標簽。但是,不要錯誤的使用<blockquote>標簽,因為它原本是用來定義塊應用的。

7、避免濫用<div>標簽

并不是所有塊元素都應該用<div>標簽來創建。例如,可以在內聯元素的屬性里添加display:block,將其以塊元素的方式顯示。

8、使用列表創建導航

使用<ul>列表標簽,再配以相應的css樣式,可以創建美觀的導航菜單。

9、別忘了封閉標簽

現在,每當我回憶起在大學里學到的關于Web開發的第一堂課時,教授提到的HTML結構的重要性總是浮現在我的腦海。根據W3C標準,標簽應該被封閉。那是因為,在一些瀏覽器下,如果沒有按照標準來將標簽封閉,會出現顯示不正常的問題。而這一情況在IE6、7和8里尤為明顯。

10、標簽小寫語法

標簽采用小寫語法是一項行業標準。雖然大寫語法并不影響頁面的顯示效果,但是,代碼的可讀性很差。下面這段代碼可讀性就非常差:

<DIV>

<IMG SRC="images/demo_image.jpg" alt="demo image"/>

<A HREF="#" TITLE="click here">Click Here</A>

<P>some sample text</P>

</DIV>

11、為圖片標簽添加alt屬性

在<img>標簽里,alt屬性通常非常有用。因為搜索引擎通常無法直接抓取圖片文件。但是,如果開發者在alt屬性里添加了圖片的描述內容,將會方便搜索引擎的抓取。

<!-- has an alt attribute, which will validate, but alt value is meaningless -- >

<img id="logo" src="images/bgr_logo.png" alt="brg_logo.png" />

?

<!-- The correct way -- >

<img id="logo" src="images/bgr_logo.png" alt="Anson Cheung - Web Development" />

12、在表格里使用<label> 和 <fieldset>

為了提高代碼質量,并讓用戶容易理解表格內容,我們應該用<label> 和 <fieldset>標簽創建表格元素。

<fieldset>

????<legend>Personal Particular</legend>

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

????<label for="email">E-mail</label><input type="text" id="email" name="email" />

????<label for="subject">Subject</label><input type="text" id="subject" name="subject" />

????<label for="message" >Message Body</label>

<textarea rows="10" cols="20" id="message" name="message" ></textarea>

</fieldset>

13、將瀏覽器兼容代碼標明信息并相互分開

對一名Web開發者來說,跨瀏覽器兼容是一個被重點關注的問題。通常,開發者會針對不同的瀏覽器來編碼,也即是CSS hack。但是,如果開發者在編碼時,能注明代碼為哪一個版本的瀏覽器所寫,會為以后的維護工作帶來極大方便。下面就是一個很好的示例:

<!--[if IE 7]>

<link rel="stylesheet" href="css/ie-7.css" media="all">

<![endif]-->

<!--[if IE 6]>

<link rel="stylesheet" href="css/ie-6.css" media="all">

<script type="text/javascript" src="js/DD_belatedPNG_0.0.8a-min.js"></script>

<script type="text/javascript">

????????DD_belatedPNG.fix('#logo');

</script>

<![endif]-->

14、避免過度注釋

作為一名開發者,在代碼中添加注釋是一個好習慣,能方便理解并易于維護。這在其它編程語言如PHP、JAVA 和 C#里很普遍。但是,HTML/XHTML是文本標記語言,非常容易理解。因此,無需為每行代碼都添加注釋。

15、測試代碼

推薦開發者使用W3C文本標記驗證服務來測試代碼。它是一個高效的測試工具,能幫助你發現頁面中存在的錯誤。

16、最后總結

最后還是推薦一下程序人生。里面可以學到很多web知識和建站方法,如果你因學習太累,里面還有助大家放松的搞笑文字,接下來就是你動的時候了。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/253038.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/253038.shtml
英文地址,請注明出處:http://en.pswp.cn/news/253038.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

MIPI DSI協議介紹

原文地址&#xff1a;http://blog.csdn .NET/qq160816/article/details/19555957 一、MIPI MIPI&#xff08;移動行業處理器接口&#xff09;是Mobile Industry Processor Interface的縮寫。MIPI&#xff08;移動行業處理器接口&#xff09;是MIPI聯盟發起的為移動應用處理器制…

NSArray、NSDictionary、NSString存儲、刪改、遍歷

NSString 創建一個NSString實例&#xff1a;NSString *str “this is string”;//字面量語法 常用API&#xff1a; stringWithFormat //創建動態字符串 -&#xff08;NSUInteger&#xff09;length //獲取字符的數量 -isEqualToString: //判斷兩個字符串是否相等 -uppercaseSt…

2018.11.14成立我的博客

2018.11.14成立我的博客轉載于:https://www.cnblogs.com/zengxx/p/9957509.html

130242014018-鄭志良-第2次實驗

一、實驗目的 1&#xff0e;熟悉體系結構的風格的概念 2&#xff0e;理解和應用管道過濾器型的風格。 3、理解解釋器的原理 4、理解編譯器模型 二、實驗環境 硬件&#xff1a; 軟件&#xff1a;Python或任何一種自己喜歡的語言 三、實驗內容 1、實現“四則運算”的簡易翻譯器。…

Hi3516A開發--掛載SD卡和U盤

一、SD卡 1、通過fdisk -l命令確認板子上的Linux系統是否識別SD卡 / # fdisk -l Disk /dev/mmcblk0: 63.8 GB, 63864569856 bytes 255 heads, 63 sectors/track, 7764 cylinders Units cylinders of 16065 * 512 8225280 bytes Device Boot Start …

【BZOJ 4170】 4170: 極光 (CDQ分治)

4170: 極光 Time Limit: 30 Sec Memory Limit: 512 MBSubmit: 121 Solved: 64Description "若是萬一琪露諾&#xff08;俗稱rhl&#xff09;進行攻擊&#xff0c;什么都好&#xff0c;冷靜地回答她的問題來吸引她。對方表現出興趣的話&#xff0c;那就慢慢地反問。在她考…

自動生成web服務器日志解析規則

2019獨角獸企業重金招聘Python工程師標準>>> 當前web服務器的多樣化使得訪問日志的數據清洗變得越來越復雜&#xff0c;企業需要投入專業的數據清洗人員編寫數據清洗規則&#xff08;解析規則或者解析正則&#xff09;&#xff0c;或者需要關心web服務器訪問日志的生…

mybatis一級緩存二級緩存

一級緩存 Mybatis對緩存提供支持&#xff0c;但是在沒有配置的默認情況下&#xff0c;它只開啟一級緩存&#xff0c;一級緩存只是相對于同一個SqlSession而言。所以在參數和SQL完全一樣的情況下&#xff0c;我們使用同一個SqlSession對象調用一個Mapper方法&#xff0c;往往只執…

CMOS Sensor的調試分享

目前&#xff0c;包括移動設備在內的很多多媒體設備上都使用了攝像頭&#xff0c;而且還在以很快的速度更新換代。目前使用的攝像頭分為兩種&#xff1a;CCD(Charge Couple Device電荷偶合器件)和 CMOS(Complementary Metal Oxide Semiconductor互補金屬氧化物半導體)。這兩種各…

利用反射修改final數據域

當final修飾一個數據域時&#xff0c;意義是聲明該數據域是最終的&#xff0c;不可修改的。常見的使用場景就是eclipse自動生成的serialVersionUID一般都是final的。 另外還可以構造線程安全&#xff08;thread safe&#xff09;的immutable類&#xff0c;比如String&#xff0…

mysql簡單創建數據庫權限(待修改備注)

CREATE DATABASE web DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;一、環境&#xff1a;CentOS 6.8mysql 5.6二、背景給外包的工作人員提供我司某臺服務器的 mysql 中某個數據庫的訪問權限。之所以要做限制&#xff0c;是防止他們對我司其他的數據庫非法進行操作。三、…

Centos 能ping通域名和公網ip但是網站不能夠打開,服務器拒絕了請求。打開80端口解決。...

博客搬遷&#xff0c;給你帶來的不便&#xff0c;敬請諒解&#xff01; http://www.suanliutudousi.com/2017/10/29/centos-%E8%83%BDping%E9%80%9A%E5%9F%9F%E5%90%8D%E5%92%8C%E5%85%AC%E7%BD%91ip%E4%BD%86%E6%98%AF%E7%BD%91%E7%AB%99%E4%B8%8D%E8%83%BD%E5%A4%9F%E6%89%93…

ISP 圖像傳感器camera原理

1、Color Filter Array — CFA 隨著數碼相機、手機的普及&#xff0c;CCD/CMOS 圖像傳感器近年來得到廣泛的關注和應用。 圖像傳感器一般都采用一定的模式來采集圖像數據&#xff0c;常用的有 BGR 模式和 CFA 模式。BGR 模式是一種可直接進行顯示和壓縮等處理的圖像數據模式&am…

51nod 1027 大數乘法

1027 大數乘法基準時間限制&#xff1a;1 秒 空間限制&#xff1a;131072 KB 分值: 0 難度&#xff1a;基礎題收藏關注給出2個大整數A,B&#xff0c;計算A*B的結果。 Input第1行&#xff1a;大數A 第2行&#xff1a;大數B (A,B的長度 < 1000&#xff0c;A,B > 0&#xff…

file mmap

do_set_pmd統計參數只會在這里設置&#xff1a; add_mm_counter(vma->vm_mm, MM_FILEPAGES, HPAGE_PMD_NR);但是這貌似都是處理大頁的情況哪&#xff0c;小頁呢&#xff1f; alloc_set_pte中有函數&#xff1a;inc_mm_couter_fast(vma->vm_mm, mm_couter_file(page)&…

Linux鏈接庫三(C跟C++之間動態庫的相互調用)

http://www.cppblog.com/wolf/articles/74928.html http://www.cppblog.com/wolf/articles/77828.html http://www.jb51.net/article/34990.htm C和C之間庫的互相調用 extern "C"的理解&#xff1a; 很多人認為"C"表示的C語言&#xff0c;實際并非如此&…

C#如何開發多語言支持的Winform程序

C# Winform項目多語言實現(支持簡/繁/英三種語言)有很多種方案實現多語言&#xff0c;我在這里介紹一種最簡單最容易理解的&#xff0c;作為教學材題應該從通俗易懂入手。在寫這篇文章之前&#xff0c;本來想用枚舉窗體對象成員的方式設置語言&#xff0c;但是找不到源代碼了&a…

Alpha 沖刺 (2/10)

Alpha 沖刺 &#xff08;2/10&#xff09; 隊名&#xff1a;第三視角 組長博客鏈接 本次作業鏈接 團隊部分 團隊燃盡圖 工作情況匯報 張揚&#xff08;組長&#xff09; 過去兩天完成了哪些任務&#xff1a; 文字/口頭描述&#xff1a; 1、學習qqbot庫&#xff1b; 2、實時保存…

Linux學習之第二課時--linux命令格式及命令概述

命令概述 Linux提供了大量的命令&#xff0c;利用它可以有效地完成大量的工作&#xff0c;如磁盤管理&#xff0c;文件存取&#xff0c;目錄操作&#xff0c;進程管理&#xff0c;文件權限設定等 Linux命令格式 Linux命令的組成部分&#xff1a;命令字 命令選項參數&#xff…

Linux C語言調用C++動態鏈接庫

Linux C語言調用C動態鏈接庫 標簽&#xff1a; C調用C庫 2014-03-10 22:56 3744人閱讀 評論(0) 收藏 舉報 分類&#xff1a; 【Linux應用開發】&#xff08;48&#xff09; 版權聲明&#xff1a;本文為博主原創文章&#xff0c;未經博主允許不得轉載。 如果你有一個c做的動態…