网站建设_网站制作_SEO优化推广_百度推广开户_朋友圈网络科技

網(wǎng)頁制作,改變你的思維方式

日期:2011/9/25 / 人氣:

 重構”的春風吹遍大江南北,互聯(lián)網(wǎng)一時間風聲鶴唳,“div+CSS”儼然已成為一種“時尚”,難以盡數(shù)的網(wǎng)站都不約而同地開始了自己的“重構”。
  我們看到有嵌套6、7層的div布局,有不用table的表格,有純div+a構成的頁面,有成百上千的表現(xiàn)層class……現(xiàn)在關于標準的書籍越來越多,除了少數(shù)幾本標榜“高級技巧”的書籍以外,很少有人不會在自己著作的前幾章強調(diào)這樣一句話——“結構與表現(xiàn)分離”。然而這些書籍的讀者們,又有多少人認認真真地讀過前幾章呢?還是更多地直接跳過那些乏味的結構講解,一頭扎到貌似高深的布局技巧與Hack中去?
  其實div+CSS這個說法從一開始就誤導了太多的人,急功近利的心態(tài)則更是造成這種現(xiàn)象的罪魁禍首。一個習慣了table布局的網(wǎng)頁制作接觸標準的第一步,不應該是去盲目尋求實現(xiàn)各種布局的CSS技巧,而是努力改變自己的思維方式。

  下面將結合我的切身體會談一談順應標準的思維方式,其中有不少是我曾經(jīng)走過的彎路,希望對剛剛接觸標準的XDJM們有些幫助:
  1、“節(jié)省代碼”是營銷手段,不是宗旨
  “使用div布局可以比table布局節(jié)省更多的代碼”,我在很多書籍和網(wǎng)站上見到過這句話。這句話本身是沒錯的,可以“節(jié)省代碼”的確是網(wǎng)頁標準化所帶來的好處之一。然而切記,它只是“好處之一”,而不是“唯一好處”,更不是宗旨。“節(jié)省代碼”更多的時候是我們用來說服那些頑固不化的老板的營銷手段。網(wǎng)頁標準化的唯一宗旨是“結構與表現(xiàn)分離”,而絕不是為了節(jié)省代碼而節(jié)省代碼。我曾經(jīng)因為網(wǎng)站邊欄甚至主體內(nèi)容的表現(xiàn)形式相同而采用了統(tǒng)一的class (至今還有一些書是這樣教的),這樣的確比分別命名id更節(jié)省代碼,然而這樣做的代價是代碼失去了良好的結構。失去良好結構的后果是:一、源代碼沒有了可讀性;二、網(wǎng)站增加了未知的維護成本。試想,當某一塊內(nèi)容因為需要而作出表現(xiàn)形式的變動,例如鏈接的顏色等等,我們就不得不去修改頁面源文件,增加額外的class,工作量比起只需要調(diào)整id分組就大了許多。而且長此以往,結構將會越來越差,形成難以逆轉(zhuǎn)的惡性循環(huán)。
  還有一種情況,出現(xiàn)在id的命名方面,也是本人曾經(jīng)犯過的錯誤。那時為了“節(jié)省代碼”,而把主菜單命名為“mm”,二級菜單命名為“m2”,三級菜單為“m3”,結果嚴重降低了網(wǎng)頁的可讀性,使其他同事很難接手,圖省事卻累了自己。同理,文件及文件夾命名方面也不宜過簡,象《網(wǎng)站重構》里建議把圖片都用“i”目錄存放,個人以為并不可取,除非你能為這種高度縮寫的目錄結構撰寫詳細說明并保證每個相關人員包括其他制作人員、開發(fā)、甚至懂行的老板……都能理解和執(zhí)行,否則只會給你自己增添不必要的麻煩。
  2、ID是狙擊槍,class是雙刃劍

佛山網(wǎng)站建設_佛山網(wǎng)站制作_佛山網(wǎng)站設計_佛山網(wǎng)站_佛山網(wǎng)頁設計_佛山網(wǎng)頁建設_佛山網(wǎng)頁制作

  想要做好網(wǎng)頁結構,id與class都是必須熟練掌握的,所謂“兩手抓,兩手都要硬”。ID就象狙擊槍一樣,可以幫助我們精準地定位要想要加載樣式的元素;而class則是俠客的佩劍,信手拈來更加輕盈靈便,兩者的結合能夠?qū)崿F(xiàn)結構良好且表現(xiàn)豐富的頁面。然而現(xiàn)在有一種錯誤的觀點,就是id完全可以用class來取代,事實上許多網(wǎng)頁源代碼也的確如此,打開來通篇class,找不到一個id。造成這種現(xiàn)象的理由有很多種,然而自table時代傳下來的根深蒂固的“class=CSS”的觀念才是本因。的確,class比id用途更廣更靈活,但也必須意識到,class對于構建良好的網(wǎng)頁結構遠不如id有效。id的強制唯一性使得我們可以很容易通過id檢索到我們需要的任意模塊,而class則沒有這個優(yōu)勢。雖然我們可以為模塊定義唯一的class名,但前提是——只有制作者本人可以動網(wǎng)頁樣式。否則換一個稍微懶一些伙計,看到樣式相同便直接把前面的class拿來套用,其結果就是我們發(fā)現(xiàn)網(wǎng)頁里有十幾個模塊都叫做“gonggao”或者“xinwen”,以至于為了區(qū)分還不得不加上大量的html注釋,這樣的結果顯然并不是我們想要的。再者就是前面提到的,通過通用class所節(jié)省下來的代碼,又不得不在每個單獨定義的class中揮霍掉。
