node高版本一定兼容低版本嗎 前端面試的時候,問到兼容性問題怎么回答?
前端面試的時候,問到兼容性問題怎么回答?完全不同瀏覽器的內核也可能不同,所以各個瀏覽器對網頁的解析存在一定會的差異。瀏覽器內核主要統(tǒng)稱兩種,一是渲染引擎,一個是js引擎,內核十分傾向于說渲染引擎。常見
前端面試的時候,問到兼容性問題怎么回答?
完全不同瀏覽器的內核也可能不同,所以各個瀏覽器對網頁的解析存在一定會的差異。瀏覽器內核主要統(tǒng)稱兩種,一是渲染引擎,一個是js引擎,內核十分傾向于說渲染引擎。常見的瀏覽器內核:
差別瀏覽器的默認樣式存在差異,可以使用磨平這些差異。
1.差別瀏覽器的標簽設置的外補丁和內補丁不同
問題癥狀:你隨便寫幾個標簽,不加樣式壓制的情況下,各自的margin和padding差異減小。
接觸頻率:100%
解決方案:CSS里*{margin:0padding:0}
備注:這個是最常見的也最容易發(fā)生可以解決的一個瀏覽器兼容性問題,甚至所有的CSS文件開頭都會用通配符*來設置中各個標簽的內外補丁是0。
2.塊屬性標簽float后,又有逞兇的margin情況下,在IE6顯示margin比可以設置的大
問題癥狀:常見癥狀是IE6中后面的一塊被頂?shù)较乱恍?/p>
遇到頻率:90%(稍微緊張點的頁面都會遇到,float布局最常見的瀏覽器不兼容問題)
解決方案:在float的標簽樣式再控制中加入display:inline將其轉變?yōu)樾袃葘傩?/p>
備注:我們最常用的那就是divCSS各種布局了,而div是一個有名的塊屬性標簽,縱向布局的時候我們大多數(shù)全是用divfloat實現(xiàn)方法的,豎向的間距設置如果沒有用margin實現(xiàn),這是一個必然會見到過的兼容性問題。
3.設置中較大高度標簽(象小于等于10px),在IE6,IE7,遨游中水平距離遠遠超出自己設置中高度
問題癥狀:IE6、7和遨游里這個標簽的高度不受壓制,遠遠超出自己系統(tǒng)設置的高度
出現(xiàn)頻率:60%
解決方案:給遠遠超出相同高度的標簽設置里overflow:hidden或則系統(tǒng)設置行高line-height小于你設置中的高度。
備注:那種情況一般再次出現(xiàn)在我們設置中小圓角背景的標簽里。再次出現(xiàn)這個問題的原因是IE8之前的瀏覽器都會給標簽一個最大值默認的行高的高度。就算是你的標簽是空的,這個標簽的高度那就會都沒有達到系統(tǒng)默認的行高。
4.行內屬性標簽,系統(tǒng)設置display:block后采用float布局,又有梟雄并起的margin的情況,IE6間距bug
問題癥狀:IE6里的間距比最多設置中的間距
接觸幾率:20%
解決方案:在display:block后面一并加入display:inlinedisplay:table
備注:行內屬性標簽,是為系統(tǒng)設置寬高,我們需要設置中display:block(以外input標簽比較好普通)。在用float布局并有縱向的margin后,在IE6下,他就本身了塊屬性float后的寬度margin的bug。只不過因為它本身那就是行內屬性標簽,所以我們再算上display:inline的話,它的高寬就絕對不可設了。這時候我們還是需要在display:inline后面組建display:talbe。
5.圖片系統(tǒng)默認有間距
問題癥狀:幾個upload標簽放進一起的時候,有些瀏覽器會有設置成的間距,加了問題一中說起的通配符也不起作用。
接觸幾率:20%
解決方案:建議使用float64屬性為image2布局
備注:畢竟img標簽是行內屬性標簽,所以只要不遠超容器寬度,img標簽都會排在一行里,只不過部分瀏覽器的img標簽之間會有個間距。可以去掉這個間距在用float是正道。(我的一個學生使用負margin,雖說能可以解決,但負margin本身應該是容易影起瀏覽器不兼容問題的用法,因此我私自他們使用)
6.標簽最低相同高度設置min-height不兼容性
問題癥狀:而且min-200px本身應該是一個不兼容的CSS屬性,因為設置中min-height時不能不能很好的被各個瀏覽器兼容性問題
接觸幾率:5%
解決方案:如果我們要設置里一個標簽的最小高度200px,不需要接受的設置為:{min-height:200pxheight:auto!importantheight:200pxoverflow:visible}
備注:在B/S系統(tǒng)前端開時,有很多情況下我們又這種需求。當內容小于等于一個值(如300px)時。容器的一定高度為300px;當內容一定高度為0這個值時,容器水平距離被撐高,而并非再次出現(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的時候會完全覆蓋掉前一條的相無關設置中,認為一定高度是200px。不再往外讀,IE6還見過_height,因此他又會包裹掉200px高的設置,把一定高度設置里為100px;
IE7和遨游瀏覽器確實是完全不一樣的從垂直距離300px的設置往上讀。當它們讀到*200px200px的時候就停住了,因為它們不見過_height。因此它們會把高度解析為200px,只剩的瀏覽器只認識第一個height:300px所以才他們會把垂直距離解析為300px。只不過優(yōu)先級相同且想的屬性設置后另一個會包裹掉前一個,因此寫就的次序是很重要的是的。
雙邊結算距問題:在IE6中設置了float,同樣的又設置里margin,就會又出現(xiàn)邊距問題解決方案:設置display:inline
9.當標簽的垂直距離設置小于等于10px,在IE6、IE7中會遠遠超出自己設置里的水平距離解決方案:遠超水平距離的標簽設置里overflow:hidden,或者可以設置line-height的值大于你的設置高度
10.圖片設置成有間距解決方案:不使用float為image2布局
下瀏覽器不能不能不使用opacity解決方案:opacity:0.5filter:alpha(opacity50)filter:(style0,opacity50)
12.邊距相互纏繞問題;當垂直相交兩個元素都設置中了margin邊距時,margin將取比較大值,拋棄最小值;解決方案:為了不許邊拼合,這個可以給子元素減少一個父級元素,并系統(tǒng)設置父級元素為overflow:hidden;
不顯示手型在safari上不支持解決方案:統(tǒng)一可以使用cursor:pointer
14.兩個塊級元素,父元素設置里了overflow:auto;子元素系統(tǒng)設置了position:relative且水平距離為0父元素,在IE6、IE7會被追蹤而并非瀉出;解決方案:父級元素設置中position:relative
背景閃爍不定的問題
問題:鏈接、按扭用另外背景,在下會有背景圖閃爍的現(xiàn)象。原因是沒有將背景圖緩存,隔一段時間觸發(fā)時的時候都會重新加載
幫忙解決:可以用設置緩存這些圖片:
document.execCommand(BackgroundImageCache
需要開發(fā)一個論壇,想用Node.js技術開發(fā),但沒學過Node.js,該提供什么樣的思路?
您好,是對你的問題,我想推薦推薦我現(xiàn)在也在倒騰的nestJS框架。
其中給你200元以內幾點優(yōu)勢:
練熟容易
如果是java程序員或則C#程序員,那么恭喜你,nestJS太適合我你快速上手,一個它環(huán)境配置尤其簡單的,只需要鐵架的node環(huán)境即可解決。二個它的代碼是TypeScript,其書寫和表達意義,基本同JAVA或C#一致。所以才這練熟非常很容易,差不多吧1周就這個可以上手寫版應用。
spring框架編程思想
其基于后臺交互功能的編程模式幾乎是和springboot一模一樣,包括其兼容性typeorm,令數(shù)據庫構建體系和數(shù)據庫的處理傳說中的比較新的mybatis,只不需要寫注解就也可以成功數(shù)據庫的pojo的構建,但最最重要最讓人討喜的是,它的typeorm代碼這個可以接受mysql,Oracle,sqlserver、mongodb等廣泛數(shù)據庫,真委實是一段代碼多個服務器也可以運行。
語法有高級
nestjs不光占據簡單的middleware中間件,還有一個pipe,interupt,guard等處理request的或response的大量杰出的語法類,能讓你輕松自如操縱你的返回內容或則你可以接收其他地方郵箱里上來的請求。
微服務
nestjs從網上下載微服務框架,不需要不自動進行配置,微服務配置特別簡單,也不光飛快,直接寫幾個變量定義就可以了。
grpc
現(xiàn)在相當很流行業(yè)務流grpc框架,nestjs隨機軟件,只要可以使用node指令直接下載依賴和甚至和微服務一般簡單點幾個變量賦值配置就可以了。
安全性
nest輔助功能中有光盤驅動儲存中間件的或:Helmet中間件也能讓你應用方法避免http請求漏洞的影響。
等等等等,nestJS隨機軟件的后端優(yōu)勢太,是一個肯定杰出的的后端nodejs框架,我推薦題主建議使用。