0040 如何分析網(wǎng)頁(yè)源代碼并模仿編寫(xiě)

前面,學(xué)習(xí)了如何從零開(kāi)始編寫(xiě)一個(gè)網(wǎng)站的程序空凸,并部署在本地Web服務(wù)器,然后部署到云服務(wù)器上寸痢,通過(guò)域名進(jìn)行訪問(wèn)劫恒。
基本上整個(gè)網(wǎng)站開(kāi)發(fā)的基本入門(mén)知識(shí)介紹的差不多了。
這節(jié)課來(lái)講講如何去模仿開(kāi)發(fā)實(shí)現(xiàn)一個(gè)網(wǎng)站轿腺,這樣今后大家就可以做出各種各樣的網(wǎng)站了。

網(wǎng)頁(yè)分析

首先來(lái)看一下學(xué)哥打算模仿開(kāi)發(fā)的網(wǎng)站www.reibang.com丛楚。
打開(kāi)瀏覽器訪問(wèn)這個(gè)網(wǎng)站族壳,樣子是這樣的:

2-14-1.jpg

為了簡(jiǎn)化起見(jiàn),學(xué)哥只打算模仿開(kāi)發(fā)首頁(yè)趣些,至于點(diǎn)擊某篇文章或者其他鏈接進(jìn)入的詳細(xì)頁(yè)面仿荆,模仿開(kāi)發(fā)的原理都是一樣的。

模仿一個(gè)網(wǎng)頁(yè)的主要流程是這樣的:
先分析一下網(wǎng)頁(yè)的主要結(jié)構(gòu)和元素坏平,然后整理出一個(gè)大概的排版編程設(shè)計(jì)拢操,然后通過(guò)Chrome瀏覽器的調(diào)試工具下載相關(guān)的圖片資源和CSS資源,然后通過(guò)分析獲取所需的元素舶替,然后開(kāi)始編寫(xiě)網(wǎng)頁(yè)文件令境,按照效果模仿實(shí)現(xiàn)。

這個(gè)網(wǎng)頁(yè)分析一下顾瞪,最上面是一個(gè)菜單欄舔庶,里面是各種圖標(biāo)按鈕抛蚁,然后是一個(gè)大的圖片,下面是分為左右2欄惕橙,左邊的上面是一個(gè)圖標(biāo)按鈕瞧甩,左邊的下面是一個(gè)一個(gè)文章標(biāo)題和內(nèi)容,右邊的上面是五個(gè)圖標(biāo)按鈕弥鹦,右邊的下面是推薦作者列表肚逸。

計(jì)劃用一個(gè)table來(lái)進(jìn)行排版,總共3行2列彬坏,第1行合并2列朦促,第2行合并2列,第3行2個(gè)td苍鲜。
第1行的td里面放一個(gè)table思灰,只有1行,很多列混滔,每個(gè)按鈕占一個(gè)td洒疚。
第2行的td里面放一個(gè)圖片,實(shí)際網(wǎng)站是多個(gè)圖片切換的坯屿,由于還未學(xué)習(xí)javascript修改網(wǎng)頁(yè)動(dòng)態(tài)顯示的技術(shù)油湖,因此這里簡(jiǎn)化起見(jiàn),就放一個(gè)大圖片就好领跛。
第3行的第1個(gè)td和第2個(gè)td乏德,從上到下都用div來(lái)實(shí)現(xiàn)。

使用Chrome瀏覽器的調(diào)試工具

網(wǎng)頁(yè)當(dāng)中的圖片吠昭,需要實(shí)現(xiàn)下載下來(lái)備用喊括。同時(shí)網(wǎng)頁(yè)中用到的一些CSS樣式,也需要復(fù)制下來(lái)使用矢棚。這樣能盡量保持顯示效果相似郑什。
下載的方法有幾種,最簡(jiǎn)單的就是在瀏覽器中鼠標(biāo)光標(biāo)移動(dòng)到圖片上蒲肋,右鍵單擊蘑拯,然后選擇菜單【圖片存儲(chǔ)為...】,然后保存到本地計(jì)算機(jī)的某個(gè)目錄下兜粘。
這種方式在某些情況下不太好使申窘,比如某些圖片資源是通過(guò)CSS樣式來(lái)定義的時(shí)候,就無(wú)法下載了孔轴。比如剃法,鼠標(biāo)光標(biāo)移動(dòng)最上面一排按鈕的右側(cè)的【注冊(cè)】按鈕上,右鍵單擊路鹰,發(fā)現(xiàn)并沒(méi)有出現(xiàn)菜單【圖片存儲(chǔ)為...】玄窝。
這時(shí)候牵寺,就可以使用另外一種方法,就是使用Chrome瀏覽器的調(diào)試工具恩脂。

