滴滴面試的準(zhǔn)備

一荞下、自我介紹

二、html問(wèn)題

  • html5的新特性:

1.用于繪畫的 canvas 元素
2.用于媒介回放的 video 和 audio 元素
3.對(duì)本地離線存儲(chǔ)的更好的支持
4.新的特殊內(nèi)容元素词渤,語(yǔ)義化標(biāo)簽:比如 article、footer串绩、header缺虐、nav、section
5.新的表單控件礁凡,比如 calendar高氮、date、time顷牌、email剪芍、url、search

  • input和textarea的區(qū)別:

1.<input>是一個(gè)單行輸入框窟蓝,有value屬性(value屬性指定初始值)罪裹,但是它不能自動(dòng)換行;用來(lái)放置字?jǐn)?shù)較少的單行文字內(nèi)容
<input type="text" name="content" value="內(nèi)容在這里">

2.<textarea>是一個(gè)多行輸入框,沒(méi)有value屬性状共,但是它能自動(dòng)換行套耕;一般讓用戶可以輸入多行文字,輸入的文字信息量相比較大
<textarea id="content" name="content" style="width: 90%; height: 300px; margin-top:5px;" >"內(nèi)容在這里"</textarea>
其中name="content"這個(gè)字段一定要和數(shù)據(jù)庫(kù)中的字段對(duì)應(yīng),不然內(nèi)容插不到數(shù)據(jù)庫(kù)中口芍。

  • 用一個(gè)div模擬textarea的實(shí)現(xiàn)

    //html
      <div contenteditable="true">
        .....此處省略.....
      </div>
    
    //css
      div{
      width: 400px;
      min-height: 100px; //設(shè)置最小高度
      max-height: 300px;//設(shè)置最大高度箍铲,超出就出現(xiàn)滾動(dòng)條
       _height: 100px; //IE6
      margin-left: auto;
      margin-right: auto;
      padding: 3px;
      outline: 0;
      border: 1px solid #a0b3d6;
      font-size: 12px;
      word-wrap: break-word;
      overflow-x: hidden;
      overflow-y: auto; //超過(guò)最大高度就出現(xiàn)滾動(dòng)條
      _overflow-y: visible;
    }
    
  • 移動(dòng)設(shè)備忽略將頁(yè)面中的數(shù)字識(shí)別為電話號(hào)碼的方法

<meta name = "format-detection" content = "telephone=no">

三、css問(wèn)題

  • 左右布局鬓椭,左邊定寬,右邊自適應(yīng)关划,不少于三種方式

  • BFC IFC的理解

BFC直譯為"塊級(jí)格式化上下文"小染,就是頁(yè)面上的一個(gè)隔離的渲染區(qū)域,容器里面的子元素不會(huì)在布局上影響到外面的元素
如何產(chǎn)生BFC:
float的值不為none贮折。
overflow的值不為visible裤翩。
position的值不為relative和static。
display的值為table-cell, table-caption, inline-block中的任何一個(gè)调榄。
有什么用:比如常見(jiàn)的多欄布局踊赠,結(jié)合塊級(jí)別元素浮動(dòng),里面的元素則是在一個(gè)相對(duì)隔離的環(huán)境里運(yùn)行每庆。

IFC(Inline Formatting Contexts)直譯為"內(nèi)聯(lián)格式化上下文",
水平居中:當(dāng)一個(gè)塊要在環(huán)境中水平居中時(shí)筐带,設(shè)置其為inline-block則會(huì)在外層產(chǎn)生IFC,通過(guò)text-align則可以使其水平居中缤灵。
垂直居中:創(chuàng)建一個(gè)IFC伦籍,用其中一個(gè)元素?fù)伍_(kāi)父元素的高度,然后設(shè)置其vertical-align:middle腮出,其他行內(nèi)元素則可以在此父元素下垂直居中帖鸦。

  • 柵格的理解

