CSS作為前端開發中必不可少的一部分,也是很多面試官經常會詢問的知識點。下面整理了一些常被問到的CSS面試題。
1. 請解釋一下CSS reset和normalize.css的作用和區別。
CSS reset是指用一組CSS規則將瀏覽器提供的默認樣式全部重置,使得所有元素的默認樣式完全一致。而normalize.css則是對默認的HTML元素樣式進行一些良好的初始化和規范化,只保留有用的默認樣式,使得所有瀏覽器的默認樣式都是一致的,同時處理了許多其他瀏覽器兼容性問題,而且保留了有意義的默認樣式。
2. 請解釋一下Em和Rem的區別。
Em和Rem都是相對于父元素字體大小的單位。但Em是相對于父元素的字體大小,而Rem是相對于根元素(即html元素)的字體大小。Rem相對的是文檔流,頁面上的任何一個元素的Rem值相同,不會像Em隨層級的深入而變化。
3. 如何清除浮動?
可以使用clearfix技巧,即在浮動元素末尾添加一個空標簽并清除它的浮動,如下所示: .clearfix::after { content: ""; display: block; clear: both; }
4. 請解釋一下BFC的概念和作用。
BFC(塊級格式化上下文)是一個獨立的渲染區域,具有自己的布局規則。通過創建BFC,可以隔離部分盒模型,使得它們不會影響到外面的元素。常見的創建BFC的方法有float、position、display為table-cell和inline-block等。BFC還可以解決外邊距重疊問題等布局問題。
5. 如何實現垂直居中?
通常有三種方法來實現垂直居中: (1) 使用display:flex和align-items:center使父元素居中對齊子元素。 (2) 使用relative+absolute的方案,取父元素的高度,在子元素上下padding相同高度,在子元素內使用absolute+top:50%;margin-top:-子元素高度/2。 (3) 使用table實現,將父元素設置為display: table-cell; vertical-align: middle; 子元素為display:inline-block;
以上是一些經典的CSS面試問題,希望能對有需求的人提供幫助。
上一篇mysql檢查約束怎么做
下一篇mysql檢查表已經存在