打開(kāi)調(diào)試工具的方法是帽氓,鼠標(biāo)光標(biāo)移動(dòng)到希望查看分析的網(wǎng)頁(yè)元素上,右鍵單擊俩块,然后選擇菜單【檢查】黎休,瀏覽器就出現(xiàn)了調(diào)試工具如下。例如玉凯,鼠標(biāo)光標(biāo)移動(dòng)最上面一排按鈕的右側(cè)的【注冊(cè)】按鈕上势腮,右鍵單擊,然后選擇菜單【檢查】漫仆,看到網(wǎng)頁(yè)效果如下:

2-14-2.jpg

點(diǎn)擊調(diào)試工具最上面一排按鈕的最右側(cè)倒數(shù)第2個(gè)按鈕捎拯,就是豎著的3個(gè)點(diǎn)的按鈕,會(huì)浮出一個(gè)菜單盲厌,里面的第一排是Dock side署照,這個(gè)是用來(lái)設(shè)置調(diào)試工具位于瀏覽器的哪個(gè)位置的,可以看到默認(rèn)是位于瀏覽器右側(cè)的吗浩,這樣會(huì)讓真正的網(wǎng)頁(yè)的寬度很窄建芙,看起來(lái)不方便。
Dock side的3個(gè)按鈕分別可以設(shè)置成:彈出一個(gè)新窗口懂扼,窗口內(nèi)靠下禁荸,窗口內(nèi)靠右。
來(lái)點(diǎn)擊當(dāng)中的按鈕阀湿,將調(diào)試工具設(shè)置為窗口內(nèi)靠下赶熟。設(shè)置后的效果如下:

2-14-3.jpg

可以看到調(diào)試工具分為上下2行,下面一行是Console陷嘴,就是瀏覽器的控制臺(tái)钧大,主要用來(lái)顯示網(wǎng)頁(yè)的調(diào)試信息,目前暫時(shí)不用關(guān)心罩旋,等到后面第3章講到JavaScript的時(shí)候會(huì)用到。上面一行又分為左右2欄眶诈,左邊顯示的是html代碼的內(nèi)容涨醋,右側(cè)顯示的是CSS樣式的內(nèi)容。
此時(shí)逝撬,如果在瀏覽器的顯示內(nèi)容里面浴骂,重新選擇一個(gè)目標(biāo)元素,鼠標(biāo)右鍵點(diǎn)擊【檢查】菜單宪潮,會(huì)發(fā)現(xiàn)溯警,調(diào)試工具里面的焦點(diǎn)也會(huì)跟隨切換到對(duì)應(yīng)的網(wǎng)頁(yè)元素的html代碼和CSS樣式趣苏。例如,找到網(wǎng)頁(yè)元素【新上榜】上鼠標(biāo)右鍵點(diǎn)擊【檢查】菜單梯轻,調(diào)試工具里面焦點(diǎn)切換如下:

2-14-4.jpg

這樣就能很方便的分析每一個(gè)網(wǎng)頁(yè)元素食磕,看到實(shí)際實(shí)現(xiàn)的html代碼以及對(duì)應(yīng)的CSS樣式,有利于更方便的模仿實(shí)現(xiàn)喳挑。

網(wǎng)頁(yè)元素分析

挨個(gè)分析網(wǎng)頁(yè)上的元素彬伦,能下載的圖片文件都下載下來(lái),放到images目錄下伊诵,如果有特殊的文字按鈕或顯示文字樣式单绑,復(fù)制對(duì)應(yīng)的CSS樣式到一個(gè)臨時(shí)文件中。
例如曹宴,第一個(gè)圖標(biāo)【簡(jiǎn)書(shū)】按鈕搂橙,調(diào)試工具里面顯示是這樣的:

2-14-5.jpg

找到img標(biāo)簽的src屬性,這就是圖片文件的網(wǎng)絡(luò)地址笛坦,將這個(gè)地址復(fù)制出來(lái)区转,鼠標(biāo)右鍵單擊這個(gè)鏈接地址,彈出調(diào)試工具的菜單:

2-14-6.jpg

選擇菜單項(xiàng)【Edit Attribute】弯屈,這時(shí)候蜗帜,焦點(diǎn)會(huì)進(jìn)入src的屬性值里面,也就是鏈接地址文本會(huì)被選中:

2-14-7.jpg

鼠標(biāo)光標(biāo)移動(dòng)到這段文本上面资厉,右鍵單擊厅缺,出現(xiàn)對(duì)這段文本的可以操作菜單,選擇菜單項(xiàng)【復(fù)制】宴偿,這段鏈接文本就會(huì)被復(fù)制到系統(tǒng)剪貼板中了湘捎。
然后打開(kāi)一個(gè)新的瀏覽器Tab窗口,將地址復(fù)制到網(wǎng)址輸入框窄刘,然后回車(chē)窥妇,訪問(wèn)這個(gè)圖片:

2-14-8.jpg

鼠標(biāo)光標(biāo)移動(dòng)到圖片上,右鍵單擊娩践,出現(xiàn)菜單:

2-14-9.jpg

選擇菜單項(xiàng)【圖片存儲(chǔ)為...】活翩,彈出文件保存界面:

2-14-10.jpg

選擇要保存到的目錄,然后修改文件名翻伺,然后點(diǎn)擊【保存】按鈕材泄,完成保存這個(gè)圖片的操作。

接下來(lái)吨岭,開(kāi)始分析第2個(gè)圖標(biāo)元素拉宗,指南針圖標(biāo)元素。鼠標(biāo)移動(dòng)到圖標(biāo)上,右鍵菜單【檢查】旦事,調(diào)試工具顯示如下:

2-14-11.jpg

可以看到這個(gè)圖標(biāo)是一個(gè)i標(biāo)簽魁巩,i標(biāo)簽是什么標(biāo)簽?zāi)兀ゲ橐幌耯tml手冊(cè)吧姐浮,它是一個(gè)表示斜體文本的標(biāo)簽谷遂,也就是說(shuō)這個(gè)一個(gè)文本了,那么為何顯示是一個(gè)圖標(biāo)呢单料。繼續(xù)查看埋凯,關(guān)鍵在于這3個(gè)css屬性:iconfont ic-navigation-download menu-icon
可以在右側(cè)的樣式窗口的搜索框Filter里面輸入css的樣式名字來(lái)檢索看它具體的值,輸入iconfont:

2-14-12.jpg

看到了它的一些屬性值了扫尖,例如font-family白对,font-size,font-style换怖,font-weight甩恼,-webkit-font-smoothing等等。
其中font-size是顯示的刪除線沉颂,這表示這個(gè)屬性值對(duì)于當(dāng)前這個(gè)標(biāo)簽元素是無(wú)效的条摸,可能是受父元素或者子元素的影響。
如果有碰到之前沒(méi)有學(xué)習(xí)過(guò)的屬性和屬性值铸屉,可以通過(guò)查看CSS手冊(cè)或者去網(wǎng)上搜索獲得相關(guān)知識(shí)钉蒲。

這些屬性值,是可以通過(guò)臨時(shí)編輯來(lái)體現(xiàn)對(duì)網(wǎng)頁(yè)的不同的影響彻坛。
鼠標(biāo)光標(biāo)移動(dòng)到屬性font-style上面顷啼,可以看到,每個(gè)屬性前面都出現(xiàn)了一個(gè)藍(lán)色的勾選按鈕:

2-14-13.jpg

這里可以把藍(lán)色的勾選去掉昌屉,這樣屬性值就顯示成刪除線了钙蒙,就是屬性不起作用,同時(shí)可以看到體現(xiàn)在網(wǎng)頁(yè)元素的顯示效果上间驮。
例如躬厌,將font-style的勾選去掉,就能看到對(duì)應(yīng)的指南針圖標(biāo)編程斜體了:

2-14-14.jpg

還可以竞帽,直接修改屬性的值扛施,例如鼠標(biāo)點(diǎn)擊font-style的值normal,可以看到此處變成了一個(gè)輸入框:

2-14-15.jpg