1、為什么使用bootstrap胚嘲?
如果能指出瀏覽器支持情況作儿、移動(dòng)優(yōu)先、響應(yīng)式布局馋劈、簡(jiǎn)單易寫攻锰、統(tǒng)一編碼風(fēng)格的話,那基本算過(guò)了侣滩。
2口注、什么是bootstrap柵格系統(tǒng)?
聽(tīng)到12字樣就算過(guò)了君珠,如果自己會(huì)解釋為什么是12格寝志,而不是14、16格,那就說(shuō)明對(duì)柵格系統(tǒng)有很深的了解材部。
3.為什么是12列
因?yàn)?2是1毫缆,2,3乐导,4苦丁,6的最小公倍數(shù),所以12列柵格系統(tǒng)相對(duì)較靈活物臂,支持將一行分成1列旺拉,2列,3列棵磷,4列蛾狗,6列。

  • CSS3用過(guò)哪些新特性
  1. CSS3的選擇器
    1)E:last-child 匹配父元素的最后一個(gè)子元素E仪媒。
    2)E:nth-child(n)匹配父元素的第n個(gè)子元素E沉桌。
    3)E:nth-last-child(n) CSS3 匹配父元素的倒數(shù)第n個(gè)子元素E。

2.@Font-face 特性
Font-face 可以用來(lái)加載字體樣式算吩,而且它還能夠加載服務(wù)器端的字體文件留凭,讓客戶端顯示客戶端所沒(méi)有安裝的字體。

@font-face {   
 font-family: BorderWeb;   
 src:url(BORDERW0.eot);   
 }   
 @font-face {   
 font-family: Runic;   
 src:url(RUNICMT0.eot);   
 }   
 .border { FONT-SIZE: 35px; COLOR: black; FONT-FAMILY:       "BorderWeb" }   
 .event { FONT-SIZE: 110px; COLOR: black; FONT-FAMILY: "Runic" }  
  1. 圓角:border-radius: 15px;
  1. 陰影:text-shadow
  1. 漸變:-webkit-gradien
  1. 彈性盒子模型:flex-box
    .container{
    display:flex;
    justify-content:center;
    align-items: center;
    }
  1. css3動(dòng)畫特效:
    1)Transition 對(duì)象變換時(shí)的過(guò)渡效果
    2)Transforms 2D轉(zhuǎn)換效果
    3)Animation動(dòng)畫特效
  1. 媒體查詢
  • 水平居中有哪些實(shí)現(xiàn)方法

1.行內(nèi)元素的水平居中: text-align:center;
2.塊狀元素的水平居中 : margin:0 auto;
3.多個(gè)塊狀元素的水平居中 :傳統(tǒng)的方法是將要水平排列的塊狀元素設(shè)為display:inline-block偎巢,然后在父級(jí)元素上設(shè)置text-align:center
4.未知高度蔼夜,flexbox水平居中:display:flex; justify-content:center;

  • 已知高度寬度元素的水平垂直居中

1.利用絕對(duì)定位,將元素的top和left屬性都設(shè)為50%艘狭,再利用margin邊距挎扰,將元素回拉它本身高寬的一半,實(shí)現(xiàn)垂直居中巢音。核心CSS代碼如下:

#container{
   position:relative;
}

#center{
   width:100px;
   height:100px;
   position:absolute;
   top:50%;
   left:50%;
   margin:-50px 0 0 -50px;
}

2.絕對(duì)定位與margin:這種方法也是利用絕對(duì)定位與margin遵倦,但是無(wú)需知道被垂直居中元素的高和寬。核心代碼如下

#container{
    position:relative;
}
 
#center{
    position:absolute;
    margin:auto;
    top:0;
    bottom:0;
    left:0;
    right:0;
}
  • 1像素邊框問(wèn)題:

1.border-image 圖片 實(shí)現(xiàn) (騰訊)這篇文章是騰訊github上的解決方案border-image來(lái)實(shí)現(xiàn)的 鏈接走起 《使用border-image實(shí)現(xiàn)類似iOS7的1px底邊》官撼,缺點(diǎn)是梧躺,你需要制作圖片,圓角的時(shí)候會(huì)出現(xiàn)模糊傲绣。

