摘要:為什么說最佳實(shí)踐是呢簡單來說,就是這類預(yù)處理器在提供一定的抽象能力的同時(shí),也不會(huì)破壞自身的特性。就語義化這件事情而言,如果你的是基于標(biāo)準(zhǔn)來編寫的,意味著你的頁面具備更多的可能性。
原文:https://github.com/kuitos/kuitos.github.io/issues/33
15年年末寫了篇關(guān)于BEM方法論(實(shí)踐上內(nèi)容并不是原BEM)的文章,文末給自己挖了個(gè)坑說要聊聊web語義化,跳票至今?。16年第一篇用來填坑好了!
什么是語義化The Semantic Web provides a common framework that allows data to be shared and reused across application, enterprise, and community boundaries. --Wikipedia
語義化Web具備讓數(shù)據(jù)跨終端共享/重用的能力。
對(duì)于HTML體系而言,Web語義化是指使用語義恰當(dāng)?shù)臉?biāo)簽,使頁面有良好的結(jié)構(gòu),頁面元素有含義,能夠讓人和機(jī)器都容易理解。
語義化說起來好像都懂,但是實(shí)際情況并不是那么樂觀。
再談各種所謂的CSS設(shè)計(jì)模式
OOCSS (Object Oriented CSS)
...a CSS “object” is a repeating visual pattern, that can be abstracted into an independent snippet of HTML, CSS, and possibly JavaScript. That object can then be reused throughout a site. — Nicole Sullivan
...
目標(biāo):
減少對(duì)HTML結(jié)構(gòu)的依賴
增加CSS class重復(fù)性的使用
SMACSS(Scalable and Modular Architecture for CSS)
...an attempt to document a consistent approach to site development when using CSS. — SMACSS
一種css架構(gòu)風(fēng)格
BEM(Block,Element,Modular)
The BEM approach ensures that everyone participating in the development of a website is working with the same codebase and using the same terminology — BEM Methodology
與SMACSS類似
METACSS | ATOMCSS (原子CSS)
WTFSS
為什么會(huì)有這么多層出不窮(千奇百怪)的CSS設(shè)計(jì)模式Cascading Style Sheets (CSS) are a stylesheet language used to describe the presentation of a document written in HTML or XML (including XML dialects like SVG or XHTML). CSS describes how elements should be rendered on screen, on paper, in speech, or on other media. --MDN
CSS本身的不足,不具備邏輯表達(dá)能力 & 抽象能力
We had to maintain a shit。。。所以我們需要更有效的去減少讓自己惡心的成本。。
但這些都只是部分客觀原因,主要原因在于我們對(duì)于Web語義化的理解度不夠以及非正確的工作流。
以表現(xiàn)為中心(面向UI) VS 以信息為中心(面向語義)以表現(xiàn)為中心的工作流: 需求原型 --> UI設(shè)計(jì)稿 --> 以HTML/CSS實(shí)現(xiàn)設(shè)計(jì)稿
以信息為中心的工作流: 需求原型 --> 分析需求并以HTML描述 --> UI設(shè)計(jì)稿 --> 分析樣式并以CSS實(shí)現(xiàn)
兩者最大的區(qū)別在于,對(duì)于面向UI的工作流而言,HTML/CSS只是實(shí)現(xiàn)UI的手段,而對(duì)于純正的Web開發(fā)(面向語義的工作流)而言,我們應(yīng)該是以信息為中心的,即首先考慮信息的本質(zhì)(語義),并以合適的標(biāo)簽來標(biāo)記,最后再考慮樣式和行為(UI)。
之所以會(huì)有那么多層出不窮(不知所謂)的CSS設(shè)計(jì)模式,是因?yàn)樗鼈兇蠖际且员憩F(xiàn)為中心提出的“最佳實(shí)踐”,而這兩種方法論本身又是不適配的。
為什么說面向語義(以信息為中心)才是純正的Web開發(fā)
Web誕生的目的是用于在網(wǎng)絡(luò)上傳遞資源跟信息的。HTML設(shè)計(jì)之初是用來作為互聯(lián)網(wǎng)上主要的內(nèi)容載體,其本身是用來描述信息的。在最早期的Web時(shí)代,HTML作為一種通用的描述語言用來表述在互聯(lián)網(wǎng)上傳輸/共享的文檔的信息。
Web 萬維網(wǎng)The World Wide Web (WWW) is an open source information space where documents and other web resources are identified by URLs, interlinked by hypertext links, and can be accessed via the Internet.
HTML 作為一種對(duì)計(jì)算機(jī)而言通用易懂的母語
To publish information for global distribution, one needs a universally understood language, a kind of publishing mother tongue that all computers may potentially understand.
Web領(lǐng)域的一套基礎(chǔ)架構(gòu)跟技術(shù)(包括HTTP、REST、HTML等),是按照語義中心的方式設(shè)計(jì)出來的。如果采用UI中心的方法論,必然導(dǎo)致阻抗不匹配。
w3c官方也在致力于推廣Web語義化
各種表現(xiàn)型標(biāo)簽/屬性在HTML5中被廢棄/不推薦使用(center、big、width等)
HTML5中新增的各種語義化標(biāo)簽(header、nav等),而這些標(biāo)簽在表現(xiàn)上跟div無二。
CSS語義化?通常意義上我們說的CSS語義指的是class的語義。class作為HTML與CSS之間的主要鉤子,卻是被我們誤解最深的一個(gè)東西。
There are no additional restrictions on the tokens authors can use in the class attribute, but authors are encouraged to use values that describe the nature of the content, rather than values that describe the desired presentation of the content. --w3c
class屬性本意是用來描述元素內(nèi)容的,而不是描述元素展現(xiàn)的。其典型‘反模式’代表就是METACSS。
看看這兩段代碼,哪一個(gè)更容易理解?userName:Kuitos相關(guān)文章
前端面試【整理更新中】:HTML常見題目(帶答案)
摘要:標(biāo)準(zhǔn)模式的排版和運(yùn)作模式都是以該瀏覽器支持的最高標(biāo)準(zhǔn)運(yùn)行。使用之前需要考慮這兩個(gè)缺點(diǎn)。數(shù)據(jù)的有效期不同。在設(shè)置的過期時(shí)間之前一直有效,即使窗口或者瀏覽器關(guān)閉。僅在瀏覽器窗口關(guān)閉之前有效。 一、HTML常見題目01、Doctype作用?嚴(yán)格模式與混雜模式如何區(qū)分?它們有何意義?02、 HTML5 為什么只需要寫 !DOCTYPE HTML?03、行內(nèi)元素有哪些?塊級(jí)元素有哪些?空(voi...
前端面試【整理更新中】:HTML常見題目(帶答案)
摘要:標(biāo)準(zhǔn)模式的排版和運(yùn)作模式都是以該瀏覽器支持的最高標(biāo)準(zhǔn)運(yùn)行。使用之前需要考慮這兩個(gè)缺點(diǎn)。數(shù)據(jù)的有效期不同。在設(shè)置的過期時(shí)間之前一直有效,即使窗口或者瀏覽器關(guān)閉。僅在瀏覽器窗口關(guān)閉之前有效。 一、HTML常見題目01、Doctype作用?嚴(yán)格模式與混雜模式如何區(qū)分?它們有何意義?02、 HTML5 為什么只需要寫 !DOCTYPE HTML?03、行內(nèi)元素有哪些?塊級(jí)元素有哪些?空(voi...
前端面試【整理更新中】:HTML常見題目(帶答案)
摘要:標(biāo)準(zhǔn)模式的排版和運(yùn)作模式都是以該瀏覽器支持的最高標(biāo)準(zhǔn)運(yùn)行。使用之前需要考慮這兩個(gè)缺點(diǎn)。數(shù)據(jù)的有效期不同。在設(shè)置的過期時(shí)間之前一直有效,即使窗口或者瀏覽器關(guān)閉。僅在瀏覽器窗口關(guān)閉之前有效。 一、HTML常見題目01、Doctype作用?嚴(yán)格模式與混雜模式如何區(qū)分?它們有何意義?02、 HTML5 為什么只需要寫 !DOCTYPE HTML?03、行內(nèi)元素有哪些?塊級(jí)元素有哪些?空(voi...
前端面試題1(HTML篇)
摘要:不存在或格式不正確會(huì)導(dǎo)致文檔以兼容模式呈現(xiàn)標(biāo)準(zhǔn)模式的排版和運(yùn)作模式都是以該瀏覽器支持的最高標(biāo)準(zhǔn)運(yùn)行。又稱內(nèi)核及以上版本,等內(nèi)核及以上。內(nèi)核原為,現(xiàn)為內(nèi)核等。如果不能確定時(shí),首選使用自然樣式標(biāo)簽 HTML 語義化 HTML標(biāo)簽的語義化是指:通過使用包含語義的標(biāo)簽(如h1-h6)恰當(dāng)?shù)乇硎疚臋n結(jié)構(gòu) css命名的語義化是指:為html標(biāo)簽添加有意義的class 為什么需要語義化: 去...
發(fā)表評(píng)論
0條評(píng)論
![]()
vspiders
男|高級(jí)講師
TA的文章
閱讀更多
用C語言實(shí)現(xiàn)三子棋
閱讀 680·2021-11-11 16:55
轉(zhuǎn)行軟件測試兩個(gè)多月,感覺很迷茫,下一步該如何提高自己?
閱讀 2193·2021-11-11 16:55
你的編程能力從什么時(shí)候開始突飛猛進(jìn)?
閱讀 1989·2021-11-11 16:55
年度狂歡雙十一云服務(wù)商活動(dòng)我們需要準(zhǔn)備什么(雙十一云服務(wù)器會(huì)有活動(dòng)嗎)
閱讀 2368·2021-10-25 09:46
云主機(jī)怎么建站-新睿云云主機(jī)怎么搭建網(wǎng)站?
閱讀 1640·2021-09-22 15:20
C語言------(8道)指針筆試題全面解析
閱讀 2361·2021-09-10 10:51
搬瓦工:新增兩款CN2高配機(jī)型 – DC3機(jī)房,CN2線路,月流量最高16TB
閱讀 1729·2021-08-25 09:38
Web語義化標(biāo)準(zhǔn)解讀
閱讀 2652·2019-08-30 12:48
閱讀需要支付1元查看