網(wǎng)頁顯示不能創(chuàng)建xmlhttprequest 前端面試的時候,問到兼容性問題怎么回答?
前端面試的時候,問到兼容性問題怎么回答?不同瀏覽器的內(nèi)核也可能不同,所以各個瀏覽器對網(wǎng)頁的解析必然是有的差異。瀏覽器內(nèi)核比較多兩類兩種,一是渲染引擎,那個是js引擎,內(nèi)核極其傾向于說渲染引擎。最常見的
前端面試的時候,問到兼容性問題怎么回答?
不同瀏覽器的內(nèi)核也可能不同,所以各個瀏覽器對網(wǎng)頁的解析必然是有的差異。瀏覽器內(nèi)核比較多兩類兩種,一是渲染引擎,那個是js引擎,內(nèi)核極其傾向于說渲染引擎。最常見的一種的瀏覽器內(nèi)核:
有所不同瀏覽器的默認樣式必然差異,可以可以使用磨平這些差異。
1.不同瀏覽器的標簽默認的外補丁和內(nèi)補丁完全不同
問題癥狀:你隨便寫幾個標簽,不加樣式操縱的情況下,各自的margin和padding差異減小。
遇到頻率:100%
解決方案:CSS里*{margin:0padding:0}
備注:這個是最常見的也是也易解決的一個瀏覽器兼容性問題,幾乎所有的CSS文件開頭都會用通配符*來系統(tǒng)設置各個標簽的內(nèi)外補丁是0。
2.塊屬性標簽float后,又有橫行的margin情況下,在IE6總是顯示margin比可以設置的大
問題癥狀:常見癥狀是IE6中后面的一塊被頂?shù)较乱恍?/p>
接觸頻率:90%(還好奇怪點的頁面都會見到過,float布局最常見的瀏覽器不兼容問題)
解決方案:在float的標簽樣式再控制中參加display:inline將其能量轉(zhuǎn)化為行內(nèi)屬性
備注:我們最常用的就是divCSS整個布局了,而div是兩個是是的塊屬性標簽,橫向布局的時候我們正常情況都是用divfloat利用的,斜向的間距設置如果沒有用margin實現(xiàn)程序,這那是一個必然會會見到過的兼容性問題。
3.設置較大高度標簽(一般大于110px),在IE6,IE7,360急速中水平距離遠遠超過自己系統(tǒng)設置高度
問題癥狀:IE6、7和遨游里這個標簽的高度不受操縱,遠遠超出自己設置的高度
出現(xiàn)頻率:60%
解決方案:給遠遠超出垂直距離的標簽設置中overflow:hidden的或設置中行高line-height小于等于你設置中的高度。
備注:那種情況好象出現(xiàn)在我們可以設置小圓角背景的標簽里。再次出現(xiàn)這個問題的原因是IE8之前的瀏覽器都會給標簽一個最大時設置的行高的高度。就算你的標簽是空的,這個標簽的高度那就會至少默認的行高。
4.行內(nèi)屬性標簽,設置里display:block后采用pointer布局,又有劃地為王的margin的情況,IE6間距bug
問題癥狀:IE6里的間距比將近設置中的間距
接觸幾率:20%
解決方案:在display:block后面加入到display:inlinedisplay:table
備注:行內(nèi)屬性標簽,是為設置中寬高,我們要設置里display:block(除開input標簽比較比較普通)。在用float布局并有縱向的margin后,在IE6下,他就具備了塊屬性float后的縱向margin的bug。不過畢竟它本身那就是行內(nèi)屬性標簽,所以我們再另外display:inline的話,它的高寬就絕對不可設了。這時候我們還不需要在display:inline后面加入到display:talbe。
5.圖片默認有間距
問題癥狀:幾個upload標簽裝在一起的時候,有些瀏覽器會有默認的間距,加了問題一中說起的通配符也不起作用。
接觸幾率:20%
解決方案:在用float64屬性為obj布局
備注:是因為img標簽是行內(nèi)屬性標簽,所以我只要不遠遠超過容器寬度,image2標簽都會排在一行里,但部分瀏覽器的img標簽之間會有個間距。去掉后這個間距可以使用float是正道。(我的一個學生在用負margin,雖說能幫忙解決,但負margin本身就是很難過多瀏覽器兼容問題的用法,所以才我私自他們不使用)
6.標簽最低相同高度設置中min-height不不兼容
問題癥狀:而且min-height本身那就是一個不兼容性的CSS屬性,因為系統(tǒng)設置min-height時不能不能很好的被各個瀏覽器兼容性問題
接觸幾率:5%
解決方案:假如我們要系統(tǒng)設置一個標簽的最大時高度200px,需要并且的設置為:{min-height:200pxheight:auto!importantheight:200pxoverflow:visible}
備注:在B/S系統(tǒng)前端開時,有很多情況下我們又這種需求。當內(nèi)容小于一個值(如300px)時。容器的水平距離為300px;當內(nèi)容水平距離小于這個值時,容器相同高度被撐高,而不是什么會出現(xiàn)滾動條。這時候我們可能會面隊這個兼容性問題。
7.透明度的兼容性問題CSS設置
.transparent_class{filter:alpha(opacity50)-moz-opacity:0.5-khtml-opacity:0.5opacity:0.5}
假如我們熟得不能再熟標簽的默認屬性的話,就能很好的理解為什么不會直接出現(xiàn)兼容問題問題包括咋去解決的辦法這些兼容性問題問題。
◆IE6見過的是下劃線_和星號*
◆IE7火狐認識的是星號*
比如這樣的一個CSS設置:
height:300px*height:200px_height:100pxIE6瀏覽器在讀到height:300px的時候會以為高時300px;一直往外讀,他也熟悉*heihgt,所以才當IE6讀到*height:200px的時候會覆蓋掉前一條的相無關(guān)設置里,以為水平距離是200px。再繼續(xù)往下讀,IE6還認識_height,所以才他又會瞬間覆蓋掉200px高的設置,把相同高度可以設置為100px;
IE7和傲游確實是一樣的從高度300px的設置往下讀。當它們讀到*200px200px的時候就停下來了,因為它們不認識_height。所以我它們會把一定高度解析為200px,剩的瀏覽器只不認識第一個height:300px所以我他們會把高度解析為300px。而且優(yōu)先級完全相同且想的屬性設置后三個會瞬間覆蓋掉前一個,所以才抄寫的次序是很最重要的。
雙邊距問題:在IE6中設置里了float,同樣的又設置里margin,可能會會出現(xiàn)邊距問題解決方案:設置中display:inline
9.當標簽的相同高度設置大于010px,在IE6、IE7中會遠遠超出自己設置里的相同高度解決方案:超出水平距離的標簽可以設置overflow:hidden,或則可以設置line-height的值小于你的設置高度
10.圖片系統(tǒng)默認有間距解決方案:在用float為image2布局
看看瀏覽器不能不能建議使用opacity解決方案:opacity:0.5filter:alpha(opacity50)filter:(style0,opacity50)
12.邊距相互纏繞問題;當相鄰兩個元素都可以設置了margin邊距時,margin將取的最值,舍棄最小值;解決方案:就是為了不想邊重疊,可以不給子元素增加一個父級元素,并設置中父級元素為overflow:hidden;
不顯示手型在safari上不接受解決方案:統(tǒng)一使用cursor:pointer
14.兩個塊級元素,父元素設置中了overflow:auto;子元素設置里了position:relative且高度小于父元素,在IE6、IE7會被隱藏地而也不是瀉出;解決方案:父級元素系統(tǒng)設置position:relative
背景閃爍不定的問題
問題:鏈接、選擇按鈕用以及背景,在下會有背景圖閃爍不停的現(xiàn)象。原因是沒有將背景圖緩存,每次來能觸發(fā)的時候都會重新運行
能解決:這個可以用系統(tǒng)設置緩存這些圖片:
document.execCommand(BackgroundImageCache
JavaScript調(diào)用WebService的代碼是什么呢?
WebService(以下3個字母為WS)不使用SOAP協(xié)議,而SOAPHTTPXML,所以才你可以不使用一切訪問其它網(wǎng)頁的方法來對WS接口接受內(nèi)部函數(shù)。
一般情況下是可以建議使用三種方法:表單重新提交,XMLHttpRequest,jQuery.ajax。
其一,表單重新提交(嚴格的來說這個是HTML調(diào)用,屬于什么JS動態(tài)鏈接庫。。。)