.border-image-1px {
    border-width: 1px 0px;
    -webkit-border-image: url("data:image/png;base64,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") 2 0 stretch;
}

2.background-image 漸變實(shí)現(xiàn):除啦用圖片掠哥,難道純粹的css就不能實(shí)現(xiàn)嗎?我的確不想使用圖片秃诵,感覺(jué)制作起來(lái)很麻煩续搀,其實(shí)百度糯米團(tuán)首頁(yè)就是這么做的但是這種方法有個(gè)缺點(diǎn),就是不能實(shí)現(xiàn)圓角

.border {
      background-image:linear-gradient(180deg, red, red 50%, transparent 50%),
      linear-gradient(270deg, red, red 50%, transparent 50%),
      linear-gradient(0deg, red, red 50%, transparent 50%),
      linear-gradient(90deg, red, red 50%, transparent 50%);
      background-size: 100% 1px,1px 100% ,100% 1px, 1px 100%;
      background-repeat: no-repeat;
      background-position: top, right top,  bottom, left top;
      padding: 10px;
  }

3.viewport+rem實(shí)現(xiàn):這篇文章的解決方案是使用viewport+rem+js來(lái)實(shí)現(xiàn)的 鏈接走起 《移動(dòng)端1像素邊框問(wèn)題的解決方案》菠净,里邊還引入了張?chǎng)涡翊笊竦奈恼?《設(shè)備像素比devicePixelRatio簡(jiǎn)單介紹》禁舷,優(yōu)點(diǎn)是可以直接設(shè)置1px就行了彪杉,剩下的就交給js了,而且圓角什么的都沒(méi)問(wèn)題牵咙。

<span style="font-size:18px;"><html>  
  
    <head>  
        <title>1px question</title>  
        <meta http-equiv="Content-Type" content="text/html;charset=UTF-8">  
        <meta name="viewport" id="WebViewport" content="initial-scale=1, maximum-scale=1, minimum-scale=1, user-scalable=no">       
        <style>  
            html {  
                font-size: 1px;  
            }             
            * {  
                padding: 0;  
                margin: 0;  
            }  
              
            .bds_b {  
                border-bottom: 1px solid #ccc;  
            }  
              
            .a,  
            .b {  
                margin-top: 1rem;  
                padding: 1rem;                
                font-size: 1.4rem;  
            }  
              
            .a {  
                width: 30rem;  
            }  
              
            .b {  
                background: #f5f5f5;  
                width: 20rem;  
            }  
        </style>  
        <script>  
          
            var viewport = document.querySelector("meta[name=viewport]");  
            //下面是根據(jù)設(shè)備像素設(shè)置viewport  
            if (window.devicePixelRatio == 1) {  
                viewport.setAttribute('content', 'width=device-width,initial-scale=1, maximum-scale=1, minimum-scale=1, user-scalable=no');  
            }  
            if (window.devicePixelRatio == 2) {  
                viewport.setAttribute('content', 'width=device-width,initial-scale=0.5, maximum-scale=0.5, minimum-scale=0.5, user-scalable=no');  
            }  
            if (window.devicePixelRatio == 3) {  
                viewport.setAttribute('content', 'width=device-width,initial-scale=0.3333333333333333, maximum-scale=0.3333333333333333, minimum-scale=0.3333333333333333, user-scalable=no');  
            }  
            var docEl = document.documentElement;  
            var fontsize = 10 * (docEl.clientWidth / 320) + 'px';  
            docEl.style.fontSize = fontsize;  
              
        </script>  
    </head>  
  
    <body>  
        <div class="bds_b a">下面的底邊寬度是虛擬1像素的</div>  
        <div class="b">上面的邊框?qū)挾仁翘摂M1像素的</div>  
    </body>  
  
</html></span>  

