重構html布局,HTML重構:戰術篇

上文書我們說到《HTML重構:戰略篇》,書接前言下面是戰術篇,我們通過路線圖來先有一個大體印象:

837805fc40b63c8f31bdc5fb7a3641ce.png

1、HTML規范化(Well-Formedness):語法正確

2、HTML Validity :語義正確

3、不僅僅是語義正確:HTML元素的用法回歸正途

4、正確還不夠:關注你的內容

5、哪有個完啊:關注網站可用性(Accessibility)

HTML規范化(Well-Formedness):語法正確

規范化(Well-Formedness)是XML中的概念,它指文檔嚴格遵守約束。規范化的HTML文檔結構是一個獨一無二的樹。HTML規范化是發揮XML工具強大功能的先決條件,可靠地DOM操作也為跨瀏覽器腳本的提供了一個很好的基礎。不規范的頁面在瀏覽器中可能表現千差萬別,因為瀏覽器對錯誤的理解和處理是不一樣的,而規范化的HTML讓瀏覽器行為可預測。好處當然還有很多,比如SEO,快速加載… ...

下面會有一些規范化的實踐指南,作者給出了做這些重構的動機和利弊,大家可以根據自己的情況來選擇。下面簡單列一下:

文檔轉為小寫Change Name to Lowercase

屬性賦值添加引號Quote Attribute Value

省略值不全Fill In Omitted Attribute Value

例如:

空標簽添加空屬性Replace Empty Tag with Empty-Element Tag

例如:


變成

添加結束標簽Add End-tag

刪除重疊Remove Overlap

例如:very important!

文檔編碼轉成UTF-8Convert Text to UTF-8

屬性值內字符轉義:" to "? ' to '

添加DOCTYPE聲明Introduce an XHTML DOCTYPE Declaration

TD/xhtml1-transitional.dtd">

實體添加結束符Terminate Each Entity Reference&amp之類的實體要不全; 即:&

使用標準實體名Replace Imaginary Entity References添加根元素Introduce a Root Element添加XHTML的名稱空間Introduce the XHTML Namespace

HTML Validity :語義正確

背景介紹:HTML驗證是通過與標準HTML規則進行比較的方式,分析HTML文檔、標記出錯誤和非標準代碼的處理過程。Web頁面使用HTML進行渲染,而HTML本身采用了HTML規范作為其規則和標準。通過驗證HTML代碼穿越多重瀏覽器標準!

通過驗證的文檔,能夠幫助瀏覽器反映創作者的意圖。通過驗證的站點會獲得下列優勢:頁面行為可預測,瀏覽器兼容問題,未來的瀏覽器上也可以運行,更容易維護,等等…

W3C在線驗證地址:http://jigsaw.w3.org/css-validator/

通過驗證并不是強制要求的,一個規范化但是沒有通過驗證的文檔照樣可以使用XML工具。如果你有特殊的應用比如MathXML,也可以忽略掉通過HTML驗證。下面簡單列出一些要通過驗證要做的工作:

清除非法標簽Remove All Nonexistent Tags

添加圖像說明Add an alt Attribute

嵌入標簽換成對象標簽Replace embed with object

添加嚴格的文檔類型聲明Introduce a Strict DOCTYPE Declaration

Replace center with CSS

Replace font with CSS

Replace i with em or CSS

Replace b with strong or CSS

Replace the color Attribute with CSS

Convert img Attributes to CSS

Replace applet with object

Replace Presentational Elements with CSS

Nest Inline Elements inside Block Elements

不僅僅是語義正確:HTML元素的用法回歸正途

一個Web開發者可能會有這樣的懺悔:我錯了,我一直都在用表格做布局,我的頁面和樣式雜糅在一起… …我們可能把原因歸結為歷史,以前的開發就沒有這種理念,歷史是這樣的么?傳統的HTML是基于SGML標準,這個標準誕生于Web之前,我們回顧一下:

SGML是1986年出版發布的一個信息管理方面的國際標準(ISO 8879)。該標準定義獨立于平臺和應用的文本文檔的格式、索引和鏈接信息,為用戶提供一種類似于語法的機制,用來定義文檔的結構和指示文檔結構的標簽。其中Markup的含義是指插入到文檔中的標記。標記分為兩種:一種稱為procedard markup,用來描述文檔顯示的樣式;另一種稱為descriptive markup,用來描述文檔中的文字的用途。制定SGML的基本思想是把文檔的內容與樣式分開。

