1. <strong id="7actg"></strong>
    2. <table id="7actg"></table>

    3. <address id="7actg"></address>
      <address id="7actg"></address>
      1. <object id="7actg"><tt id="7actg"></tt></object>

        最新版前端工程師面試題--前端基礎(chǔ)(2)

        共 4354字,需瀏覽 9分鐘

         ·

        2021-03-13 03:51

        1.2、Css

        介紹一下盒模型
        參考回答:

        CSS盒模型本質(zhì)上是一個盒子,封裝周圍的HTML元素,它包括:邊距,邊框,填充,和實(shí)際內(nèi)容。

        標(biāo)準(zhǔn)盒模型:一個塊的總寬度 =?width+margin(左右) +?padding(左右) +?border(左右)

        怪異盒模型:一個塊的總寬度 =?width+margin(左右)(既width已經(jīng)包含了padding和border值)

        設(shè)置盒模型:box-sizing:border-box;


        css布局
        參考回答:

        六種布局方式總結(jié):圣杯布局、雙飛翼布局、Flex布局、絕對定位布局、表格布局、網(wǎng)格布局。

        圣杯布局是指布局從上到下分為header、container、footer,然后container部分定為三欄布局。這種布局方式同樣分為header、container、footer。圣杯布局的缺陷在于center是在container的padding中的,因此寬度小的時候會出現(xiàn)混亂。

        雙飛翼布局給center部分包裹了一個main通過設(shè)置margin主動地把頁面撐開。Flex布局是由CSS3提供的一種方便的布局方式。

        絕對定位布局是給container設(shè)置position:relativeoverflow:hidden,因?yàn)榻^對定位的元素的參照物為第一個postion不為static的祖先元素。left向左浮動,right向右浮動。center使用絕對定位,通過設(shè)置left和right并把兩邊撐開。center設(shè)置top:0和bottom:0使其高度撐開。

        表格布局的好處是能使三欄的高度統(tǒng)一。

        網(wǎng)格布局可能是最強(qiáng)大的布局方式了,使用起來極其方便,但目前而言,兼容性并不好。

        網(wǎng)格布局,可以將頁面分割成多個區(qū)域,或者用來定義內(nèi)部元素的大小,位置,圖層關(guān)系。


        transition和animation的區(qū)別
        參考回答:

        Animationtransition大部分屬性是相同的,他們都是隨時間改變元素的屬性值,他們的主要區(qū)別是transition需要觸發(fā)一個事件才能改變屬性,而animation不需要觸發(fā)任何事件的情況下才會隨時間改變屬性值,并且transition為2幀,從from....to,而animation可以一幀一幀的。


        Flex布局
        參考回答:

        Flex是FlexibleBox的縮寫,意為"彈性布局",用來為盒狀模型提供最大的靈活性。

        布局的傳統(tǒng)解決方案,基于盒狀模型,依賴display屬性+position屬性+float屬性。它對于那些特殊布局非常不方便,比如,垂直居中就不容易實(shí)現(xiàn)。

        簡單的分為容器屬性和元素屬性

        容器的屬性:

        flex-direction:決定主軸的方向(即子item的排列方法)

        justify-content:對齊方式,水平主軸對齊方式

        align-items:對齊方式,豎直軸線方向

        項(xiàng)目的屬性(元素的屬性):

        order屬性:定義項(xiàng)目的排列順序,順序越小,排列越靠前,默認(rèn)為0

        flex-grow屬性:定義項(xiàng)目的放大比例,即使存在空間,也不會放大

        flex-shrink屬性:定義了項(xiàng)目的縮小比例,當(dāng)空間不足的情況下會等比例的縮小,如果定義個item的flow-shrink為0,則為不縮小

        flex-basis屬性:定義了在分配多余的空間,項(xiàng)目占據(jù)的空間。

        flex:是flex-growflex-shrink、flex-basis的簡寫,默認(rèn)值為0、1、auto。

        align-self:允許單個項(xiàng)目與其他項(xiàng)目不一樣的對齊方式,可以覆蓋align-items,默認(rèn)屬性為auto,表示繼承父元素的align-items


        垂直居中的方法
        參考回答:
        1. margin:auto法

          div{
          ??width:400px;
          ??height:400px;
          ??position:relative;
          ??border:1pxsolid#465468;
          }
          img{
          ??position:absolute;
          ??margin:auto;
          ??top:0;
          ??left:0;
          ??right:0;
          ??bottom:0;
          }
          <div>
          ????<img?src="mm.jpg">
          </div>

          定位為上下左右為0,margin:0可以實(shí)現(xiàn)脫離文檔流的居中

        2. margin負(fù)值法

          .container{
          ??width:500px;
          ??height:400px;
          ??border:2px?solid?#379;
          ??position:relative;
          }
          .inner{
          ??width:480px;
          ??height:380px;
          ??background-color:#746;
          ??position:absolute;
          ??top:50%;
          ??left:50%;
          ??margin-top:-190px;/*height的一半*/
          ??margin-left:-240px;/*width的一半*/
          }

          補(bǔ)充:其實(shí)這里也可以將marin-top和margin-left負(fù)值替換成,transform:translateX(-50%)和transform:translateY(-50%)

        3. table-cell(未脫離文檔流的)

          設(shè)置父元素的display:table-cell,并且vertical-align:middle,這樣子元素可以實(shí)現(xiàn)垂直居中。

          div{
          ??width:300px;
          ??height:300px;
          ??border:3pxsolid#555;
          ??display:table-cell;
          ??vertical-align:middle;
          ??text-align:center;
          }
          img{
          ??vertical-align:middle;
          }
        4. 利用flex

          將父元素設(shè)置為display:flex,并且設(shè)置align-items:center;justify-content:center;

          .container{
          ??width:300px;
          ??height:200px;
          ??border:3px?solid?#546461;
          ??display:-webkit-flex;
          ??display:flex;
          ??-webkit-align-items:center;
          ??align-items:center;
          ??-webkit-justify-content:center;
          ??justify-content:center;
          }
          .inner{
          ???border:3px?solid?#458761;
          ???padding:20px;
          }


        說一下塊元素和行元素
        參考回答:

        塊元素:獨(dú)占一行,并且有自動填滿父元素,可以設(shè)置margin和pading以及高度和寬度

        行元素:不會獨(dú)占一行,width和height會失效,并且在垂直方向的padding和margin會失效。


        多行元素的文本省略號
        參考回答:
        display:-webkit-box;
        -webkit-box-orient:vertical;
        -webkit-line-clamp:3;
        overflow:hidden;


        visibility=hidden,opacity=0,display:none之間的區(qū)別
        參考回答:

        opacity=0,該元素隱藏起來了,但不會改變頁面布局,并且,如果該元素已經(jīng)綁定一些事件,如click事件,那么點(diǎn)擊該區(qū)域,也能觸發(fā)點(diǎn)擊事件的

        visibility=hidden,該元素隱藏起來了,但不會改變頁面布局,但是不會觸發(fā)該元素已經(jīng)綁定的事件

        display=none,把元素隱藏起來,并且會改變頁面布局,可以理解成在頁面中把該元素刪除掉一樣。


        CSS選擇器有哪些,優(yōu)先級呢
        參考回答:

        id選擇器,class選擇器,標(biāo)簽選擇器,偽元素選擇器,偽類選擇器

        同一元素引用了多個樣式時,排在后面的樣式屬性的優(yōu)先級高;

        樣式選擇器的類型不同時,優(yōu)先級順序?yàn)椋?code style="font-size:14px;font-family:'Operator Mono', Consolas, Monaco, Menlo, monospace;color:rgb(30,107,184);background-color:rgba(27,31,35,.05);">id選擇器?>?class選擇器?>?標(biāo)簽選擇器

        標(biāo)簽之間存在層級包含關(guān)系時,后代元素會繼承祖先元素的樣式。如果后代元素定義了與祖先元素相同的樣式,則祖先元素的相同的樣式屬性會被覆蓋。繼承的樣式的優(yōu)先級比較低,至少比標(biāo)簽選擇器的優(yōu)先級低;

        帶有!important標(biāo)記的樣式屬性的優(yōu)先級最高;

        樣式表的來源不同時,優(yōu)先級順序?yàn)椋?code style="font-size:14px;font-family:'Operator Mono', Consolas, Monaco, Menlo, monospace;color:rgb(30,107,184);background-color:rgba(27,31,35,.05);">內(nèi)聯(lián)樣式?>?內(nèi)部樣式?>?外部樣式?>?瀏覽器用戶自定義樣式?>?瀏覽器默認(rèn)樣式


        position屬性的值有哪些及其區(qū)別
        參考回答:

        Position屬性把元素放置在一個靜態(tài)的,相對的,絕對的,固定的位置中,

        Static:位置設(shè)置為static的元素,他始終處于頁面流給予的位置,static元素會忽略任何top,buttom,left,right聲明

        Relative:位置設(shè)置為relative的元素,可將其移至相對于其正常位置的地方,因此left:20會將元素移至元素正常位置左邊20個像素的位置

        Absolute:此元素可定位于相對包含他的元素的指定坐標(biāo),此元素可通過left,top等屬性規(guī)定

        Fixed:位置被設(shè)為fiexd的元素,可定為與相對瀏覽器窗口的指定坐標(biāo),可以通過left,top,right屬性來定位


        inline-block、inline和block的區(qū)別
        參考回答:

        block元素會獨(dú)占一行,多個block元素會各自新起一行。默認(rèn)情況下,block元素寬度自動填滿其父元素寬度。

        block元素可以設(shè)置width,height屬性。塊級元素即使設(shè)置了寬度,仍然是獨(dú)占一行。block元素可以設(shè)置margin和padding屬性。

        inline元素不會獨(dú)占一行,多個相鄰的行內(nèi)元素會排列在同一行里,直到一行排列不下,才會新?lián)Q一行,其寬度隨元素的內(nèi)容而變化。

        inline元素設(shè)置width,height屬性無效。

        inline元素的margin和padding屬性,水平方向的padding-left,padding-right,margin-left,margin-right都產(chǎn)生邊距效果;但豎直方向的padding-top,padding-bottom,margin-top,margin-bottom不會產(chǎn)生邊距效果。

        inline-block:簡單來說就是將對象呈現(xiàn)為inline對象,但是對象的內(nèi)容作為block對象呈現(xiàn)。之后的內(nèi)聯(lián)對象會被排列在同一行內(nèi)。比如我們可以給一個link(a元素)inline-block屬性值,使其既具有block的寬度高度特性又具有inline的同行特性。


        css預(yù)處理器有什么
        參考回答:

        less,sass


        瀏覽 58
        點(diǎn)贊
        評論
        收藏
        分享

        手機(jī)掃一掃分享

        分享
        舉報
        評論
        圖片
        表情
        推薦
        點(diǎn)贊
        評論
        收藏
        分享

        手機(jī)掃一掃分享

        分享
        舉報
        1. <strong id="7actg"></strong>
        2. <table id="7actg"></table>

        3. <address id="7actg"></address>
          <address id="7actg"></address>
          1. <object id="7actg"><tt id="7actg"></tt></object>
            亚洲欧美综合一区 | 欧美日本在线看 | 小坏蛋好大好涨爽飞了 | 亚洲AV成人无码一区二区三区 | 欧美一区二区三区四区夜夜大片 | 日本人妻A片成人免费看片 | www.天天综合 | 午夜精品视频一区二区三区在线看 | 蜜臀99久久精品久久久久久软件 | 三级a视频 |