4.box-shadow 實(shí)現(xiàn):利用陰影我們也可以實(shí)現(xiàn)派近,那么我們來(lái)看看陰影,優(yōu)點(diǎn)是圓角不是問(wèn)題洁桌,缺點(diǎn)是顏色不好控制渴丸。

div{
    -webkit-box-shadow:0 1px 1px -1px rgba(0, 0, 0, 0.5);
}

四、js問(wèn)題

  • 圖片懶加載

vue-lazyload插件
圖片懶加載的原理:

1.首先我們把這段js封裝到自執(zhí)行函數(shù)里面另凌,也就是:

(function(){})()

2.聲明所需參數(shù):

var imgList = [],delay,time,offset;

3.監(jiān)聽(tīng)scroll事件谱轨,執(zhí)行節(jié)流函數(shù)

function imgLoad(selector){
    _selector = selector || '.imgLazyLoad';
    let nodes = document.querySelectorAll(selector);
    imgList = Array.apply(null,nodes);
    window.addEventListener('scroll',_delay,false)
};

4.聲明節(jié)流函數(shù)

function _delay(){//函數(shù)節(jié)流
    clearTimeout(delay);
    delay = setTimeout(() => {
       _loadImg();
    },time)
};
  • 下劃線函數(shù):加下劃線函數(shù)命名沒(méi)有特殊功能,只是一種約定成俗的做法途茫,表明這是一個(gè)私有函數(shù)(并沒(méi)有強(qiáng)制規(guī)定使用碟嘴,看團(tuán)隊(duì)習(xí)慣斟酌使用)
    函數(shù)節(jié)流目的:在類似scroll、resize事件中執(zhí)行大量DOM操作或者計(jì)算時(shí)囊卜,就會(huì)出現(xiàn)再次觸發(fā)事件而上一次事件中的DOM操作和計(jì)算還沒(méi)完成的情況,結(jié)果瀏覽器掉幀了错沃,導(dǎo)致性能下降栅组,影響用戶體驗(yàn)。
    想了解更多相關(guān)知識(shí)點(diǎn)枢析,請(qǐng)點(diǎn)擊瀏覽器瀏覽器scroll優(yōu)化
    函數(shù)節(jié)流原理:每次執(zhí)行_delay函數(shù)先清除上一次setTimeout生成的引用玉掸,阻止上一次的函數(shù)調(diào)用(如果還沒(méi)執(zhí)行的話),然后創(chuàng)建一個(gè)新的setTimeout醒叁,在time保存的時(shí)間間隔后調(diào)用函數(shù)

5.加載圖片

function _loadImg(){//執(zhí)行圖片加載
    for(let i = 0,len =imgList.length; i < len; i++){
        if(_isShow(imgList[i])){
            imgList[i].src = imgList[i].getAttribute('data-src');
            imgList.splice(i,1);
        }
    }
};

6.判斷圖片是否顯示

function _isShow(el){
    let coords = el.getBoundingClientRect();
    return (coords.left >= 0 && coords.left >= 0 && coords.top) <=(document.documentElement.clientHeight || window.innerHeight) + parseInt(offset);
};

何時(shí)顯示圖片?
當(dāng)圖片出現(xiàn)在屏幕可視局域時(shí)顯示~
怎么判斷圖片出現(xiàn)在圖片可視區(qū)域司浪?
通過(guò)調(diào)用元素的getBoundingClientRect方法獲得一個(gè)包含了一組用于描述邊框的相對(duì)于視口的左上角位置而言的只讀屬性——left、top把沼、right和bottom啊易,在和瀏覽器視口相應(yīng)寬高進(jìn)行對(duì)比即可判斷元素是否出現(xiàn)在可視區(qū)域中,offset是偏差值饮睬,可以進(jìn)行顯示偏差設(shè)置

  • 頁(yè)面加載的進(jìn)度條怎么實(shí)現(xiàn)的:如下圖租谈,在頁(yè)面加載的時(shí)候,上方紅色的進(jìn)度條


    image

1.定義一個(gè)id為progress的div捆愁,給它寫動(dòng)畫