回顧歷史我們應該像佟掌柜一樣感慨了:“我錯了,我真的錯了”

如何將文檔的內容和樣式分開?作者同樣給出了一些建議:

Replace Table Layouts

Replace Frames with CSS Positions

Move Content to the Front

Mark Up Lists as Lists

Replace blockquote/ul Indentation with CSS

Replace Spacer GIFs

Add an ID Attribute

Add Width and Height to an Image

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

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

相關文章

enas 參數共享_CVPR2020 | CARS: 華為提出基于進化算法和權值共享的神經網絡結構搜索,CIFAR10上僅需單卡半天...

點擊上方“CVer”,選擇加"星標"或“置頂”重磅干貨,第一時間送達本文轉載自:曉飛的算法工程筆記為了優化進化算法在神經網絡結構搜索時候選網絡訓練過長的問題,參考ENAS和NSGA-III,論文提出連續進化結構搜索…

gis發布及應用服務器,超圖云GIS應用服務器平臺

商品說明版本:V9D交付方式:License適用于:Windows/Linux/Unix/Android/iOS/其他上架日期:2020-10-27交付SLA:180 自然日規格1:iServer高級版基于跨平臺GIS內核的云GIS應用服務器,含空間數據庫引擎SDX;提供地圖服務、空間數據訪問與管理服務、…

gradle引入子module配置_原創 | 看完此文,你對Gradle的理解又升級了

前言這一篇來介紹一些Gradle進階的內容,當然進階內容非常多,這篇文章就總結一些相對重要的、常用的一些知識點,比如Gradle的簽名配置和依賴管理。1.Android簽名文件配置在一般公司中,當團隊比較小的時候,App的簽名信息…

ajax發送私信,$.ajax()方法詳解

jquery中的ajax方法參數總是記不住,這里記錄一下。1.url:要求為String類型的參數,(默認為當前頁地址)發送請求的地址。2.type:要求為String類型的參數,請求方式(post或get)默認為get。注意其他http請求方法,例如put和delete也可以…

怎樣制作線段動畫_OPPO又開發布會!這兩個PPT動畫太炫了,榮獲網友清一色好評...

前兩天,OPPO在線上發布了find X2系列,觀看發布會直播的時候,真的有被發布會的開場驚艷到,視覺體驗太震撼了。這是我隨便錄的一個動畫,滿滿的視覺沖擊力:在看完發布會之后,我對整場發布會印象最深…

文件服務器的文件設置只讀,服務器設置文件為只讀

服務器設置文件為只讀 內容精選換一換有,該NTP服務器僅限于在華為云控制臺上購買的彈性云服務器安裝使用。如需在購買的彈性云服務器上安裝NTP服務器,您可以選擇使用華為云控制臺自己提供的NTP服務器,也可以選擇其他NTP服務器。安裝NTP服務器…

matlab三位畫圖_matlab 3D繪圖詳解(示例代碼)

1、三維曲線: plot3() →plot3(X1,Y1,Z1,...) →plot3(X1,Y1,Z1,LineSpec,...) →plot3(...,‘PropertyName‘,PropertyValue,...) →h = plot3(...) plot3( )的用法與plot( )類似,只是多了一個 Z 數組。舉例: >> t=[0:0.2:10*pi]; >> x=2*t; >> y=sin(t)…

手機修改ntp服務器地址,修改手機ntp服務器ip地址

修改手機ntp服務器ip地址 內容精選換一換本文介紹使用云手機服務時需要了解的基本概念。云手機是一臺包含原生安卓操作系統,具有虛擬手機功能的云服務器,簡單來說,云手機云服務器Android OS。您可以遠程實時控制云手機,實現安卓AP…

圖像控制點 形變_基于控制點的圖象變形方法及其應用

基于控制點的圖象變形方法及其應用楊金鐘;劉政凱;俞能海;吳皓【期刊名稱】《中國圖象圖形學報》【年(卷),期】2001(006)011【摘要】根據人臉,特別是根據人臉在人眼變形中對形狀和細節的要求,提出了用光滑不等距插值和空間可變線性插值方法來實現基于控制點網格的數字圖象變形的…