可以直接進(jìn)行編輯了屹篓,編輯完成之后回車(chē)鍵疙渣,就能看到新的值對(duì)網(wǎng)頁(yè)的影響了。如果要改回去抱虐,一種辦法是再次編輯值,還可以點(diǎn)擊瀏覽器的刷新按鈕饥脑,重新加載頁(yè)面恳邀,并重新查看這個(gè)元素來(lái)調(diào)試懦冰。

這里可以判斷出,這些屬性都不像是能顯示指南針圖標(biāo)的屬性谣沸,因此繼續(xù)分析另外一個(gè)屬性 menu-icon:

2-14-16.jpg

也可以判斷出刷钢,menu-icon也不是顯示指南針圖標(biāo)的屬性,因此繼續(xù)分析最后一個(gè)屬性 ic-navigation-download:

2-14-17.jpg

可以看到乳附,搜索的時(shí)候關(guān)鍵字可以模糊搜索内地,不需要全部輸入完整。
可以判斷出赋除,這里的content: "\E69A"; 屬性值就是顯示指南針圖標(biāo)的關(guān)鍵屬性值阱缓。
content屬性是CSS3規(guī)范新增的一個(gè)樣式,用來(lái)顯示一些特殊字符举农。這里的"\E69A"就是顯示一個(gè)指南針的字符荆针。

繼續(xù)分析下一個(gè)元素,發(fā)現(xiàn)下載圖標(biāo)也是用content:"\E69D"; 來(lái)顯示的特殊字符颁糟。

碰到這樣的用CSS屬性來(lái)顯示元素的航背,就將這些值記錄到一個(gè)臨時(shí)文件中保存起來(lái),后面編程的時(shí)候會(huì)用到棱貌。

繼續(xù)分析下一個(gè)元素玖媚,搜索框,查看對(duì)應(yīng)的CSS樣式:

2-14-18.jpg

發(fā)現(xiàn)關(guān)鍵是用border-radius:40px;來(lái)實(shí)現(xiàn)圓角的背景色婚脱。
發(fā)現(xiàn)搜索圖標(biāo)也是用content:"\E618";屬性來(lái)實(shí)現(xiàn)的今魔。

2-14-19.jpg

同樣的,Aa圖標(biāo)也是content:"\E6B5";屬性實(shí)現(xiàn)的起惕。
登錄按鈕主要使用log-in樣式涡贱,而注冊(cè)按鈕主要使用sign-up樣式。
寫(xiě)文章按鈕主要使用write-btn樣式惹想,里面的羽毛筆使用content:"\E60E";屬性來(lái)實(shí)現(xiàn)的问词。

接下來(lái),將當(dāng)中的圖片用截屏工具截取出來(lái)嘀粱,保存為head.jpg文件激挪。

2-14-20.jpg

接下來(lái),分析大圖片下面的左邊的一堆圖文標(biāo)簽按鈕锋叨。

2-14-21.jpg

主要是樣式collection和name垄分,然后把文字前面的小圖標(biāo)下載下來(lái)。

接下來(lái)分析【新上榜】這個(gè)圖文按鈕娃磺。

2-14-22.jpg

可以分析出來(lái)薄湿,這就是一個(gè)圖片外面套了一個(gè)a標(biāo)簽。

然后來(lái)分析第一篇文章標(biāo)題鏈接部分。

2-14-23.jpg

可以看到并沒(méi)有太多特殊的技術(shù)實(shí)現(xiàn)豺瘤,都是之前學(xué)習(xí)過(guò)的吆倦。
后面的分析就省略了,把這些樣式的名字和值保存在臨時(shí)文件里面坐求。

文件定義和主體框架和排版

接下來(lái)蚕泽,開(kāi)始編寫(xiě)代碼模仿實(shí)現(xiàn)了。
創(chuàng)建一個(gè)jianshu.html文件和一個(gè)jianshu.css文件桥嗤。

然后開(kāi)始編寫(xiě)主體框架须妻。
jianshu.html代碼如下:

2-14-24.jpg

jianshu.css代碼如下:

2-14-25.jpg

刷新頁(yè)面看看:

2-14-26.jpg

接下來(lái)用table實(shí)現(xiàn)排版并將主要的元素加上去。
jianshu.html代碼如下:

2-14-27.jpg

jianshu.css代碼如下:

2-14-28.jpg

刷新頁(yè)面看看:

2-14-29.jpg

