国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發(fā) > CSS > 正文

深入css結(jié)構(gòu)的探討如何運(yùn)用div和span才是合理的!

2024-07-11 08:23:22
字體:
供稿:網(wǎng)友
  關(guān)于div,說法很多。把div看成是布局元素這種觀點(diǎn)我想是最多的,類似有“用div代替table進(jìn)行布局”、“實(shí)戰(zhàn)CSS DIV布局”等等等等,太多了,還有不少人延用Dreamweaver的定義,稱div為層,按Photoshop的層的概念來使用……有朋友干脆就直接稱div和span為輔助布局元素。

  怎么說呢?雖然我很想說對div類似的這種熟悉是錯誤的,div不是一個布局元素,沒有一個tag是用來布局的,但是我是對的嗎?我也不知道。幾乎所有人對div的宣傳都是布局,不管是‘民間’的還是‘官方’的,但是假如我們找根源,中文中,div是一個結(jié)構(gòu)化標(biāo)簽,是一個塊級元素。好吧,我們首先看看div擁有的語義,division(分隔),按語義它的作用是將兩個部分分隔開來。然后我們再回到w3去看看怎么定義div和span的:The DIV and SPAN elements, in conjunction with the id and class attributes, offer a generic mechanism for adding structure to documents. These elements define content to be inline (SPAN) or block-level (DIV) but impose no other presentational idioms on the content.

  注重到我上面加粗的一句話了嗎?W3可沒說是 for layout,而是for structure,是結(jié)構(gòu)!因?yàn)榉指魪亩a(chǎn)生(定義)一個代碼結(jié)構(gòu)。我想,結(jié)構(gòu)和布局應(yīng)該是兩個概念吧。或許,因?yàn)閠able確實(shí)被用于布局了,所以這種根深蒂固的布局思路又自然而然的轉(zhuǎn)嫁到div上,我曾在很長一段時間里也是這么理解的。但是,現(xiàn)在我要說,這絕對是一個錯誤并且,這是極度嚴(yán)重的錯誤!!!這純粹個人觀點(diǎn)個人理解,自己取舍好了。

  為什么嚴(yán)重?理解的錯誤直接導(dǎo)致的就是使用的錯誤。因?yàn)榧偃绨凑者@個思路,把div作為布局元素使用,那么我認(rèn)為:

  你永遠(yuǎn)無法固定xhtml!永遠(yuǎn)陷在css的怪圈中!永遠(yuǎn)不會去思考和理解結(jié)構(gòu)!永遠(yuǎn)擦不干凈table烙下的痕跡!永遠(yuǎn)無法接近神(貌合神離的神哈,呵呵)……

  或許把div稱為布局元素還是為了更好的推行標(biāo)準(zhǔn),但是卻將人們從一個錯誤帶向了另一個錯誤。兩年前我剛接觸標(biāo)準(zhǔn)時就在《重構(gòu)之美》首篇中迷惑過關(guān)于改版的事情,雖然隨著理解的深入似乎有了突破,在我寫下xhtml后不變動,然后通過css的技巧來完成新版面。比如像聞名的csszengarden。但是很快我又有新的迷惑,一個人這樣做似乎沒什么問題,團(tuán)隊呢?比如假如同樣的內(nèi)容,設(shè)計成兩個版式,然后交給不同的兩個人來寫xhtml,會一樣嗎?就像假如把csszengarden的形式顛倒一下,基于同一份數(shù)據(jù)先做好100個設(shè)計稿,讓100個人按照這個設(shè)計稿寫100份xhtml,會一樣嗎?我想按照div布局模式,對于同樣的版式,不同人不同的頁面分析都會產(chǎn)生不同的xhtml,更何況不同的版式呢?但是既然表現(xiàn)與結(jié)構(gòu)無關(guān),那么同樣的內(nèi)容不應(yīng)該有2份以上的xhtml。不要小看這個問題,對于團(tuán)隊中前后臺的有效分離與快速協(xié)同,這是要害!我在培訓(xùn)中提出一個觀點(diǎn):最理想的境界是前臺閉著眼睛都能知道后臺輸出的是什么樣的xhtml結(jié)構(gòu)代碼。那么問題出在哪里?div布局!尤其是在理解了h系列標(biāo)簽不合理之后,體會更深刻。

  上篇文章我提出的關(guān)于結(jié)構(gòu)應(yīng)當(dāng)分為兩種:語義結(jié)構(gòu)和代碼結(jié)構(gòu)。理解了這兩個結(jié)構(gòu)之后,那么div的用處就比較明朗了,稍稍動動腦筋就能想到,用于組織代碼結(jié)構(gòu)。所以hx標(biāo)簽的問題我認(rèn)為經(jīng)典呢,不要說html了,即便對于xhtml,大部分的人關(guān)心的仍是如何表現(xiàn),小部分人關(guān)心語義結(jié)構(gòu),很少人去關(guān)心代碼結(jié)構(gòu),似乎xml有了,xhtml就不需要代碼結(jié)構(gòu)了。但是從hx系列的問題可以看出并延伸知道W3可一直在關(guān)心代碼結(jié)構(gòu),從1.0,1.1直到2.0,一直希望xhtml擁有xml般嚴(yán)謹(jǐn)?shù)拇a結(jié)構(gòu)。說到這里再多看xhtml 2.0的另一個變化,br不再被推薦,應(yīng)該很好理解了,br的語義是產(chǎn)生一個截斷(break),但實(shí)際作用是產(chǎn)生一個行,語義結(jié)構(gòu)上仍不完美,所以使用line進(jìn)行替代<line>this is one line</line>。同樣br也無代碼結(jié)構(gòu)可言,假如我想提取第三行的數(shù)據(jù)如何操作?所以很有可能類似br、hr這類標(biāo)簽都將被廢棄。我琢磨著,xhtml1.x是W3清理表現(xiàn),將人們往語義結(jié)構(gòu)[Semantic]的方向牽引,而xhtml 2.0則是展示和突出代碼結(jié)構(gòu)[structure]。呵呵,您說我琢磨得對嗎?瞎猜瞎猜。

  回過頭來,那么怎么組織?首先對于一個設(shè)計稿,一定要不被設(shè)計所迷惑和左右,只提取看得見和看不見的數(shù)據(jù),然后就扔掉設(shè)計稿,先完成數(shù)據(jù)的語義結(jié)構(gòu),再添加代碼結(jié)構(gòu)(adding structure to documents.),完成xhtml后,最后一步才是重新拾起設(shè)計稿打開css,還原。當(dāng)然實(shí)際做的時候不可能不看設(shè)計稿,但是怎么看?只提數(shù)據(jù)!再說一點(diǎn),數(shù)據(jù)在文檔中的先后順序由什么定?當(dāng)然是由文檔而定,不是由設(shè)計稿所定。舉個例子,假如有兩個欄目,新聞頭條和普通新聞。誰在前誰在后,很顯然在文檔中應(yīng)該是頭條在前普通在后,這是由UE(用戶體驗(yàn))和欄目輕重的綜合考慮決定。但是按照div布局的話,是按照設(shè)計稿上前下后左前右后的順序來決定的,那么假如設(shè)計稿中將普通新聞欄目設(shè)計在左欄,頭條設(shè)計在中欄,文檔中普通新聞就跑到頭條新聞上面去了。所以我打開一個Web標(biāo)準(zhǔn)站點(diǎn)文檔瀏覽,假如文檔的先后順序是按照頁面布局上前下后,左前右后的順序而定的,那么我……特例一點(diǎn),假如一個單屏設(shè)計的網(wǎng)站,標(biāo)題和導(dǎo)航設(shè)計在頁面下方,那你的文檔豈不是最下面才是標(biāo)題和導(dǎo)航,這是什么UE?這不是扯蛋嘛。div,div布局的惡果――文檔結(jié)構(gòu)仍然在為表現(xiàn)所左右!貌合神離!!

  代碼結(jié)構(gòu)怎么做?大處按照上篇文章所寫,用h系列劃分大結(jié)構(gòu)。那么小處呢?這里就要牽涉進(jìn)div的另外一個概念:塊級元素。什么塊?模塊!用div模塊化小處。舉例:

示例代碼 [www.CuoXIn.com]
發(fā)表評論 共有條評論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 北宁市| 曲沃县| 利津县| 措勤县| 云浮市| 四会市| 邹平县| 南皮县| 张家川| 亚东县| 甘洛县| 黄陵县| 安化县| 温宿县| 津南区| 施秉县| 安义县| 尉氏县| 朝阳县| 左权县| 泸溪县| 紫金县| 宜城市| 吴桥县| 米林县| 曲沃县| 垦利县| 凯里市| 阜南县| 景洪市| 灌云县| 北流市| 西盟| 和硕县| 定西市| 奉节县| 安丘市| 左贡县| 苍梧县| 峨山| 会东县|