版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、HYPERLINK /TankXiao/archive/2012/02/06/2337728.htmlFiddler 教程Fiddler是最強(qiáng)大最好用的Web調(diào)試工具之一,它能記錄所有客戶端和服務(wù)器的http和https請求,允許你監(jiān)視,設(shè)置斷點(diǎn),甚至修改輸入輸出數(shù)據(jù). 使用Fiddler無論對開發(fā)還是測試來說,都有很大的幫助。閱讀目錄HYPERLINK /TankXiao/archive/2012/02/06/2337728.html#introduceFiddler的基本介紹HYPERLINK /TankXiao/archive/2012/02/06/2337728.html#yuanli
2、Fiddler的工作原理HYPERLINK /TankXiao/archive/2012/02/06/2337728.html#qita同類的其它工具HYPERLINK /TankXiao/archive/2012/02/06/2337728.html#firefoxFiddler如何捕獲Firefox的會話HYPERLINK /TankXiao/archive/2012/02/06/2337728.html#fiddlerhookFirefox 中使用Fiddler插件HYPERLINK /TankXiao/archive/2012/02/06/2337728.html#httpsFiddl
3、er如何捕獲HTTPS會話HYPERLINK /TankXiao/archive/2012/02/06/2337728.html#basicFiddler的基本界面HYPERLINK /TankXiao/archive/2012/02/06/2337728.html#summaryviewFiddler的統(tǒng)計(jì)視圖HYPERLINK /TankXiao/archive/2012/02/06/2337728.html#quickexecQuickExec命令行的使用HYPERLINK /TankXiao/archive/2012/02/06/2337728.html#requestFiddler中
4、設(shè)置斷點(diǎn)修改RequestHYPERLINK /TankXiao/archive/2012/02/06/2337728.html#responseFiddler中設(shè)置斷點(diǎn)修改ResponseHYPERLINK /TankXiao/archive/2012/02/06/2337728.html#autoresponderFiddler中創(chuàng)建AutoResponder規(guī)則HYPERLINK /TankXiao/archive/2012/02/06/2337728.html#filterFiddler中如何過濾會話HYPERLINK /TankXiao/archive/2012/02/06/2337
5、728.html#compareFiddler中會話比較功能HYPERLINK /TankXiao/archive/2012/02/06/2337728.html#encodingtoolFiddler中提供的編碼小工具HYPERLINK /TankXiao/archive/2012/02/06/2337728.html#findsessionFiddler中查詢會話HYPERLINK /TankXiao/archive/2012/02/06/2337728.html#savesessionFiddler中保存會話HYPERLINK /TankXiao/archive/2012/02/06/2
6、337728.html#scriptFiddler的script系統(tǒng)HYPERLINK /TankXiao/archive/2012/02/06/2337728.html#vs如何在VS調(diào)試網(wǎng)站的時(shí)候使用FiddlerHYPERLINK /TankXiao/archive/2012/02/06/2337728.html#decodeResponseResponse 是亂碼的Fiddler的基本介紹Fiddler的官方網(wǎng)站: HYPERLINK /Fiddler官方網(wǎng)站提供了大量的幫助文檔和視頻教程, 這是學(xué)習(xí)Fiddler的最好資料。Fiddler是最強(qiáng)大最好用的Web調(diào)試工具之一,它能記錄所
7、有客戶端和服務(wù)器的http和https請求,允許你監(jiān)視,設(shè)置斷點(diǎn),甚至修改輸入輸出數(shù)據(jù),F(xiàn)iddler包含了一個(gè)強(qiáng)大的基于事件腳本的子系統(tǒng),并且能使用.net語言進(jìn)行擴(kuò)展你對HTTP 協(xié)議越了解, 你就能越掌握Fiddler的使用方法. 你越使用Fiddler,就越能幫助你了解HTTP協(xié)議.Fiddler無論對開發(fā)人員或者測試人員來說,都是非常有用的工具Fiddler的工作原理Fiddler 是以代理web服務(wù)器的形式工作的,它使用代理地址:, 端口:8888. 當(dāng)Fiddler退出的時(shí)候它會自動注銷,這樣就不會影響別的程序。不過如果Fiddler非正常退出,這時(shí)候因?yàn)镕iddler沒有自動注
8、銷,會造成網(wǎng)頁無法訪問。解決的辦法是重新啟動下Fiddler. 同類的其它工具同類的工具有: httpwatch, firebug, wireshark Fiddler 如何捕獲Firefox的會話能支持HTTP代理的任意程序的數(shù)據(jù)包都能被Fiddler嗅探到,F(xiàn)iddler的運(yùn)行機(jī)制其實(shí)就是本機(jī)上監(jiān)聽8888端口的HTTP代理。 Fiddler2啟動的時(shí)候默認(rèn)IE的代理設(shè)為了:8888,而其他瀏覽器是需要手動設(shè)置的,所以將Firefox的代理改為:8888就可以監(jiān)聽數(shù)據(jù)了。Firefox 上通過如下步驟設(shè)置代理點(diǎn)擊: Tools - Options, 在Options 對話框上點(diǎn)擊Advan
9、ced tab - network tab - setting. Firefox 中安裝Fiddler插件修改Firefox 中的代理比較麻煩, 不用fiddler的時(shí)候還要去掉代理。 麻煩推薦你在firefox中使用fiddler hook 插件, 這樣你非常方便的使用Fiddler獲取firefox中的request 和response當(dāng)你安裝fiddler后, 就已經(jīng)裝好了Fiddler hook插件, 你需要到firefox中去啟用這個(gè)插件打開firefox tools-Add ons - Extensions 啟動 FiddlerHook Fiddler如何捕獲HTTPS會話默認(rèn)下,
10、Fiddler不會捕獲HTTPS會話,需要你設(shè)置下, 打開Fiddler Tool-Fiddler Options-HTTPS tab 選中checkbox, 彈出如下的對話框,點(diǎn)擊YES點(diǎn)擊Yes 后,就設(shè)置好了Fiddler的基本界面 看看Fiddler的基本界面 Inspectors tab下有很多查看Request或者Response的消息。 其中Raw Tab可以查看完整的消息,Headers tab 只查看消息中的header. 如下圖 Fiddler的HTTP統(tǒng)計(jì)視圖通過陳列出所有的HTTP通信量,F(xiàn)iddler可以很容易的向您展示哪些文件生成了您當(dāng)前請求的頁面。使用Statis
11、tics頁簽,用戶可以通過選擇多個(gè)會話來得來這幾個(gè)會話的總的信息統(tǒng)計(jì),比如多個(gè)請求和傳輸?shù)淖止?jié)數(shù)。選擇第一個(gè)請求和最后一個(gè)請求,可獲得整個(gè)頁面加載所消耗的總體時(shí)間。從條形圖表中還可以分別出哪些請求耗時(shí)最多,從而對頁面的訪問進(jìn)行訪問速度優(yōu)化QuickExec命令行的使用Fiddler的左下角有一個(gè)命令行工具叫做QuickExec,允許你直接輸入命令。常見得命令有help 打開官方的使用頁面介紹,所有的命令都會列出來cls 清屏 (Ctrl+x 也可以清屏)select 選擇會話的命令?.png 用來選擇png后綴的圖片bpu 截獲request Fiddler中設(shè)置斷點(diǎn)修改RequestHYPE
12、RLINK /TankXiao/admin/作者:小坦克 http:/TankXiao/作者:小坦克 Fiddler最強(qiáng)大的功能莫過于設(shè)置斷點(diǎn)了,設(shè)置好斷點(diǎn)后,你可以修改httpRequest 的任何信息包括host, cookie或者表單中的數(shù)據(jù)。設(shè)置斷點(diǎn)有兩種方法第一種:打開Fiddler 點(diǎn)擊Rules- Automatic Breakpoint -Before Requests(這種方法會中斷所有的會話)如何消除命令呢? 點(diǎn)擊Rules- Automatic Breakpoint -Disabled第二種: 在命令行中輸入命令: bpu (這種方法只會中斷)如何消除命令呢? 在命令行中
13、輸入命令 bpu 看個(gè)實(shí)例,模擬博客園的登錄, 在IE中打開博客園的登錄頁面,輸入錯(cuò)誤的用戶名和密碼,用Fiddler中斷會話,修改成正確的用戶名密碼。這樣就能成功登錄1. 用IE 打開博客園的登錄界面 /login.aspx2. 打開Fiddler, 在命令行中輸入bpu /login.aspx3. 輸入錯(cuò)誤的用戶名和密碼 點(diǎn)擊登錄4. Fiddler 能中斷這次會話,選擇被中斷的會話,點(diǎn)擊Inspectors tab下的WebForms tab 修改用戶名密碼,然后點(diǎn)擊Run to Completion 如下圖所示。5. 結(jié)果是正確地登錄了博客園 Fiddler中設(shè)置斷點(diǎn)修改Respons
14、e當(dāng)然Fiddler中也能修改Response第一種:打開Fiddler 點(diǎn)擊Rules- Automatic Breakpoint -After Response (這種方法會中斷所有的會話)如何消除命令呢? 點(diǎn)擊Rules- Automatic Breakpoint -Disabled第二種: 在命令行中輸入命令: bpuafter (這種方法只會中斷)如何消除命令呢? 在命令行中輸入命令 bpuafter,具體用法和上節(jié)差不多,就不多說了。Fiddler中創(chuàng)建AutoResponder規(guī)則Fiddler 的AutoResponder tab允許你從本地返回文件,而不用將http requ
15、est 發(fā)送到服務(wù)器上??磦€(gè)實(shí)例. 1. 打開博客園首頁,把博客園的logo圖片保存到本地,并且對圖片做些修改。2. 打開Fiddler 找到logo圖片的會話, /images/logo_2012_lantern_festival.gif, 把這個(gè)會話拖到AutoResponer Tab下3. 選擇Enable automatic reaponses 和Unmatched requests passthrough4. 在下面的Rule Editor 下面選擇 Find a file. 選擇本地保存的圖片. 最后點(diǎn)擊Save 保存下。5. 再用IE博客園首頁, 你會看到首頁的圖片用的是本地的。
16、 Fiddler中如何過濾會話每次使用Fiddler, 打開一個(gè)網(wǎng)站,都能在Fiddler中看到幾十個(gè)會話,看得眼花繚亂。最好的辦法是過濾掉一些會話,比如過濾掉圖片的會話. Fiddler中有過濾的功能, 在右邊的Filters tab中,里面有很多選項(xiàng), 稍微研究下,就知道怎么用。 Fiddler中會話比較功能選中2個(gè)會話,右鍵然后點(diǎn)擊Compare,就可以用WinDiff來比較兩個(gè)會話的不同了 (當(dāng)然需要你安裝WinDiff) Fiddler中提供的編碼小工具點(diǎn)擊Fiddler 工具欄上的TextWizard, 這個(gè)工具可以Encode和Decode string.Fiddler中查詢會話
17、用快捷鍵Ctrl+F 打開 Find Sessions的對話框,輸入關(guān)鍵字查詢你要的會話。 查詢到的會話會用黃色顯示Fiddler中保存會話有些時(shí)候我們需要把會話保存下來,以便發(fā)給別人或者以后去分析。 保存會話的步驟如下:選擇你想保存的會話,然后點(diǎn)擊File-Save-Selected SessionsFiddler的script系統(tǒng)Fiddler最復(fù)雜的莫過于script系統(tǒng)了 官方的幫助文檔:HYPERLINK /Fiddler/dev/ScriptSamples.asp/Fiddler/dev/ScriptSamples.asp首先先安裝SyntaxView插件,Inspectors t
18、ab-Get SyntaxView tab-Download and Install SyntaxView Now. 如下圖 安裝成功后Fiddler 就會多了一個(gè)Fiddler Script tab, 如下圖在里面我們就可以編寫腳本了, 看個(gè)實(shí)例 讓所有cnblogs的會話都顯示紅色。把這段腳本放在OnBeforeRequest(oSession: Session) 方法下,并且點(diǎn)擊Save script if (oSession.HostnameIs() oSessionui-color = red; 這樣所有的cnblogs的會話都會顯示紅色 如何在VS調(diào)試網(wǎng)站的時(shí)候使用Fiddler我
19、們在用visual stuido 開發(fā)ASP.NET網(wǎng)站的時(shí)候也需要用Fiddler來分析HTTP, 默認(rèn)的時(shí)候Fiddler是不能嗅探到localhost的網(wǎng)站。不過只要在localhost后面加個(gè)點(diǎn)號,F(xiàn)iddler就能嗅探到。例如:原本ASP.NET的地址是 http:/localhost:2391/Default.aspx, 加個(gè)點(diǎn)號后,變成 http:/localhost.:2391/Default.aspx 就可以了 第二個(gè)辦法就是在hosts文件中加入 localsite如何你訪問http:/localsite:端口號 。 這樣Fiddler也能截取到了。 Response 是亂
20、碼的有時(shí)候我們看到Response中的HTML是亂碼的, 這是因?yàn)镠TML被壓縮了, 我們可以通過兩種方法去解壓縮。1. 點(diǎn)擊Response Raw上方的Response is encoded any may need to be decoded before inspection. click here to transform2. 選中工具欄中的Decode。 這樣會自動解壓縮。原文出處:HYPERLINK /TankXiao/archive/2012/02/06/2337728.html/TankXiao/archive/2012/02/06/2337728.html 附錄資料:web
21、前端面試題1. W3C標(biāo)準(zhǔn)有哪些?W3C推行的主要規(guī)范有HTML,CSS,XML,XHTML和DOM(Document Object Model)。2. 談?wù)凧s的內(nèi)存泄露問題。3. 談?wù)剬tml 5的了解。4. 談?wù)剬SS 3的了解。5. 用js實(shí)現(xiàn)隨即選取10-100之間的10個(gè)數(shù)字,存入一個(gè)數(shù)組,并排序。var iArray = ;funtion getRandom(istart, iend) var iChoice = istart - iend +1; return Math.floor(Math.random() * iChoice + istart;for(var i=0;
22、i10; i+) iArray.push(getRandom(10,100);iArray.sort();6. 把兩個(gè)數(shù)組合并,并刪除第二個(gè)元素。var array1 = a,b,c;var bArray = d,e,f;var cArray = array1.concat(bArray);cArray.splice(1,1);7. Js面向?qū)ο蟮膸追N方式。8. 請談?wù)勗头绞綐?gòu)造對象的特點(diǎn)。9. 在Css中那個(gè)屬性會影響dom讀取文檔流的順序。答: float屬性。10. 請介紹幾種用div實(shí)現(xiàn)兩列布局的方案(兼容),另外要考慮文檔流的加載。11. 談?wù)刢ss在瀏覽器中的兼容問題,詳細(xì)談?wù)処
23、E6的一些bug,以及解決方案。12. 談?wù)勀銓﹂]包的理解。以及如何實(shí)現(xiàn)js方法的重寫。HTML & CSS1.Doctype? 嚴(yán)格模式與混雜模式-如何觸發(fā)這兩種模式,區(qū)分它們有何意義? 首先我講講如何觸發(fā)兩種模式: 加入xml頭部聲明可以觸發(fā)IE瀏覽器的Quirks mode,觸發(fā)之后,瀏覽器解析方式就和IE5.5一樣,擁有IE5.5一樣的bug和其他問題,行為(Javascript)也是如此。 IE6的觸發(fā) 在XHTML的DOCTYPE前加入XML聲明 IE7的觸發(fā) 在XML聲明和XHTML的DOCTYPE之間加入HTML注釋 IE6和IE7都可以觸發(fā)的 在HTML4.01的DOCTYP
24、E文檔頭部加入HTML注釋 其次是這樣的意義 各個(gè)瀏覽器的混雜模式,基本就是各個(gè)瀏覽器的私有模式,不相互兼容。所以,除非是為了兼容的問題,比如你不想修改很久很久以前做的IE ONLY的網(wǎng)頁,否則刻意觸發(fā)混雜模式?jīng)]有任何意義。2:行內(nèi)元素有哪些?塊級元素有哪些?CSS的盒模型?一.行內(nèi)元素和塊級元素有哪些?塊級元素information on authorlong quotationpush buttontable captiondefinition descriptiondeleted textgeneric language/style containerdefinition listdef
25、inition termform control groupinteractive formheadingheadingheadingheadingheadingheadinghorizontal ruleinline subwindowinserted textfieldset legendlist itemclient-side image mapalternate content container for non frame-based renderingalternate content container for non script-based renderinggeneric
26、embedded objectordered listparagraphpreformatted texttabletable bodytable data celltable footertable header celltable headertable rowunordered list行內(nèi)元素anchorabbreviated formacronymbold text styleI18N BiDi over-ridelarge text styleforced line breakpush buttoncitationcomputer code fragmentdeleted text
27、instance definitionemphasisitalic text styleinline subwindowEmbedded imageform controlinserted texttext to be entered by the userform field label textclient-side image mapgeneric embedded objectshort inline quotationsample program output, scripts, etc.option selectorsmall text stylegeneric language/
28、style containerstrong emphasissubscriptsuperscriptmulti-line text fieldteletype or monospaced text styleinstance of a variable or program argument二.行內(nèi)元素與塊級元素有什么不同?1.尺寸-塊級元素和行內(nèi)元素之間的一個(gè)重要的不同點(diǎn)行內(nèi)元素和widthW3C CSS2 標(biāo)準(zhǔn)規(guī)定行內(nèi)元素、非置換元素不會應(yīng)用width屬性。以下例子中,對行內(nèi)元素應(yīng)用了width:200px,你可以看到,根本就沒有什么效果。行內(nèi)元素和heightW3C CSS2 標(biāo)準(zhǔn)規(guī)定行
29、內(nèi)元素、非置換元素不會應(yīng)用height屬性,但是盒子高度可以通過line-height來指定。以下例子,對行內(nèi)元素應(yīng)用了height:50px,你可以看到什么效果都沒。行內(nèi)元素和padding你可以給行內(nèi)元素設(shè)置padding,但只有padding-left和padding-right生效。以下例子,行內(nèi)元素應(yīng)用了padding:50px。你可以看到對左右的內(nèi)容有影響,但是對上下沒影響。行內(nèi)元素和margingmargin屬性也是和padding屬性一樣,對行內(nèi)元素左右有效,上下無效。下面的例子,對應(yīng)用了margin:50px,你可以看到左右邊緣是生效了但是內(nèi)容上下卻沒有。記住對行內(nèi)元素設(shè)置寬
30、度width 無效。設(shè)置高度height 無效,可以通過line-height來設(shè)置。設(shè)置margin 只有左右margin有效,上下無效。設(shè)置padding 只有左右padding有效,上下則無效。注意元素范圍是增大了,但是對元素周圍的內(nèi)容是沒影響的,看圖上效果就知道了 盒子模型W3C 組織建議把所有網(wǎng)頁上的對像都放在一個(gè)盒(box)中,設(shè)計(jì)師可以通過創(chuàng)建定義來控制這個(gè)盒的屬性,這些對像包括段落、列表、標(biāo)題、圖片以及層。盒模型主 要定義四個(gè)區(qū)域:內(nèi)容(content)、邊框距(padding)、邊界(border)和邊距(margin)。對于初學(xué)者,經(jīng)常會搞不清楚 margin,backgr
31、ound-color,background- image,padding,content,border之間的層次、關(guān)系和相互影響。這里提供一張盒模型的3D示意圖,希望便于你的理解和記憶。每個(gè)HTML元素都可以看作一個(gè)裝了東西的盒子,盒子里面的內(nèi)容到盒子的邊框之間的距離即填充(padding),盒子本身有邊框(border),而盒子邊框外和其他盒子之間,還有邊界(margin)。盒模型的實(shí)際寬度關(guān)于盒模型,還有以下幾點(diǎn)需要注意:對于塊級元素(display:block),未浮動的垂直相鄰元素的上邊界和下邊界會被壓縮,例如:有上下2個(gè)元素,上元素的下邊界為5px,下面元素的上邊界為20px,則實(shí)際
32、2個(gè)元素的間距為20px(2個(gè)邊界值中較大的值)。如圖所示。注1. 塊級元素(display: block)每個(gè)塊級元素都從一個(gè)新行開始,而且其后的元素也需另起一行開始,標(biāo)題、段落、表格、層、body等都是塊級元素。塊級元素只能作為其他塊級元素的子元素,而且需要一定的條件。內(nèi)聯(lián)元素,例如、等,定義上下邊界不會影響到行高(line-height),內(nèi)聯(lián)元素距離上一行元素的距離由行高決定,而不是填充或邊界。注2. 內(nèi)聯(lián)元素(display:inline)內(nèi)聯(lián)元素不需要在新行內(nèi)顯示,而且也不強(qiáng)迫其后的元素?fù)Q行,如a、em、span等都為內(nèi)聯(lián)元素。內(nèi)聯(lián)元素可以為任何其他元素的子元素。浮動元素(無論左或
33、者右浮動)邊界不壓縮,且若浮動元素不聲明寬度,則其寬度趨向于0,即壓縮到其內(nèi)容能承受的最小寬度。如果盒中沒有內(nèi)容,則即使定義了寬度和高度都為100%,實(shí)際上只占0%,因此不會被顯示,此點(diǎn)在采取層布局的時(shí)候需特別注意。邊界值可為負(fù),其顯示效果各瀏覽器可能不相同。填充值不可為負(fù)。邊框默認(rèn)的樣式(border-style)為不顯示(none)。3.CSS引入的方式有哪些? link和import的區(qū)別是?本質(zhì)上,這兩種方式都是為了加載CSS文件,但還是存在著細(xì)微的差別。差別1:老祖宗的差別。link屬于XHTML標(biāo)簽,而import完全是CSS提供的一種方式。 HYPERLINK /xhtml/ta
34、g_link/ link標(biāo)簽除了可以加載CSS外,還可以做很多其它的事情,比如定義RSS,定義 HYPERLINK /xhtml/attribute_rel/ rel連接屬性等,import就只能加載CSS了。差別2:加載順序的差別。當(dāng)一個(gè)頁面被加載的時(shí)候(就是被瀏覽者瀏覽的時(shí)候),link引用的CSS會同時(shí)被加載,而import引用的CSS會等到頁面全部被下載完再被加載。所以有時(shí)候?yàn)g覽import加載CSS的頁面時(shí)開始會沒有樣式(就是閃爍),網(wǎng)速慢的時(shí)候還挺明顯(夢之都加載CSS的方式就是使用import,我一邊下載一邊瀏覽夢之都網(wǎng)頁時(shí),就會出現(xiàn)上述問題)。差別3:兼容性的差別。由于 HYP
35、ERLINK /TR/CSS21/cascade.html l at-imp%3Cwbr%3Eort import是CSS2.1提出的所以老的瀏覽器不支持,import只有在IE5以上的才能識別,而link標(biāo)簽無此問題。差別4:使用dom控制樣式時(shí)的差別。當(dāng)使用javascript控制dom去改變樣式的時(shí)候,只能使用link標(biāo)簽,因?yàn)閕mport不是dom可以控制的。大致就這幾種差別了(如果還有什么差別,大家告訴我,我再補(bǔ)充上去),其它的都一樣,從上面的分析來看,還是使用link標(biāo)簽比較好。標(biāo)準(zhǔn)網(wǎng)頁制作加載CSS文件時(shí),還應(yīng)該選定要加載的媒體(media),比如screen,print,或者全
36、部all等。這個(gè)我到CSS高級教程中再給大家介紹。注:1,網(wǎng)友comehope在留言中提出了另一種區(qū)別。差別5:import可以在css中再次引入其他樣式表,比如可以創(chuàng)建一個(gè)主樣式表,在主樣式表中再引入其他的樣式表,如:main.css-import “sub1.css”;import “sub2.css”;sub1.css-p color:red;sub2.css-.myclass color:blue這樣更利于修改和擴(kuò)展猴 子提示:這樣做有一個(gè)缺點(diǎn),會對網(wǎng)站服務(wù)器產(chǎn)生過多的HTTP請求,以前是一個(gè)文件,而現(xiàn)在卻是兩個(gè)或更多文件了,服務(wù)器的壓力增大,瀏覽量大的網(wǎng)站還是 謹(jǐn)慎使用。有興趣的可以
37、觀察一下像新浪等網(wǎng)站的首頁或欄目首頁代碼,他們總會把css或js直接寫在html里,而不用外部文件。4.CSS選擇符有哪些?哪些屬性可以繼承?優(yōu)先級算法如何計(jì)算?內(nèi)聯(lián)和important哪個(gè)優(yōu)先級高?5:前端頁面有哪三層構(gòu)成,分別是什么?作用是什么?最準(zhǔn)確的網(wǎng)頁設(shè)計(jì)思路是把網(wǎng)頁分成三個(gè)層次,即:結(jié)構(gòu)層、表示層、行為層。網(wǎng)頁的結(jié)構(gòu)層(structural layer)由 HTML 或 XHTML 之類的標(biāo)記語言負(fù)責(zé)創(chuàng)建。標(biāo)簽,也就是那些出現(xiàn)在尖括號里的單詞,對網(wǎng)頁內(nèi)容的語義含義做出了描述,但這些標(biāo)簽不包含任何關(guān)于如何顯示有關(guān)內(nèi)容的信息。例如,P 標(biāo)簽表達(dá)了這樣一種語義:“這是一個(gè)文本段。”網(wǎng)頁的
38、表示層(presentation layer) 由 CSS 負(fù)責(zé)創(chuàng)建。 CSS 對“如何顯示有關(guān)內(nèi)容”的問題做出了回答。網(wǎng)頁的行為層(behavior layer)負(fù)責(zé)回答“內(nèi)容應(yīng)該如何對事件做出反應(yīng)”這一問題。這是 Javascript 語言和 DOM 主宰的領(lǐng)域。8:你做的頁面在哪些流覽器測試過?這些瀏覽器的內(nèi)核分別是什么?經(jīng)常遇到的瀏覽器的兼容性有哪些?怎么會出現(xiàn)?解決方法是什么?點(diǎn)評:css的兼容性也是大家關(guān)注的熱點(diǎn)。大家一定要注意多測試。Javascript 多瀏覽器兼容性問題及解決方案兼容性處理要點(diǎn) 1、DOCTYPE 影響 CSS 處理 2、FF: 設(shè)置 padding 后, d
39、iv 會增加 height 和 width, 但 IE 不會, 故需要用 !important 多設(shè)一個(gè) height 和 width 3、FF: 支持 !important, IE 則忽略, 可用 !important 為 FF 特別設(shè)置樣式 4、div 的垂直居中問題: vertical-align:middle; 將行距增加到和整個(gè)DIV一樣高 line-height:200px; 然后插入文字,就垂直居中了。缺點(diǎn)是要控制內(nèi)容不要換行 5、在mozilla firefox和IE中的BOX模型解釋不一致導(dǎo)致相差2px解決方法: divmargin:30px!important;margin
40、:28px; 注意這兩個(gè)margin的順序一定不能寫反,!important這個(gè)屬性IE不能識別,但別的瀏覽器可以識別。所以在IE下其實(shí)解釋成這樣: divmaring:30px;margin:28px 重復(fù)定義的話按照最后一個(gè)來執(zhí)行,所以不可以只寫margin:XXpx!important; 瀏覽器差異 1、ul和ol列表縮進(jìn)問題 消除ul、ol等列表的縮進(jìn)時(shí),樣式應(yīng)寫成:list-style:none;margin:0px;padding:0px; 其中margin屬性對IE有效,padding屬性對FireFox有效。 注 經(jīng)驗(yàn)證,在IE中,設(shè)置margin:0px可以去除列表的上下左右
41、縮進(jìn)、空白以及列表編號或圓點(diǎn),設(shè)置padding對樣式?jīng)]有影響;在 Firefox 中,設(shè)置margin:0px僅僅可以去除上下的空白,設(shè)置padding:0px后僅僅可以去掉左右縮進(jìn),還必須設(shè)置list- style:none才 能去除列表編號或圓點(diǎn)。也就是說,在IE中僅僅設(shè)置margin:0px即可達(dá)到最終效果,而在Firefox中必須同時(shí)設(shè)置margin:0px、 padding:0px以及l(fā)ist-style:none三項(xiàng)才能達(dá)到最終效果。 2、CSS透明問題 IE:filter:progid:DXImageTransform.Microsoft.Alpha(style=0,opaci
42、ty=60)。 FF:opacity:0.6。 注 最好兩個(gè)都寫,并將opacity屬性放在下面。 3、CSS圓角問題 IE:ie7以下版本不支持圓角。 FF: -moz-border-radius:4px,或者-moz-border-radius-topleft:4px;-moz- border- radius-topright:4px;-moz-border-radius-bottomleft:4px;-moz- border- radius- bottomright:4px;。 注 圓角問題是CSS中的經(jīng)典問題,建議使用JQuery框架集來設(shè)置圓角,讓這些復(fù)雜的問題留給別人去想吧。不過j
43、Query的圓角只看到支持整個(gè)區(qū)域的圓角,沒有支持邊框的圓角,不過這個(gè)邊框的圓角可以通過一些簡單的手段來實(shí)現(xiàn),下次有機(jī)會介紹下。 4、cursor:hand VS cursor:pointer 問題說明:firefox不支持hand,但ie支持pointer ,兩者都是手形指示。 解決方法:統(tǒng)一使用pointer。 5、字體大小定義不同 對字體大小small的定義不同,F(xiàn)irefox中為13px,而IE中為16px,差別挺大。 解決方法:使用指定的字體大小如14px。 并列排列的多個(gè)元素(圖片或者鏈接)的div和div之間,代碼中的空格和回車在firefox中都會被忽略,而IE中卻默認(rèn)顯示為空
44、格(約3px)。 6、CSS雙線凹凸邊框 IE:border:2px outset;。 FF: -moz-border-top-colors: #d4d0c8 white;-moz-border-left-colors: #d4d0c8 white;-moz-border-right-colors:#404040 #808080;-moz-border-bottom-colors:#404040 #808080; 瀏覽器bug 1、IE的雙邊距bug 設(shè)置為float的div在ie下設(shè)置的margin會加倍。這是一個(gè)ie6都存在的bug。 解決方案:在這個(gè)div里面加上display:inli
45、ne; 例如: 相應(yīng)的css為 以下為引用的內(nèi)容: 復(fù)制代碼代碼如下:#IamFloat float:left; margin:5px;/*IE下理解為10px*/ display:inline;/*IE下再理解為5px*/ #IamFloat float:left; margin:5px;/*IE下理解為10px*/ display:inline;/*IE下再理解為5px*/ 關(guān) 于CSS中的問題實(shí)在太多了,甚至同樣的CSS定義在不同的頁面標(biāo)準(zhǔn)中的顯示效果都是不一樣的。一個(gè)合乎發(fā)展的建議是,頁面采用標(biāo)準(zhǔn)XHTML標(biāo)準(zhǔn)編寫, 較少使用table,CSS定義盡量依照標(biāo)準(zhǔn)DOM,同時(shí)兼顧IE、Fi
46、refox、Opera等主流瀏覽器。很多情況下,F(xiàn)F和 Opera的CSS解釋標(biāo)準(zhǔn)更貼近CSS標(biāo)準(zhǔn),也更具有規(guī)范性。 2、IE選擇符空格BUG 今天在給博客的段落樣式設(shè)置首字符樣式的時(shí)候發(fā)現(xiàn),原來一個(gè)空格也可以使樣式失效。 請看以下代碼: 復(fù)制代碼代碼如下: 對于世界而言,你是一個(gè)人;但是對于某個(gè)人,你是他的整個(gè)世界??v然傷心,也不要愁眉不展,因?yàn)槟悴恢钦l會愛上你的笑容。 /code 復(fù)制代碼代碼如下: 對于世界而言,你是一個(gè)人;但是對于某個(gè)人,你是他的整個(gè)世界??v然傷心,也不要愁眉不展,因?yàn)槟悴恢钦l會愛上你的笑容。 這 段代碼對的首字符樣式定義在IE6上看是沒有效果的(IE7沒測試),而
47、在p:first-letter和font- size:300%加上空格,也就是p:first-letter font-size:300%后,顯示就正常了。但是同樣的代碼,在FireFox下看是正常的。按道理說,p:first- letterfont-size:300%的寫法是沒錯(cuò)的。那么問題出在哪里呢?答案是偽類中的連字符”-”。IE有個(gè)BUG,在處理偽類時(shí),如果偽 類的名稱中帶有連字符”-”,偽類名稱后面就得跟一個(gè)空格,不然樣式的定義就無效。而在FF中,加不加空格都可以正常處理。對css縮寫的支持問題:不論是ie 還是ff對css的縮寫都有一小點(diǎn)問題比如border: 0 xp solid
48、#fff;兩個(gè)瀏覽器支持都沒有問題但對于四個(gè)邊的magin不同情況下,就不能用這種縮寫了,無論是ie還是ff又會出現(xiàn)邊界解釋錯(cuò)誤,而導(dǎo)致頁面變形正確縮寫:border-width:0px 1px 2px 3px;border-style:solid;border-color:#fff;第二點(diǎn)是ie對于css的magin padding 等默認(rèn)值為0px,但ff卻不一樣,為了保持外觀的統(tǒng)一性,即使padding為0你也要寫上,以免ff在瀏覽中的錯(cuò)位。IE與Firefox的CSS兼容大全1.DOCTYPE 影響 CSS 處理2.FF: div 設(shè)置 margin-left, margin-righ
49、t 為 auto 時(shí)已經(jīng)居中, IE 不行3.FF: body 設(shè)置 text-align 時(shí), div 需要設(shè)置 margin: auto(主要是 margin-left,margin-right) 方可居中4.FF: 設(shè)置 padding 后, div 會增加 height 和 width, 但 IE 不會, 故需要用 !important 多設(shè)一個(gè) height 和 width5.FF: 支持 !important, IE 則忽略, 可用 !important 為 FF 特別設(shè)置樣式,值得注意的是,一定要將xxxx !important 這句放置在另一句之上6.div 的垂直居中問題:
50、vertical-align:middle;將行距增加到和整個(gè)DIV一樣高 line-height:200px; 然后插入文字,就垂直居中了。缺點(diǎn)是要控制內(nèi)容不要換行7.cursor: pointer 可以同時(shí)在 IE FF 中顯示游標(biāo)手指狀, hand 僅 IE 可以8.FF: 鏈接加邊框和背景色,需設(shè)置 display: block, 同時(shí)設(shè)置 float: left 保證不換行。參照 menubar, 給 a 和 menubar 設(shè)置高度是為了避免底邊顯示錯(cuò)位, 若不設(shè) height, 可以在 menubar 中插入一個(gè)空格。9.在mozilla firefox和IE中的BOX模型解釋不
51、一致導(dǎo)致相差2px解決方法:divmargin:30px!important;margin:28px;注意這兩個(gè)margin的順序一定不能寫反,據(jù)阿捷的說法!important這個(gè)屬性IE不能識別,但別的瀏覽器可以識別。所以在IE下其實(shí)解釋成這樣:divmaring:30px;margin:28px重復(fù)定義的話按照最后一個(gè)來執(zhí)行,所以不可以只寫margin:XXpx!important;10.IE5 和IE6的BOX解釋不一致IE5下divwidth:300px;margin:0 10px 0 10px;div 的寬度會被解釋為300px-10px(右填充)-10px(左填充)最終div的寬度
52、為280px,而在IE6和其他瀏覽器上寬度則是以 300px+10px(右填充)+10px(左填充)=320px來計(jì)算的。這時(shí)我們可以做如下修改divwidth:300px!important;width :340px;margin:0 10px 0 10px關(guān)于這個(gè)是什么我也不太明白,只知道IE5和firefox都支持但I(xiàn)E6不支持,如果有人理解的話,請告訴我一聲,謝了?。海?1.ul標(biāo)簽在Mozilla中默認(rèn)是有padding值的,而在IE中只有margin有值所以先定義ulmargin:0;padding:0;就能解決大部分問題注意事項(xiàng):1、float的div一定要閉合。例如:(其中fl
53、oatA、floatB的屬性已經(jīng)設(shè)置為float:left;)這里的NOTfloatC并不希望繼續(xù)平移,而是希望往下排。這段代碼在IE中毫無問題,問題出在FF。原因是NOTfloatC并非float標(biāo)簽,必須將float標(biāo)簽閉合。在之間加上這個(gè)div一定要注意聲明位置,一定要放在最恰當(dāng)?shù)牡胤?,而且必須與兩個(gè)具有float屬性的div同級,之間不能存在嵌套關(guān)系,否則會產(chǎn)生異常。并且將clear這種樣式定義為為如下即可:.clearclear:both;此外,為了讓高度能自動適應(yīng),要在wrapper里面加上overflow:hidden;9.如何居中一個(gè)浮動元素?設(shè)置容器的浮動方式為相對定位然后確
54、定容器的寬高 比如寬500 高 300 的層然后設(shè)置層的外邊距DivWidth:500px ;height:300px; Margin: -150px 0 0 -250px;position: absolute;left:50%;top:50%;10.有沒有關(guān)注HTML5和CSS3?如有請簡單說一些您對它們的了解情況!在HTML 5平臺上,視頻,音頻,圖象,動畫,以及同電腦的交互都被標(biāo)準(zhǔn)化。那么我們來看一下HTML5的技術(shù)概覽有哪些: HTML5新增和移除的元素HTML5新增了很多多媒體和交互性元素如video, audio,在HTML4當(dāng)中如果要嵌入一個(gè)視頻或是音頻的話需要引入一大段的代碼,
55、還有兼容各個(gè)瀏覽器,而HTML5只需要通過引入一個(gè)標(biāo)簽就可以,就像img標(biāo)簽一樣方便。HTML5對表單的支持HTML5 提供了強(qiáng)大的控件類型如url, email, date, tel等,強(qiáng)大的約束屬性,如required表示必填,文件上傳的accept屬性,以及一些表單重復(fù)元素模型的支持,HTML5在提交表單的時(shí)候還可 以設(shè)置提交的方式為XML提交方式,這樣服務(wù)器端接收到的數(shù)據(jù)將是XML格式,HTML5的表單被定義為“Web Forms 2.0”,目前opera9.5+對Web Forms 2.0的支持較為完美。HTML5 DOM變化HTML5的Javascript APIsHTML5在Ja
56、vascript上面新增了哪些API呢?Video/Audio: HTML5為Video和Audio提供了API來讓開發(fā)者控制他們自己的用戶界面,如可以播放或暫停媒體內(nèi)容。CSS3CSS3對于我們Web開發(fā)者來說不只是新奇的技術(shù),更重要的是這些全新概念的web應(yīng)用給我們帶來更多無限的可能性,也極大地提高了我們的開發(fā)效率。我們將不必再依賴圖片或者Javascript 去完成圓角、多背景、用戶自定義字體、3D動畫、漸變、盒陰影、文字陰影、透明度等提高Web設(shè)計(jì)質(zhì)量的特色應(yīng)用。CSS3對于動畫的支持CSS3 支持的動畫類型有:transform(變換)、transition(過渡)和animatio
57、n(動畫)。你可以對特定的屬性設(shè)置 transition,transiton和animation的區(qū)別不大,animation的動畫是自己定義的,面向的更多的是腳本開發(fā)者,往往更加 復(fù)雜。11.你怎么來實(shí)現(xiàn)下面這個(gè)設(shè)計(jì)圖,主要講述思路 (效果圖省略)13:如果讓你來制作一個(gè)訪問量很高的大型網(wǎng)站,你會如何來管理所有CSS文件、JS與圖片?14:你對前端界面工程師這個(gè)職位是怎么樣理解的?它的前景會怎么樣?Javascript1:js是什么,js和html 的開發(fā)如何結(jié)合?2.怎樣添加、移除、移動、復(fù)制、創(chuàng)建和查找節(jié)點(diǎn)3.怎樣使用事件以及IE和DOM事件模型之間存在哪些主要差別4.面向?qū)ο缶幊?b怎
58、么繼承a5.看看下面alert的結(jié)果是什么view sourceprint?1.function b(x, y, a) .arguments2 = 10; .alert(a); b(1, 2, 3);如果函數(shù)體改成下面,結(jié)果又會是什么?a = 10; alert(arguments2 );6.請編寫一個(gè)JavaScript函數(shù) parseQueryString,它的用途是把URL參數(shù)解析為一個(gè)對象var obj = parseQueryString(url); alert(obj.key0)/ 輸出07.ajax是什么?ajax的交互模型? 同步和異步的區(qū)別? 如何解決跨域問題?ajax(動態(tài)
59、網(wǎng)站靜態(tài)化)伴隨的goole 的推動,越來越多的站點(diǎn)開始使用了,在開大ajax(動態(tài)網(wǎng)站靜態(tài)化)程序的時(shí)候會遇到很多的問題,主要有以下幾個(gè)方面: 1.跨瀏覽器問題 2.歷史后退狀態(tài)問題 3.跨域問題 跨瀏覽器的問題因?yàn)楝F(xiàn)在有很多的開元的框架已經(jīng)解決了,我們無需為此而煩惱。 歷史后退狀態(tài)問題我們可以使用一個(gè)數(shù)組來保存歷史紀(jì)錄,然后把這些數(shù)據(jù)村到歷史對象中去,中的也可以解決,并且還有很多的開元框架給與支持,這樣問題就不是很大。 跨域的問題就不是很好的解決,但是還是有辦法的,一下給出一些基本的解決方案供大家選擇: 1.使用代理,你可以使用web端的程序編寫代理程序,把所有的ajax(動態(tài)網(wǎng)站靜態(tài)化)
60、請求的數(shù)據(jù)進(jìn)行轉(zhuǎn)發(fā),web程序可以使php(做為現(xiàn)在的主流 開發(fā)語言),jsp(SUN企業(yè)級應(yīng)用的首選),asp等所有的編程語言。相信大家對這種方式一定很熟悉,這里就不詳細(xì)的介紹了。 2.使用iframe的方式來定勢的刷新葉面,這種方式只是取得數(shù)據(jù)來顯示,并不能真正的和求得的數(shù)據(jù)進(jìn)行交互,轉(zhuǎn)化成本頁面的動態(tài)數(shù)據(jù),不是很可取,應(yīng)用也不是很多,我也忽略不去討論了。 3.使用apache(Unix平臺最流行的WEB服務(wù)器平臺)的代理功能,主要就是apache(Unix平臺最流行的WEB服務(wù)器平臺)的方向代理, 或者是url從定向,你也可以把其他的站點(diǎn)直接的掛在自己的網(wǎng)站上,這樣的方式可能會友邦權(quán)的問
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024工程招標(biāo)合同范本
- 2024年度云服務(wù)租賃合同
- 公司春節(jié)晚會活動策劃3篇
- 2024年度智能家居安防監(jiān)控系統(tǒng)安裝與維護(hù)合同
- 2024年商業(yè)物業(yè)管理合同
- 2024雙方關(guān)于環(huán)保設(shè)備的買賣合同
- 2024年廢物分類與回收協(xié)議
- 2024年度CFG樁基工程項(xiàng)目管理合同
- 2024年度產(chǎn)品質(zhì)量保證與維修服務(wù)合同
- 2024年夫妻雙方關(guān)于房產(chǎn)買賣及產(chǎn)權(quán)分配協(xié)議
- 2024版人教版英語初一上單詞默寫單
- 化學(xué)實(shí)驗(yàn)室安全智慧樹知到期末考試答案2024年
- 經(jīng)典房地產(chǎn)營銷策劃培訓(xùn)(全)
- 工人入場安全教育課件
- 【川教版】《生命 生態(tài) 安全》二年級上冊第12課 少點(diǎn)兒馬虎 多點(diǎn)兒收獲 課件
- 人教版數(shù)學(xué)四年級上冊第五單元 《平行四邊形和梯形》 大單元作業(yè)設(shè)計(jì)
- 靜配中心差錯(cuò)預(yù)防
- 送教上門體育、健康教案教學(xué)內(nèi)容
- 高夫品牌市場分析報(bào)告
- 職業(yè)規(guī)劃書-數(shù)字化設(shè)計(jì)與制造技術(shù)
- 國家臨床重點(diǎn)??平ㄔO(shè)項(xiàng)目申報(bào)書
評論
0/150
提交評論