window10維護不了華為服務器,win10怎么打開云服務器異常

win10怎么打開云服務器異常 內容精選換一換本節介紹如何查看云服務器的mac地址。云服務器的mac地址不支持修改。登錄Linux云服務器。執行以下命令,查看云服務器的mac地址。ifconfig查看MAC地址ifconfig登錄Linux云服務器。執行以下命令,查看云服務器的ma…

命令行cd到_前端(只)需要掌握這些命令行(就還行了)

練習windows 用戶在任意目錄使用 shift 右鍵 打開 cmd 或者 powershell;或通過其他方式打開命令行cd ~/Desktop 回車恭喜你在命令行里進入了桌面輸入命令 mkdir demo1cd demo1 進入目錄cd .. 回退到桌面rm -rf demo1 刪除目錄,其中 -r 表示遞歸地刪除路…

怎么在win7鏈接無線網絡連接服務器,Win7系統網絡連接一直顯示正在獲取網絡地址但是連不上網解決方法...

電腦上不了網的原因很多,比如是網絡設置問題、路由器問題、運營商問題。最近一個Win7用戶,網絡連接一直顯示,正在獲取網絡地址但是連不上網,但是其它電腦可以上網,那么說明是電腦設置問題,那么該如何解決呢…

工況密度和標況密度怎么換算_什么是載流量?導線的載流量與電流密度怎么計算?圖文詳解!...

(1)導線規格在國標《GB/T3956-2008 電纜的導體》中,我們能看到國家對電纜導線的截面積進行標準化。按照國標規定,標稱的電纜導線規格如下(單位mm2):0.5、0.75、1、1.5、2.5、4、6、10、16、25、35、50、70、95、120、150、185、240、300、400…

assume用法及意思_詞匯精選:assume的用法和辨析

一、詳細釋義:v.假定;臆斷 [T]例句:You assume his innocence before hearing the evidence against him.在未聽到對他不利的證言之前,你假定他是無罪的。例句:I assume that it is so.我假定它是這樣。例句&#xff1…

把iconfront的資源放cdn訪問_詳解mpvue小程序中怎么引入iconfont字體圖標

前言iconfont阿里巴巴矢量圖標庫是我很喜歡的一個網站,可以下載/在線編輯/上傳自己需要的矢量圖標,也支持團隊協作,那么在mpvue項目中如何引入呢?將圖標加入購物車搜索關鍵詞可以是中文也可以是英文下載素材點擊網站右上角的購物車…

卸載cuda_NVIDIA驅動和CUDA安裝

切換到集成顯卡(X.Org X server)2. 卸載舊驅動sudo apt-get --purge remove nvidia* sudo apt autoremove # To remove CUDA Toolkit: $ sudo apt-get --purge remove "*cublas*" "cuda*" # To remove NVIDIA Drivers: $ sudo apt-g…

html加粗字體打印失效_論文格式要求及字體大小

點擊上方“藍字”帶你去看小星星論文既是探討問題進行學術研究的一種手段,又是描述學術研究成果進行學術交流的一種工具。下面小編為大家整理了論文格式要求及字體大小,歡迎閱讀。1 02封面題目:小二號黑體加粗居中。各項內容:四號…

deepfakes怎么用_[mcj]deepfakesApp使用說明(1)

在眾多AI換臉軟件中Fakeapp是傳播最廣,操作最簡單的一款,當然他同樣也是源于Deepfakes。 這款軟件在設計上的確是花了一些心事,只需稍加點撥,哪怕是再小白的人也能學會。下面我就做一個入門教程吧。跟著這個教程來,你肯…

alert 標題_[SwiftUI 知識碎片] Button、Image 和 Alert

譯自 Buttons and images更多內容,歡迎關注公眾號:Swift花園喜歡文章?不如來個 ?三連?關注專欄,關注我 Button 和 Image在 SwiftUI 中,按鈕可以由兩種方式創建,取決于它們的外觀。最簡單的方式…

兩個mysql表對比_mysql實用技巧之比較兩個表是否有不同數據的方法分析

本文實例講述了mysql比較兩個表是否有不同數據的方法。分享給大家供大家參考,具體如下:在數據遷移中,我們經常需要比較兩個表,以便在一個表中標識另一個表中沒有相應記錄的記錄。例如,我們有一個新的數據庫&#xff0c…