2019前端面試系列——CSS面試題

盒模型

/* 紅色區域的大小是多少?200 - 20*2 - 20*2 = 120 */
.box {
    width: 200px;
    height: 200px;
    padding: 20px;
    margin: 20px;
    background: red;
    border: 20px solid black;
    box-sizing: border-box;
}
/* 標準模型 */
box-sizing:content-box;
 /*IE模型*/
box-sizing:border-box;

如何實現一個最大的正方形

padding-bottom 撐開邊距css

section {
    width:100%;
    padding-bottom: 100%;
    background: #333;
}

一行水平居中,多行居左

<div><span>我是多行文字。我是多行文字。我是多行文字。我是多行文字。我是多行文字。我是多行文字。我是多行文字。我是多行文字。我是多行文字。我是多行文字。</span></div>
<div><span>我是一行文字</span></div>

<style>
div{text-align: center;}
div span{display: inline-block;text-align: left;}
</style>

水平垂直居中

貼上騰訊大佬的一篇文章:16種方式實現水平居中垂直居中html

兩欄佈局,左邊固定,右邊自適應,左右不重疊

flex作自適應佈局很容易,但兼容性很差,這裏統一不用flex佈局前端

.left{
    float:left;
    width:300px;
    margin-right: 10px;
    background: red;
}
.right{
    overflow: hidden; /* 建立BFC */
    background: yellow;
}

如何實現左右等高佈局

table佈局兼容性最好,固然flex佈局的align-items: stretch;也行面試

<div class="layout">
  <div class="layout left">left</div>
  <div class="layout right">center</div>
</div>

<style>
.layout{
  display: table;
  width: 100%;
}
.layout div{
  display: table-cell;
}
.layout .left{
  width: 50%;
  height: 200px;
  background: red;
}
.layout .right{
  width: 50%;
  background: yellow;
}
</style>

畫三角形

.shape {
    width: 0;
    height: 0;
    border-left: 50px solid transparent;
    border-right: 50px solid transparent;
    border-top: 50px solid transparent;
    border-bottom: 50px solid blue;
    background: white;
}
  1. link是XHTML標籤,除了加載CSS外,還能夠定義RSS等其餘事務;@import屬於CSS範疇,只能加載CSS
  2. link引用CSS時,在頁面載入時同時加載;@import須要頁面網頁徹底載入之後加載
  3. link無兼容問題;@import是在CSS2.1提出的,低版本的瀏覽器不支持
  4. link支持使用Javascript控制DOM去改變樣式;而@import不支持

BFC理解

BFC觸發條件:瀏覽器

  1. 根元素,即html
  2. float的值不爲none(默認)
  3. position的值爲absolute或fixed
  4. overflow的值不爲visible(默認)
  5. display的值爲inline-block、table-cell、table-caption

BFC特性:佈局

  1. 內部的Box會在垂直方向上一個接一個放置。
  2. Box垂直方向的距離由margin決定,屬於同一個BFC的兩個相鄰Box的margin會發生重疊。
  3. 每一個元素的margin box 的左邊,與包含塊border box的左邊相接觸。
  4. BFC的區域不會與float box重疊。(可用於清浮動)
  5. BFC是頁面上的一個隔離的獨立容器,容器裏面的子元素不會影響到外面的元素。
  6. 計算BFC的高度時,浮動元素也會參與計算。

2019前端面試系列——CSS面試題
2019前端面試系列——JS面試題
2019前端面試系列——JS高頻手寫代碼題
2019前端面試系列——Vue面試題
2019前端面試系列——HTTP、瀏覽器面試題post

相關文章
相關標籤/搜索