1.什麼是BFC,如何觸發BFC?html
BFC(塊級格式上下文),是指瀏覽器中建立了一個獨立的渲染區域,該區域內全部元素的佈局不會影響到區域外元素的佈局,這個渲染區域只對塊級元素起做用json
觸發BFC:跨域
1>float的值不爲none;瀏覽器
2>overflow的值不爲Visible;緩存
3>display:table-cell;或者table-caption,inline-block服務器
4>positon的值不爲relative,和staticcookie
在同一個BFC中兩個相鄰的盒子在垂直方向發生了margin重疊的問題session
2.用js寫冒泡排序?dom
思路:a>比較兩個相鄰元素,若是後一個比前一個大,則交換位置佈局
b>第一輪的時候最後一個元素應該是最大的一個
c>按照第一步的方法進行兩個相鄰的元素比較,因爲最後一個元素已是最大的了,因此最後一個元素不用比較。
代碼實現:
function Sort(element){
for(var i = 0;i<element.length-1;i++){//控制循環
for(var j = 0; j<element.length-i-1;j++){
if(element[j]>element[j+1])
{//把大的數放到後面
var swap = element[j];
element[j] = element[j+1];
element[j+1] = swap;
}
}
}
}
3.實現垂直居中?
1》已知寬高:
margin : 0 auto;
或者:position:absolute;top:50%; margin-top:-(寬度)/2;
2》未知寬高
position:absolute; top:50%; transform:translateY(-50%);
或者display:flex; justify-content: center; align-items: center;
4.301,304,403分別是什麼錯誤?
5.animate,和transition的區別?
1》transition:它的屬性是一個簡單的動畫屬性,是animation的簡化版本,是給普通作簡單網頁特效用的;只有兩個關鍵幀,開始和結束。對元素某個屬性或多個屬性的變化,進行控制。
transition : all 1s ease-out;
2》animaton:是動畫屬性,對元素某個屬性或多個屬性的變化,進行控制,可一設置多個關鍵幀。
用法: .context{
animate: move 2s(動畫時間) ease 0s (開始時間) 2(播放次數) alternate(反向)
/*normal 不反向,infinite規定播放無數次*/
}
@keyframes move{
0%{。。。。}
25%{。。。。}
50%{。。。。}
75%{。。。。}
100%{。。。。}
/*還能夠是 from{}
to{}
*/
}
6.常見的http狀態碼:
200 -------ok,請求成功
301-------Moved Permanently,資源(網頁等) 被永久轉移到其餘URL
302-------Found
307-------Temporary Redirect , 臨時重定向,請求的文檔被臨時移動到了別處
304--------Not Modified 未修改,表示客戶端緩存的版本是最近的
401-------Unauthorized,請求要求用戶的身份認證
403-------Forbidden , 禁止,服務器理解客戶端請求
404-----Not Found, 請求的資源(網頁等)不能存在
500------內部服務器錯誤
502-----充當網關或代理的服務器從遠端服務器接收到了一個無效請求
504-----充當網關或代理的服務器,未及時從遠端服務器獲取請求
7.如何配置跨域請求:
jsonp(jsonp的原理是動態插入script標籤)
document.domain+iframe
window.name、windown.postMessage
服務器上設置代理頁面
8.cookies,session,sessionStorage,LocalStorage的區別:
http://www.javashuo.com/article/p-yklndxfy-o.html