色尼玛亚洲综合影院,亚洲3atv精品一区二区三区,麻豆freexxxx性91精品,欧美在线91

你真的懂HTML嗎-從"最新閃存"說起

  楔子

  博客園最近正在整合閃存和博客.剛好我最近也在搗騰博皮,所以關(guān)注了下整合的結(jié)果.不得不說,園子最終的生成的html相當(dāng)?shù)牟灰?guī)范,語義性混亂,或者說很多冗余,也許就是所謂的div強(qiáng)迫癥/class強(qiáng)迫癥.

  HTML的語義性

  我不知道從什么時(shí)候開始,Table的布局開始為國人所唾棄,div+css的布局開始大受吹捧.不管引領(lǐng)潮流的是哪個(gè),我們所追求的目標(biāo)是一致的,"讓html更簡練,更可讀."

  • 更簡練,意味著去除不需要的冗余,分離內(nèi)容和展現(xiàn),清除純粹用于布局的tag.
  • 更可讀,意味著提高h(yuǎn)tml本身的語義性,讓html解釋它本身所要表達(dá)的意思.

  而這樣子做的好處是什么呢?

  • 簡練,讓內(nèi)容和展現(xiàn)松耦合,利于分工,最大化利用web緩存機(jī)制,減少網(wǎng)路流量,加快頁面渲染.
  • 可讀,讓內(nèi)容結(jié)構(gòu)更清晰,利于被各種終端理解(比如盲人的屏幕閱讀器,搜索引擎的爬蟲).

  Block-level Elements(塊級(jí)元素) VS Inline Elements(內(nèi)聯(lián)元素)

  在Html的規(guī)范中,這么說到(摘自棕熊童鞋的[Quicky] block 和 inline 的區(qū)別是?)

所有允許被 BODY 元素包含的元素,要么是塊級(jí)的;要么是內(nèi)聯(lián)的;要么既可以算作塊級(jí)的,也可以算作內(nèi)聯(lián)的。但是絕對(duì)不存在一個(gè)能被BODY包含,但即非塊級(jí),又非內(nèi)聯(lián)的元素。
常見的塊級(jí)元素有 DIV, FORM, TABLE, P, PRE, H1~H6, DL, OL, UL 等等。
常見的內(nèi)聯(lián)元素有 SPAN, A, STRONG, EM, LABEL, INPUT, SELECT, TEXTAREA, IMG, BR 等等。
另外,SCRIPT, OBJECT, MAP, BUTTON, DEL, INS 這些元素,既可以作為塊級(jí)元素,也可以作為內(nèi)聯(lián)元素。

 

  那么塊級(jí)元素和內(nèi)聯(lián)元素具體有什么區(qū)別呢?具體表現(xiàn)在以下幾個(gè)方面: 

  一般來說塊級(jí)元素可以包含塊級(jí)元素和內(nèi)聯(lián)元素;但內(nèi)聯(lián)元素只能包含內(nèi)聯(lián)元素。 要注意的是,每個(gè)特定的元素,能包含的元素也是特定的,所以具體到個(gè)別元素上,這條規(guī)律是不適用的。

  比如 P 元素,只能包含內(nèi)聯(lián)元素,而不能包含塊級(jí)元素。

code

<p><div>balalbalabaladiv>p><p><span>balalbalabalaspan>p>

 

  具體關(guān)于這方面的知識(shí),大家可以閱讀棕熊童鞋的[Quicky] block 和 inline 的區(qū)別是?

  為什么是div+css的布局

  把追求語義性定義為"div+css布局",其實(shí)是狹隘的.我覺得它的完整說法應(yīng)該是"無語義性tag+css做布局,語義性tag組織內(nèi)容".我們知道 html的tag大部分本身都有自身的語義性的.比如p,是段落,br是換行,你不能用p來做換行,用br來做段落,這樣就會(huì)導(dǎo)致html本身的語義產(chǎn)生混亂.而div和span剛好是html中兩個(gè)本身不具備語義性的tag. 但是span是inline element,所以不適合做容器,div是塊級(jí)元素,所以毫無疑問它成為我們做布局的最好選擇,也才有了"div+css布局"一說.

  div強(qiáng)迫癥/class強(qiáng)迫癥

  在第一版本的整合中,最新閃存的html結(jié)構(gòu)大致如下