body{
  margin:0; //它沒(méi)有貼在頁(yè)面的邊緣割去,所以還需要將body的margin去掉
}

#progress{
  height:2px;
  background:red;
  transition:opacity 500ms linear // 線條消失時(shí)太突兀了,我們需要讓它漸漸消失掉昼丑,需要用到CSS的transation屬性呻逆。
}

@-webkit-keyframes pulse{ //定義首尾關(guān)鍵幀動(dòng)畫
  0%(width:0;)
  100%(width:100%;)
}

然后對(duì)元素應(yīng)用動(dòng)畫,設(shè)定動(dòng)畫時(shí)間為3秒:
#progress{
  -webkit-animation:pulse 3s;
}

<script>
$({property: 0}).animate({property:100}),{
  duration:3000,
  step:function () {
    var percentage = Math.round(this.property);

    $('#progress').css('width',percentage+"%");

    if (percentage == 100){
      $("#progress").addclass("done"); //完成菩帝,隱藏進(jìn)度條
    }
  }
}
</script>
  • 手寫事件模型及事件代理/委托

DOM:addEventListener咖城、removeEventListener茬腿、dispatchEvent
IE-DOM:attachEvent、detachEvent酒繁、fireEvent
jQuery:on滓彰、off、trigger

事件的三個(gè)階段:捕獲州袒,目標(biāo)揭绑,冒泡階段,低版本IE不支持捕獲階段

IE和W3C標(biāo)準(zhǔn) 綁定事件的區(qū)別郎哭?參數(shù)分別是什么他匪?以及IE事件對(duì)象中的e有什么區(qū)別:

標(biāo)準(zhǔn):

/*
參數(shù):
eventName:事件的名字
function:事件處理函數(shù)
Boolean:捕獲或者冒泡,默認(rèn)是false冒泡
*/
/*事件對(duì)象e作為參數(shù)傳入*/
addEventListener(eventName,function(e){
},false);

ie8以下:

/*
參數(shù):
onEvnet:是事件處理程序的名字,而不是事件名夸研,就是說(shuō)在事件名前加上on
function:事件處理函數(shù)
*/
/*
e=window.event邦蜜,事件event是window的一個(gè)屬性
*/
attachEvent(onEventName,function(){
   var e=window.event; 
})

事件代理的原理及優(yōu)缺點(diǎn):
原理:靠事件冒泡實(shí)現(xiàn)的
優(yōu)點(diǎn):
大量減少內(nèi)存占用,減少事件注冊(cè)
新增子對(duì)象時(shí)無(wú)需再次對(duì)其綁定事件亥至,對(duì)于動(dòng)態(tài)內(nèi)容不符尤其適用
缺點(diǎn):
適用于表格/列表等重復(fù)性dom元素,事件代理用不好可能出現(xiàn)事件誤判悼沈,即本不應(yīng)該觸發(fā)事件的元素被綁定了事件

手寫原生js實(shí)現(xiàn)事件代理
要求:兼容瀏覽器
考點(diǎn):事件對(duì)象e,IE下事件對(duì)應(yīng)的屬性名姐扮。
重點(diǎn)是要說(shuō)到target,currentTarget以及IE下的srcElement和this絮供。

五.http問(wèn)題(http狀態(tài)碼,get, post,輸入一個(gè)url茶敏,enter之后發(fā)生了什么)

5.項(xiàng)目問(wèn)題(怎么處理移動(dòng)端兼容性問(wèn)題壤靶,性能優(yōu)化問(wèn)題,用過(guò)哪些vue的插件惊搏,兼容es6嗎)