ID是狙擊槍,class是雙刃劍,合則兩利,分則兩敗。
  3、并不是所有的內(nèi)容都需要div做“容器”
  主菜單究竟是用<div id="mainnav"><ul>還是<ul id="mainnav">?這是一個博弈的問題。至今這個問題也沒有人能夠給出明確的答案,就連我也是如此。誠然,<div id="mainnav">在只包含了一個<ul>元素的時候,這個div就顯得有些冗余,但有時候為了配合美工絢麗的設計,多一層標簽就意味著多一層變化(有些人在a標簽里套span也是如此)。而div不帶任何原始屬性的先天優(yōu)勢也是其它標簽所無法比擬的。這個命題我只是想說明一件事,就是我們應該意識到,<div id="mainnav"><ul>之外,還有<ul id="mainnav">這種寫法,同樣具有良好的結構和語義,并且省去了一層嵌套。在我們不需要為華麗的美工勞心勞神的時候,是不是也可以讓結構更加簡約呢?
  這個命題其實還可以引申為——“并不是所有內(nèi)容都需要塊元素做容器”、“并不是所有鏈接都需要其它元素做容器”,例如很多頁面都有的“更多”。有些人寫做“<div class="more"><a>”,也有人寫做<p><a>或者<strong><a>。在這些“容器”只包含了一個<a>標簽的時候,它們是否還有存在的必要?直接寫成<a class="more">會破壞結構嗎?會缺乏語義嗎?會影響布局嗎?換一種思路,你也許就會有不一樣的收獲。
  4、工作上也做到“結構與表現(xiàn)分離”
  關于這一點,網(wǎng)絡上很多高手都是這樣建議的,也就是先打開編輯器,把結構完整地寫出來,再去CSS里寫表現(xiàn),而盡量不去動已經(jīng)寫好的結構。然而以看書為主要學習方式的人卻很難體會,因為關于標準的書籍多半是手把手來教的,也就是必然是結構表現(xiàn)結合,循序漸進。雖然有些書籍有這方面的建議,但短短的幾句話遠不如讀書過程中的潛移默化。在制作人員能夠?qū)Y構良好把握的時候,同時寫結構與表現(xiàn)也不會對結果有太大的影響。但以我的經(jīng)驗,結構表現(xiàn)分離的工作方式,要比同時寫結構與表現(xiàn)效率高很多,同時也不容易遺漏頁面上的元素。當然,所謂的“結構與表現(xiàn)分離”并不是完全不考慮表現(xiàn),想要兼顧到表現(xiàn),就要保證——在不破壞結構的前提下,CSS選擇器能夠選擇到盡量多的內(nèi)容。在哪些地方加class,或者用哪些標簽來區(qū)分,是一個見仁見智的地方,相信每個人都有自己的體會。而結合不同的設計稿,有時候也需要做出相應的變化,然而這些變化都應該有一個同樣的前提——不破壞代碼的結構和可讀性。再就是,一定要意識到,任何可視化的工具都是魔鬼。它們可視化界面下所呈現(xiàn)的效果,往往與真實瀏覽器相差千里,而我們真正要兼容的是瀏覽器,不是編輯器的可視化界面。
  5、CSS不是萬能的,沒有CSS也不是萬萬不能的
  相比于CSS1.0時代,今天CSS可以完成更多的事情,然而需求永遠是領先于技術的,CSS無法完成網(wǎng)頁所有的表現(xiàn)層工作,有時候我們必須結合JS或者其他語言來實現(xiàn)一些效果。而另一些時候,用JS的方法比只靠CSS簡單得多,并且代碼結構更加良好——最典型的例子就是下拉菜單。這些時候,我們要說服自己,或者說服老板與客戶,去采用更簡單更合理的方式。因為DOM同樣是網(wǎng)頁標準的重要組成,并不是使用了JS我們的網(wǎng)頁就降低了效率或是不再標準,恰恰相反,這是對JS最大的誤解。說到這里不得不提一點,就是今天的時代,比以往更要求每個職業(yè)了解更多的相關知識,做設計的人要懂一點交互和制作,做制作的也必須了解設計和程序,尤其是JS這樣的前端技術,只有這樣,你和同事才能夠更好地合作,個人的發(fā)展前景也會更加光明。沒有CSS,指的是當我們的網(wǎng)站因為各種未知的原因?qū)е翪SS文件載入失敗,不要因此而慌亂,這是考驗我們代碼質(zhì)量的最佳時機。在沒有CSS的時候,如果網(wǎng)頁仍舊保持良好的可讀性,這成果要遠比通過W3C驗證更值得我們自豪。