可以看到基本的框架已經(jīng)出現(xiàn)了泛领,接下來(lái)就是逐個(gè)元素修改樣式添加上去荒吏。
下節(jié)課將實(shí)現(xiàn)詳細(xì)的每個(gè)顯示項(xiàng)目和樣式。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末师逸,一起剝皮案震驚了整個(gè)濱河市司倚,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌篓像,老刑警劉巖动知,帶你破解...
    沈念sama閱讀 206,839評(píng)論 6 482
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異员辩,居然都是意外死亡盒粮,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,543評(píng)論 2 382
  • 文/潘曉璐 我一進(jìn)店門(mén)奠滑,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)丹皱,“玉大人,你說(shuō)我怎么就攤上這事宋税√福” “怎么了?”我有些...
    開(kāi)封第一講書(shū)人閱讀 153,116評(píng)論 0 344
  • 文/不壞的土叔 我叫張陵杰赛,是天一觀的道長(zhǎng)呢簸。 經(jīng)常有香客問(wèn)我,道長(zhǎng)乏屯,這世上最難降的妖魔是什么根时? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 55,371評(píng)論 1 279
  • 正文 為了忘掉前任,我火速辦了婚禮辰晕,結(jié)果婚禮上蛤迎,老公的妹妹穿的比我還像新娘。我一直安慰自己含友,他們只是感情好替裆,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,384評(píng)論 5 374
  • 文/花漫 我一把揭開(kāi)白布校辩。 她就那樣靜靜地躺著,像睡著了一般辆童。 火紅的嫁衣襯著肌膚如雪召川。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書(shū)人閱讀 49,111評(píng)論 1 285
  • 那天胸遇,我揣著相機(jī)與錄音,去河邊找鬼汉形。 笑死纸镊,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的概疆。 我是一名探鬼主播逗威,決...
    沈念sama閱讀 38,416評(píng)論 3 400
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼岔冀!你這毒婦竟也來(lái)了凯旭?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書(shū)人閱讀 37,053評(píng)論 0 259
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤使套,失蹤者是張志新(化名)和其女友劉穎罐呼,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體侦高,經(jīng)...
    沈念sama閱讀 43,558評(píng)論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡嫉柴,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,007評(píng)論 2 325
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了奉呛。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片计螺。...
    茶點(diǎn)故事閱讀 38,117評(píng)論 1 334
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖瞧壮,靈堂內(nèi)的尸體忽然破棺而出登馒,到底是詐尸還是另有隱情,我是刑警寧澤咆槽,帶...
    沈念sama閱讀 33,756評(píng)論 4 324
  • 正文 年R本政府宣布陈轿,位于F島的核電站,受9級(jí)特大地震影響罗晕,放射性物質(zhì)發(fā)生泄漏济欢。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,324評(píng)論 3 307
  • 文/蒙蒙 一小渊、第九天 我趴在偏房一處隱蔽的房頂上張望法褥。 院中可真熱鬧,春花似錦酬屉、人聲如沸半等。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 30,315評(píng)論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)杀饵。三九已至莽囤,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間切距,已是汗流浹背朽缎。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 31,539評(píng)論 1 262
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留谜悟,地道東北人话肖。 一個(gè)月前我還...
    沈念sama閱讀 45,578評(píng)論 2 355
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像葡幸,于是被迫代替她去往敵國(guó)和親最筒。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,877評(píng)論 2 345

推薦閱讀更多精彩內(nèi)容

  • 發(fā)現(xiàn) 關(guān)注 消息 iOS 第三方庫(kù)蔚叨、插件床蜘、知名博客總結(jié) 作者大灰狼的小綿羊哥哥關(guān)注 2017.06.26 09:4...
    肇東周閱讀 12,029評(píng)論 4 62
  • Android 自定義View的各種姿勢(shì)1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 171,520評(píng)論 25 707
  • 不知道為什么邢锯,今天特別想寫(xiě)寫(xiě)奶奶。但可怕的時(shí)間啊搀别,下筆的時(shí)候弹囚,才知道我在漸漸忘卻她,竟然不知道從什么地方寫(xiě)起了领曼。是...
    藏葉庭閱讀 368評(píng)論 0 1
  • 今天又是一個(gè)陰雨綿綿的曰子鸥鹉,紿女兒布置了作業(yè),4張?jiān)嚲硎荆衔鐑蓮埢偕挛鐑蓮垺P〖一锒甲鐾炅耍m然不是很情愿单刁,額外的...
    尚源希媽媽閱讀 142評(píng)論 0 0