code

<div class="day"> <div class="dayTitle"> div> <div class="my_ing"> 一個(gè)良好的討論氛圍,是一家好公司的最基本條件.<a class="ing_lnk" href="http://home.cnblogs.com/ing/58955/">10-30 14:44a> <br>
經(jīng)濟(jì)危機(jī),重新開墾一畝三分地......<a class="ing_lnk" href="http://home.cnblogs.com/ing/58457/">10-28 13:45a> <br> 學(xué)習(xí)是個(gè)輪回,重新上路ing...<a class="ing_lnk" href="http://home.cnblogs.com/ing/32400/">06-01 21:06a> <br> <a class="ing_lnk" href="http://home.cnblogs.com/walkingboy/ing/">更多閃存...a> div>div>
  • 首先,最新閃存被放在post的列表容器內(nèi),而且使用一樣的容器class標(biāo)識(shí),這就導(dǎo)致做css的時(shí)候很難定位它.
  • 其次br被用來做列表,
  • 再次more link和list item又進(jìn)行混淆.

  我本來想為自己的博皮調(diào)調(diào)css,結(jié)果發(fā)現(xiàn)這個(gè)結(jié)構(gòu)真是很暈,然后發(fā)了條建議閃存的html位置和結(jié)構(gòu)竟然和Post一樣,很難修改皮膚啊.

  不得不說,園子團(tuán)隊(duì)的反應(yīng)速度還是可以的,昨天晚上又進(jìn)行了更新,我們看下第二版本的html結(jié)構(gòu).

code

<div id="side_ing_block"> <h3 class="catListTitle">最新閃存h3> <div class="side_ing_list"> <ul> <li>一個(gè)良好的討論氛圍,是一家好公司的最基本條件. <a class="ing_lnk" href="http://home.cnblogs.com/ing/58955/">10-3014:44a>li>
<li>經(jīng)濟(jì)危機(jī),重新開墾一畝三分地......<a class="ing_lnk" href="http://home.cnblogs.com/ing/58457/">10-2813:45a>li> <li>學(xué)習(xí)是個(gè)輪回,重新上路ing... <a class="ing_lnk" href="http://home.cnblogs.com/ing/32400/">06-0121:06a>li>
<li><a class="ing_lnk" href="http://home.cnblogs.com/walkingboy/ing/"
>更多閃存...a>li> ul> div>div>

  不錯(cuò),語義性已經(jīng)有一定的修改了,但是還是有太多的冗余tag.

原來Cat Chen有篇文章叫你有

強(qiáng)迫癥嗎?.

我想我們可以說上面的html是有強(qiáng)烈的

強(qiáng)迫癥+class強(qiáng)迫癥. 為什么這么說呢.

強(qiáng)迫癥+class強(qiáng)迫癥

it知識(shí)庫你真的懂HTML嗎-從&amp;quot;最新閃存&amp;quot;說起,轉(zhuǎn)載需保留來源!

鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標(biāo)記有誤,請(qǐng)第一時(shí)間聯(lián)系我們修改或刪除,多謝。

相關(guān)文章閱讀

構(gòu)建高可伸縮性的WEB交互式系統(tǒng)(下)構(gòu)建高可伸縮性的WEB交互式系統(tǒng)(下)
關(guān)于工作效率的心得分享關(guān)于工作效率的心得分享
DevOps——現(xiàn)代開發(fā)高手的終極秘訣DevOps——現(xiàn)代開發(fā)高手的終極秘訣
構(gòu)建高可伸縮性的WEB交互式系統(tǒng)(上)構(gòu)建高可伸縮性的WEB交互式系統(tǒng)(上)
主站蜘蛛池模板: 界首市| 中山市| 宁陵县| 汾阳市| 松滋市| 延川县| 海盐县| 海原县| 北流市| 略阳县| 图木舒克市| 抚宁县| 尼勒克县| 宁晋县| 银川市| 安国市| 贵阳市| 蓝山县| 宜昌市| 辽阳市| 井研县| 平昌县| 汾西县| 罗定市| 桦南县| 万源市| 朝阳区| 涟源市| 通榆县| 仙游县| 云南省| 定边县| 榆中县| 晋宁县| 东方市| 北碚区| 正宁县| 介休市| 阿合奇县| 江川县| 揭阳市|