作者:朋友圈科技


Go To Top 回頂部
主站蜘蛛池模板: 上海刑事律师|刑事辩护律师|专业刑事犯罪辩护律师免费咨询-[尤辰荣]金牌上海刑事律师团队 | 赛尔特智能移动阳光房-阳光房厂家-赛尔特建筑科技(广东)有限公司 | 袋式过滤器,自清洗过滤器,保安过滤器,篮式过滤器,气体过滤器,全自动过滤器,反冲洗过滤器,管道过滤器,无锡驰业环保科技有限公司 | 超声波气象站_防爆气象站_空气质量监测站_负氧离子检测仪-风途物联网 | 山东石英砂过滤器,除氟过滤器「价格低」-淄博胜达水处理 | 螺旋叶片_螺旋叶片成型机_绞龙叶片_莱州源泽机械制造有限公司 | 东莞工厂厂房装修_无尘车间施工_钢结构工程安装-广东集景建筑装饰设计工程有限公司 | 滚塑PE壳体-PE塑料浮球-警示PE浮筒-宁波君益塑业有限公司 | 英语词典_成语词典_日语词典_法语词典_在线词典网 | POM塑料_PBT材料「进口」聚甲醛POM杜邦原料、加纤PBT塑料报价格找利隆塑料 | 无线联网门锁|校园联网门锁|学校智能门锁|公租房智能门锁|保障房管理系统-KEENZY中科易安 | 电镀电源整流器_高频电解电源_单脉双脉冲电源 - 东阳市旭东电子科技 | 深圳公司注册-工商注册公司-千百顺代理记账公司 | 黑龙江京科脑康医院-哈尔滨精神病医院哪家好_哈尔滨精神科医院排名_黑龙江精神心理病专科医院 | 玉米深加工设备|玉米加工机械|玉米加工设备|玉米深加工机械-河南成立粮油机械有限公司 | 石磨面粉机|石磨面粉机械|石磨面粉机组|石磨面粉成套设备-河南成立粮油机械有限公司 | 缓蚀除垢剂_循环水阻垢剂_反渗透锅炉阻垢剂_有机硫化物-郑州威大水处理材料有限公司 | 九爱图纸|机械CAD图纸下载交流中心 | 工控机-工业平板电脑-研华工控机-研越无风扇嵌入式box工控机 | 三佳互联一站式网站建设服务|网站开发|网站设计|网站搭建服务商 赛默飞Thermo veritiproPCR仪|ProFlex3 x 32PCR系统|Countess3细胞计数仪|371|3111二氧化碳培养箱|Mirco17R|Mirco21R离心机|仟诺生物 | 水厂自动化|污水处理中控系统|水利信息化|智慧水务|智慧农业-山东德艾自动化科技有限公司 | 氨水-液氨-工业氨水-氨水生产厂家-辽宁顺程化工 | 首页 - 张店继勇软件开发工作室 兰州UPS电源,兰州山特UPS-兰州万胜商贸 | 深圳APP开发公司_软件APP定制开发/外包制作-红匣子科技 | 缝纫客| 南京兰江泵业有限公司-水解酸化池潜水搅拌机-絮凝反应池搅拌机-好氧区潜水推进器 | 福州仿石漆加盟_福建仿石漆厂家-外墙仿石漆加盟推荐铁壁金钢(福建)新材料科技有限公司有保障 | 电采暖锅炉_超低温空气源热泵_空气源热水器-鑫鲁禹电锅炉空气能热泵厂家 | 生产加气砖设备厂家很多,杜甫机械加气砖设备价格公道 | POS机办理_个人POS机免费领取 - 银联POS机申请首页 | 都江堰招聘网-都江堰人才网 都江堰人事人才网 都江堰人才招聘网 邢台人才网_邢台招聘网_邢台123招聘【智达人才网】 | 叉车电池-叉车电瓶-叉车蓄电池-铅酸蓄电池-电动叉车蓄电池生产厂家 | 不锈钢/气体/液体玻璃转子流量计(防腐,选型,规格)-常州天晟热工仪表有限公司【官网】 | 大型果蔬切片机-水果冬瓜削皮机-洗菜机切菜机-肇庆市凤翔餐饮设备有限公司 | 彼得逊采泥器-定深式采泥器-电动土壤采样器-土壤样品风干机-常州索奥仪器制造有限公司 | 恒温恒湿箱(药品/保健品/食品/半导体/细菌)-兰贝石(北京)科技有限公司 | 一体式钢筋扫描仪-楼板测厚仪-裂缝检测仪-泰仕特(北京) | 杭州可当科技有限公司—流量卡_随身WiFi_AI摄像头一站式解决方案 | 范秘书_懂你的范文小秘书 | 薄壁轴承-等截面薄壁轴承生产厂家-洛阳薄壁精密轴承有限公司 | 雷蒙磨,雷蒙磨粉机,雷蒙磨机 - 巩义市大峪沟高峰机械厂 |