6.需要問(wèn)面試官的問(wèn)題:
滴滴的技術(shù)棧贮乳,對(duì)高級(jí)前端工程師的理解

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市恬惯,隨后出現(xiàn)的幾起案子向拆,更是在濱河造成了極大的恐慌,老刑警劉巖宿崭,帶你破解...
    沈念sama閱讀 221,695評(píng)論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件亲铡,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡葡兑,警方通過(guò)查閱死者的電腦和手機(jī)奖蔓,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,569評(píng)論 3 399
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)讹堤,“玉大人吆鹤,你說(shuō)我怎么就攤上這事≈奘兀” “怎么了疑务?”我有些...
    開(kāi)封第一講書人閱讀 168,130評(píng)論 0 360
  • 文/不壞的土叔 我叫張陵沾凄,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我知允,道長(zhǎng)撒蟀,這世上最難降的妖魔是什么? 我笑而不...
    開(kāi)封第一講書人閱讀 59,648評(píng)論 1 297
  • 正文 為了忘掉前任,我火速辦了婚禮,結(jié)果婚禮上棚亩,老公的妹妹穿的比我還像新娘寄疏。我一直安慰自己惠啄,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,655評(píng)論 6 397
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著,像睡著了一般切蟋。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上榆芦,一...
    開(kāi)封第一講書人閱讀 52,268評(píng)論 1 309
  • 那天柄粹,我揣著相機(jī)與錄音,去河邊找鬼匆绣。 笑死镰惦,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的犬绒。 我是一名探鬼主播,決...
    沈念sama閱讀 40,835評(píng)論 3 421
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼兑凿,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼凯力!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起礼华,我...
    開(kāi)封第一講書人閱讀 39,740評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤咐鹤,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后圣絮,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體祈惶,經(jīng)...
    沈念sama閱讀 46,286評(píng)論 1 318
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,375評(píng)論 3 340
  • 正文 我和宋清朗相戀三年扮匠,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了捧请。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,505評(píng)論 1 352
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡棒搜,死狀恐怖疹蛉,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情力麸,我是刑警寧澤可款,帶...
    沈念sama閱讀 36,185評(píng)論 5 350
  • 正文 年R本政府宣布育韩,位于F島的核電站,受9級(jí)特大地震影響闺鲸,放射性物質(zhì)發(fā)生泄漏筋讨。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,873評(píng)論 3 333
  • 文/蒙蒙 一摸恍、第九天 我趴在偏房一處隱蔽的房頂上張望悉罕。 院中可真熱鬧,春花似錦误墓、人聲如沸蛮粮。這莊子的主人今日做“春日...
    開(kāi)封第一講書人閱讀 32,357評(píng)論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)然想。三九已至,卻和暖如春欣范,著一層夾襖步出監(jiān)牢的瞬間变泄,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書人閱讀 33,466評(píng)論 1 272
  • 我被黑心中介騙來(lái)泰國(guó)打工恼琼, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留妨蛹,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,921評(píng)論 3 376
  • 正文 我出身青樓晴竞,卻偏偏與公主長(zhǎng)得像蛙卤,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子噩死,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,515評(píng)論 2 359

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

  • 問(wèn)答題47 /72 常見(jiàn)瀏覽器兼容性問(wèn)題與解決方案颤难? 參考答案 (1)瀏覽器兼容問(wèn)題一:不同瀏覽器的標(biāo)簽?zāi)J(rèn)的外補(bǔ)...
    _Yfling閱讀 13,759評(píng)論 1 92
  • 請(qǐng)參看我github中的wiki,不定期更新已维。https://github.com/ivonzhang/Front...
    zhangivon閱讀 7,133評(píng)論 2 19
  • “年輕的大邑啊~二兩梅子酒的憂愁~” 早晨起來(lái)再見(jiàn)不到陽(yáng)光漫進(jìn)屋子,落滿地板堂鲜,滿屋躍動(dòng)的光影逐漸模糊栈雳,睜開(kāi)眼...
    三巡酒過(guò)詩(shī)與酒閱讀 403評(píng)論 0 1
  • 為期一個(gè)月的攝影課就要結(jié)束了,我也來(lái)說(shuō)說(shuō)我的感受和心得泡嘴。 以前沒(méi)敢想花一個(gè)月的碎片時(shí)間來(lái)學(xué)習(xí)一門技能甫恩。大學(xué)就一直喜...
    tongtong_bf30閱讀 200評(píng)論 0 1