超全整理前端開發面試題——CSS篇(2016年)

2021-03-02 前端開發

介紹一下標準的CSS的盒子模型?低版本IE的盒子模型有什麼不同的?

(1)有兩種,IE 盒子模型、W3C 盒子模型;(2)盒模型:內容(content)、填充(padding)、邊界(margin)、邊框(border);(3)區別:IE的content部分把 border 和 padding計算了進去;

CSS選擇符有哪些?哪些屬性可以繼承?

*   1.id選擇器( # myid)    2.類選擇器(.myclassname)    3.標籤選擇器(div, h1, p)    4.相鄰選擇器(h1 + p)    5.子選擇器(ul > li)    6.後代選擇器(li a)    7.通配符選擇器( * )    8.屬性選擇器(a[rel = "external"])    9.偽類選擇器(a:hover, li:nth-child)*可繼承的樣式: font-size font-family color, UL LI DL DD DT;*不可繼承的樣式:border padding margin width height;

CSS優先級算法如何計算?

* 優先級就近原則,同權重情況下樣式定義最近者為準;* 載入樣式以最後載入的定位為準;優先級為:   !important >  id > class > tag    important 比 內聯優先級高

CSS3新增偽類有那些?

舉例: p:first-of-type 選擇屬於其父元素的首個 <p> 元素的每個 <p> 元素。 p:last-of-type  選擇屬於其父元素的最後 <p> 元素的每個 <p> 元素。 p:only-of-type 選擇屬於其父元素唯一的 <p> 元素的每個 <p> 元素。 p:only-child   選擇屬於其父元素的唯一子元素的每個 <p> 元素。 p:nth-child(2) 選擇屬於其父元素的第二個子元素的每個 <p> 元素。 :after    在元素之前添加內容,也可以用來做清除浮動。 :before   在元素之後添加內容 :enabled         :disabled  控制表單控制項的禁用狀態。 :checked   單選框或複選框被選中。

如何居中div?如何居中一個浮動元素?如何讓絕對定位的div居中?

給div設置一個寬度,然後添加margin:0 auto屬性

div{    width:200px;    margin:0 auto; }

居中一個浮動元素

 確定容器的寬高 寬500 高 300 的層  設置層的外邊距 .div {      width:500px ; height:300px;//高度可以不設      margin: -150px 0 0 -250px;      position:relative;     //相對定位      background-color:pink; //方便看效果      left:50%;      top:50%; }

讓絕對定位的div居中

 position: absolute;  width: 1200px;  background: none;  margin: 0 auto;  top: 0;  left: 0;  bottom: 0;  right: 0;

display有哪些值?說明他們的作用。

block        象塊類型元素一樣顯示。none         預設值。象行內元素類型一樣顯示。inline-block 象行內元素一樣顯示,但其內容象塊類型元素一樣顯示。list-item  象塊類型元素一樣顯示,並添加樣式列表標記。table      此元素會作為塊級表格來顯示inherit    規定應該從父元素繼承 display 屬性的值

position的值relative和absolute定位原點是?

 absolute   生成絕對定位的元素,相對於值不為 static的第一個父元素進行定位。  fixed (老IE不支持)    生成絕對定位的元素,相對於瀏覽器窗口進行定位。  relative    生成相對定位的元素,相對於其正常位置進行定位。  static    默認值。沒有定位,元素出現在正常的流中(忽略 top, bottom, left, right z-index 聲明)。  inherit    規定從父元素繼承 position 屬性的值。

CSS3有哪些新特性?

 新增各種CSS選擇器  (: not(.input):所有 class 不是「input」的節點)  圓角           (border-radius:8px)  多列布局        (multi-column layout)  陰影和反射        (Shadow\Reflect)  文字特效      (text-shadow、)  文字渲染      (Text-decoration)  線性漸變      (gradient)  旋轉          (transform)  增加了旋轉,縮放,定位,傾斜,動畫,多背景  transform:\scale(0.85,0.90)\ translate(0px,-30px)\ skew(-9deg,0deg)\Animation:

請解釋一下CSS3的Flexbox(彈性盒布局模型),以及適用場景?

:)

用純CSS創建一個三角形的原理是什麼?

把上、左、右三條邊隱藏掉(顏色設為 transparent)#demo {  width: 0;  height: 0;  border-width: 20px;  border-style: solid;  border-color: transparent transparent red transparent;}

一個滿屏 品 字布局 如何設計?

簡單的方式:    上面的div寬100%,    下面的兩個div分別寬50%,    然後用float或者inline使其不換行即可

經常遇到的瀏覽器的兼容性有哪些?原因,解決方法是什麼,常用hack的技巧 ?

* png24位的圖片在iE6瀏覽器上出現背景,解決方案是做成PNG8.* 瀏覽器默認的margin和padding不同。解決方案是加一個全局的*{margin:0;padding:0;}來統一。* IE6雙邊距bug:塊屬性標籤float後,又有橫行的margin情況下,在ie6顯示margin比設置的大。  浮動ie產生的雙倍距離 #box{ float:left; width:10px; margin:0 0 0 100px;}  這種情況之下IE會產生20px的距離,解決方案是在float的標籤樣式控制中加入 ——_display:inline;將其轉化為行內屬性。(_這個符號只有ie6會識別)  漸進識別的方式,從總體中逐漸排除局部。  首先,巧妙的使用「\9」這一標記,將IE遊覽器從所有情況中分離出來。  接著,再次使用「+」將IE8和IE7、IE6分離開來,這樣IE8已經獨立識別。  css      .bb{          background-color:#f1ee18;/*所有識別*/          .background-color:#00deff\9; /*IE6、7、8識別*/          +background-color:#a200ff;/*IE6、7識別*/          _background-color:#1e0bd1;/*IE6識別*/      }*  IE下,可以使用獲取常規屬性的方法來獲取自定義屬性,   也可以使用getAttribute()獲取自定義屬性;   Firefox下,只能使用getAttribute()獲取自定義屬性。   解決方法:統一通過getAttribute()獲取自定義屬性。*  IE下,even對象有x,y屬性,但是沒有pageX,pageY屬性;   Firefox下,event對象有pageX,pageY屬性,但是沒有x,y屬性。*  解決方法:(條件注釋)缺點是在IE瀏覽器下可能會增加額外的HTTP請求數。*  Chrome 中文界面下默認會將小於 12px 的文本強制按照 12px 顯示,   可通過加入 CSS 屬性 -webkit-text-size-adjust: none; 解決。超連結訪問過後hover樣式就不出現了 被點擊訪問過的超連結樣式不在具有hover和active了解決方法是改變CSS屬性的排列順序:L-V-H-A :  a:link {} a:visited {} a:hover {} a:active {}

li與li之間有看不見的空白間隔是什麼原因引起的?有什麼解決辦法?

行框的排列會受到中間空白(回車\空格)等的影響,因為空格也屬於字符,這些空白也會被應用樣式,佔據空間,所以會有間隔,把字符大小設為0,就沒有空格了。

為什麼要初始化CSS樣式。

- 因為瀏覽器的兼容問題,不同瀏覽器對有些標籤的默認值是不同的,如果沒對CSS初始化往往會出現瀏覽器之間的頁面顯示差異。- 當然,初始化樣式會對SEO有一定的影響,但魚和熊掌不可兼得,但力求影響最小的情況下初始化。最簡單的初始化方法: * {padding: 0; margin: 0;} (強烈不建議)淘寶的樣式初始化代碼:body, h1, h2, h3, h4, h5, h6, hr, p, blockquote, dl, dt, dd, ul, ol, li, pre, form, section, legend, button, input, textarea, th, td { margin:0; padding:0; }body, button, input, select, textarea { font:12px/1.5tahoma, arial, \5b8b\4f53; }h1, h2, h3, h4, h5, h6{ font-size:100%; }address, cite, dfn, em, var { font-style:normal; }code, kbd, pre, samp { font-family:couriernew, courier, monospace; }small{ font-size:12px; }ul, ol { list-style:none; }a { text-decoration:none; }a:hover { text-decoration:underline; }sup { vertical-align:text-top; }sub{ vertical-align:text-bottom; }legend { color:#000; }section, img { border:0; }button, input, select, textarea { font-size:100%; }table { border-collapse:collapse; border-spacing:0; }

absolute的containing block(容器塊)計算方式跟正常流有什麼不同?

無論屬於哪種,都要先找到其祖先元素中最近的 position 值不為 static 的元素,然後再判斷:1、若此元素為 inline 元素,則 containing block 為能夠包含這個元素生成的第一個和最後一個 inline box 的 padding box (除 margin, border 外的區域) 的最小矩形;2、否則,則由這個祖先元素的 padding box 構成。如果都找不到,則為 initial containing block。補充:1. static(默認的)/relative:簡單說就是它的父元素的內容框(即去掉padding的部分)2. absolute: 向上找最近的定位為absolute/relative的元素3. fixed: 它的containing block一律為根元素(html/body),根元素也是initial containing block

CSS裡的visibility屬性有個collapse屬性值是幹嘛用的?在不同瀏覽器下以後什麼區別?

position跟display、margin collapse、overflow、float這些特性相互疊加後會怎麼樣?

對BFC規範(塊級格式化上下文:block formatting context)的理解?

(W3C CSS 2.1 規範中的一個概念,它是一個獨立容器,決定了元素如何對其內容進行定位,以及與其他元素的關係和相互作用。) 一個頁面是由很多個 Box 組成的,元素的類型和 display 屬性,決定了這個 Box 的類型。 不同類型的 Box,會參與不同的 Formatting Context(決定如何渲染文檔的容器),因此Box內的元素會以不同的方式渲染,也就是說BFC內部的元素和外部的元素不會互相影響。

css定義的權重

以下是權重的規則:標籤的權重為1,class的權重為10,id的權重為100,以下例子是演示各種定義的權重值:/*權重為1*/div{}/*權重為10*/.class1{}/*權重為100*/#id1{}/*權重為100+1=101*/#id1 div{}/*權重為10+1=11*/.class1 div{}/*權重為10+10+1=21*/.class1 .class2 div{}如果權重相同,則最後定義的樣式會起作用,但是應該避免這種情況出現

請解釋一下為什麼會出現浮動和什麼時候需要清除浮動?清除浮動的方式

移動端的布局用過媒體查詢嗎?

使用 CSS 預處理器嗎?喜歡那個?

SASS (SASS、LESS沒有本質區別,只因為團隊前端都是用的SASS)

CSS優化、提高性能的方法有哪些?

瀏覽器是怎樣解析CSS選擇器的?

在網頁中的應該使用奇數還是偶數的字體?為什麼呢?

margin和padding分別適合什麼場景使用?

抽離樣式模塊怎麼寫,說出思路,有無實踐經驗?[阿里航旅的面試題]

元素豎向的百分比設定是相對於容器的高度嗎?

全屏滾動的原理是什麼?用到了CSS的那些屬性?

什麼是響應式設計?響應式設計的基本原理是什麼?如何兼容低版本的IE?

視差滾動效果,如何給每頁做不同的動畫?(回到頂部,向下滑動要再次出現,和只出現一次分別怎麼做?)

::before 和 :after中雙冒號和單冒號 有什麼區別?解釋一下這2個偽元素的作用。

如何修改chrome記住密碼後自動填充表單的黃色背景 ?

你對line-height是如何理解的?

設置元素浮動後,該元素的display值是多少?(自動變成display:block)

怎麼讓Chrome支持小於12px 的文字?

讓頁面裡的字體變清晰,變細用CSS怎麼做?(-webkit-font-smoothing: antialiased;)

font-style屬性可以讓它賦值為「oblique」 oblique是什麼意思?

position:fixed;在android下無效怎麼處理?

如果需要手動寫動畫,你認為最小時間間隔是多久,為什麼?(阿里)

多數顯示器默認頻率是60Hz,即1秒刷新60次,所以理論上最小間隔為1/60*1000ms = 16.7ms

display:inline-block 什麼時候會顯示間隙?(攜程)

移除空格、使用margin負值、使用font-size:0、letter-spacing、word-spacing

overflow: scroll時不能平滑滾動的問題怎麼處理?

有一個高度自適應的div,裡面有兩個div,一個高度100px,希望另一個填滿剩下的高度。

png、jpg、gif 這些圖片格式解釋一下,分別什麼時候用。有沒有了解過webp?

什麼是Cookie 隔離?(或者說:請求資源的時候不要讓它帶cookie怎麼做)

如果靜態文件都放在主域名下,那靜態文件請求的時候都帶有的cookie的數據提交給server的,非常浪費流量,所以不如隔離開。因為cookie有域的限制,因此不能跨域提交請求,故使用非主要域名的時候,請求頭中就不會帶有cookie數據,這樣可以降低請求頭的大小,降低請求時間,從而達到降低整體請求延時的目的。同時這種方式不會將cookie傳入Web Server,也減少了Web Server對cookie的處理分析環節,提高了webserver的http請求的解析速度。

style標籤寫在body後與body前有什麼區別?

什麼是CSS 預處理器 / 後處理器?

- 預處理器例如:LESS、Sass、Stylus,用來預編譯Sass或less,增強了css代碼的復用性,還有層級、mixin、變量、循環、函數等,具有很方便的UI組件模塊化開發能力,極大的提高工作效率。- 後處理器例如:PostCSS,通常被視為在完成的樣式表中根據CSS規範處理CSS,讓其更有效;目前最常做的是給CSS屬性添加瀏覽器私有前綴,實現跨瀏覽器兼容性的問題。

相關焦點

  • 超全整理前端開發面試題——HTML篇(2016年)
    https://github.com/markyun/My-blog/tree/master/Front-end-Developer-Questions/Questions-and-Answers本文由我收集總結了一些前端面試題,初學者閱後也要用心鑽研其中的原理,重要知識需要系統學習、透徹學習,形成自己的知識鏈。萬不可投機取巧,臨時抱佛腳只求面試僥倖混過關是錯誤的!
  • 2020最新Web前端經典面試題試題及答案(持續更新)-開課吧
    Web前端面試題Web前端面試題:說說你對webpack的看法解析:webpack是一個模塊打包工具,可以使用webpack能很好的管理、打包web開發中所用到的HTML、js、css以及各種靜態文件(圖片、字體等),讓開發過程更加高效。對於不同類型的資源,webpack有對應的模塊加載器。webpack模塊打包器會分析模塊間的依賴關係,最後生成了優化且合併後的靜態資源。
  • 2020 年前端面試複習必讀文章【超三百篇】
    : https://zhuanlan.zhihu.com/p/25028045[222]前端基礎篇之HTTP協議: https://juejin.im/post/5cd0438c6fb9a031ec6d3ab2[223]都9102年了,還問GET和POST的區別: https://segmentfault.com/a/1190000018129846[224]
  • 【乾貨】各大網際網路公司前端筆試面試題–HTML,CSS篇
    很多面試題是我自己面試BAT親身經歷碰到的。整理分享出來希望更多的前端er共同進步吧,不僅適用於求職者,對於鞏固複習前端基礎更是大有裨益。而更多的題目是我一路以來收集的,也有往年的,答案不確保一定正確,如有錯誤或有更好的解法,還請斧正。前面幾題是會很基礎,越下越有深度。1.你做的頁面在哪些流覽器測試過?
  • 合格前端開發該了解的css知識
    css在現階段的前端面試中佔得比重確實低,有些公司甚至都只是一筆帶過。
  • 【面試題】CSS知識點整理(附答案)
    Flex 布局教程:語法篇[5] 、Flex 布局教程:實例篇[6]6. display: none和 visibility:hidden的區別display:none,會觸發reflow(回流),進行渲染。visibility:hidden,只會觸發repaint(重繪),因為沒有發現位置變化,不進行渲染。
  • 前端開發相關速查表Cheatsheets整理集合
    對於前端開發工程師來說需要花大量的時間去閱讀我們所使用的語言或相關類庫、框架的 API 文檔。當自己寫出函式庫時也會為自己的函式庫加上適當的文檔說明,這是一個避免不了的過程。畢竟前端開發工程師必須把腦力花在邏輯思考上,而不是記憶這些 API 文檔。
  • 2020Web前端開發常見面試題匯總-開課吧
    2020Web前端面試題了解一些面試題及答案,可以幫助自己順利通過面試哦。以下是小編為大家整理的web前端面試題及答案,供各位參考。Web前端面試題:異步請求適合在哪個生命周期調?解析:官實例的異步請求是在mounted命周期中調的,實際上也可以在created命周期中調。Web前端面試題:各個生命周期的作用是什麼?
  • 好程式設計師web前端培訓分享HTML/CSS部分面試題
    好程式設計師web前端培訓分享HTML/CSS部分面試題。準備參加web前端面試的小夥伴們一起看一看吧,希望能夠對大家有所幫助! 4個部分一起構成了css中元素的盒模型。 2、行內元素有哪些?塊級元素有哪些? 空(void)元素有那些?
  • web前端開發面試題一之(html,css)
    看全部問題和答案點這裡(https://github.com/markyun/My-blog/tree/master/Front-end-Developer-Questions/Questions-and-Answers)本文由我收集總結了一些前端面試題,初學者閱後也要用心鑽研其中的原理,重要知識需要系統學習、透徹學習,形成自己的知識鏈。
  • 前端面試題集合
    (instanceOf和constructor可以,但是有原型鏈斷裂的風險,Object.toString.call()最穩定)instanceOf和constructor的區別原型鏈斷裂了以後的結果是什麼如果讓你實現一個promise怎麼樣實現如何學前端的,看了哪些書博客寫了多少篇你的技術亮點在哪裡寫一下實現合理化
  • 開課吧:2020Web前端開發常見面試題及答案,提高面試通過率!
    Web前端開發面試題及答案問題:實現節流函數(throttle)解析:防抖函數原理:規定在個單位時間內,只能觸發次函數。以上就是小科今天整理提供的Web前端開發面試題,希望為Web前端同學提供了有用的面試素材,以後小科每日均會提供Python、Web及MySQL資料庫相關的習題。學習沒有捷徑,希望大家都能少走一些彎路,順利找到工作!
  • 2020年web前端開發面試題及解析(三)
    最新2020年的web前端開發面試題:問題1:px、em、rem、vw單位分別有什麼區別
  • 2020Web前端開發常見面試題及答案全解析-開課吧Web前端
    Web前端開發問題一:前端如何進行seo優化,以下說法錯誤的是:A.爬蟲依賴於標籤來確定上下文和各個關鍵字的權重;解析:title 指圖片的信息(滑鼠移到圖片上顯示)、alt 指圖片不顯示時顯示的文字以上就是小科今天整理提供的Web前端開發面試題,希望為Web前端同學提供了有用的面試素材,以後酷仔每日均會提供Python及Web相關的習題。
  • 金三銀四跳槽面試季,我整理前端知識做了個網站
    每年的金三銀四,都將迎來求職面試的一個高峰期,為什麼會有那麼多的求職需求?多是因為以下幾個來源:已拿 offer 等年終獎的:年前已經找到機會,領了年終獎辭職要到新公司報到的臨時起意要辭及裸辭的:考慮到領了年終獎再走,節後裸辭或者迅速找到工作機會,完成辭職的因職業發展而辭職的:節後發現老闆沒有提拔自己到目標職位,自己發展受阻,離職尋找新工作工作計劃新誕生的職位:許多企業因決策流程長,常在年後確定來年工作計劃
  • 阿里盒馬前端面試,你要的答案來了
    最近有一篇阿里盒馬前端面試題被各大社區轉載,而且據稱這是阿里校招面試題,我看完以後,簡直驚呆了,打死都不信。今天特意針對他們發的一面,把對應的答案整理了一些。請先做個自我介紹 我是河畔一角,11年畢業,畢業後先從事JAVA方向開發,後在13年轉為前端。
  • 17個CSS知識點整理
    Title :為該屬性提供信息12、描述css reset的作用和用途。css reset的作用:Reset重置瀏覽器的css默認屬性;用途:瀏覽器的品種不同,樣式不同,然後重置,讓他們統一;13、解釋css sprites,如何使用。
  • 360子公司,華閱文化前端面試 面試題,技術問題,邏輯題詳解
    寫這篇文章的時候,正躺在深圳的出租房內。華閱文化,算是比較友善的一家公司。對實習生還好。2019.1.9收到的面試。和hr老哥,談到21號上午去。(樓主在職)不多說,直接面試題。3.看一段css樣式,寫出div的樣子。4盒子margin10,padding10,border2px盒子高度為px,總高度為100px.css實現!5清除浮動的方法,列舉6對flex布局的了解。實現一下表格。
  • web前端開發工程師面試題大全
    最近看到web群裡的人,特別關心面試web前端開發工程師時,面試官都會問那些問題,今天我整理了一份,web前端開發工程師崗位面試題的大全,大家可看看
  • 前端開發必備的CSS命名規範與常用CSS代碼集合
    編輯 | web前端開發來源 | web前端開發我們在用html+css進行網頁的排版布局時,