CSS常考知識點

2020-12-04 前端術巔

本章介紹一下CSS的知識點,CSS的東西很多,下面這些是比較高頻的考點,希望對你有所幫助:

2.1 常用選擇器

面試官:請介紹一下常用的選擇器及其優先級吧(基礎題)

在CSS中,選擇器是一種模式,用於選擇需要添加樣式的元素。常用的選擇器按優先級從高往低分別是:

ID選擇器(優先級最高,一般用於定義容器骨架,很少用於樣式選擇)類選擇器(class selectors) (例如.example)、屬性選擇器(attributes selectors)(例如[type="radio"])、偽類(pseudo-classes)(例如:hover)類型選擇器(type selectors)(例如 h1)和 偽元素(pseudo-elements)(例如::before)通配選擇符(universal selector)()、*關係選擇符(combinators) (+, >, ~, ' ') 和 **否定偽類(negation pseudo-class)(:not()) 對優先級沒有影響(但是,在 :not()內部聲明的選擇器是會影響優先級)當然,除了以上這些。給元素添加的內聯樣式 (例如 style="font-weight:bold") 總會覆蓋外部樣式表的任何樣式 ,因此可看作是具有最高的優先級

面試官:複雜的項目裡往往會遇到樣式給覆蓋的問題,解決此類問題行之有效方法有哪些呢?(拓展題)

最簡單的方法是給這個樣式後面增加 !important,這樣該樣式的聲明將覆蓋任何其他聲明,但是使用 !important 是一個壞習慣,應該儘量避免,因為這破壞了樣式表中固有的級聯規則使得調試找bug變得更加困難了。當兩條相互衝突的帶有!important規則的聲明被應用到相同的元素上時,擁有更大優先級的聲明將會被採用,因此我推薦的方法有2個:

利用CSS級聯屬性,給該元素聲明一個優先級更高的選擇器,如:.example span {} 給span加個 .text的類: .example .text {}增加一個或多個其他元素,使選擇器變得更加具體,並獲得更高的優先級,如 .example .text {} 改成 .example > div > .text {}面試官:剛提到了!important的弊端,那我們什麼時候可以使用!important呢?(發散題)

這個題目是個發散題,一般人很難答得全,其實有兩種情況我們可以使用 !important:

一種情況是你的網站上有一個設定了全站樣式的CSS文件,同時你(或是你同事)寫了一些很差的內聯樣式。在這種情況下,你就可以在你全局的CSS文件中寫一些!important的樣式來覆蓋掉那些直接寫在元素上的行內樣式。第二種情況是已經給某個樣式加持了優先級非常高的選擇器,在無法改HTML結構的情況下,可以使用 !important來做覆蓋。2.2 布局常用單位

面試官:請列舉一下我們css布局常用的單位及區別(基礎題)

px:絕對單位,頁面按精確像素展示%:相對單位,根據父容器進行百分比計算em:相對單位,基準點為父節點字體的大小,如果自身定義了font-size按自身來計算(瀏覽器默認字體是16px),整個頁面內1em不是一個固定的值rem:相對單位,可理解為 root em, 相對根節點html的字體大小來計算,CSS3新加屬性,chrome/firefox/IE9+支持2.3 塊級和行內元素

面試官:請簡單介紹一下塊級元素和行內元素的區別,並分別舉例5個(基礎題)

塊級元素與行內元素有幾個關鍵區別:

- 格式:默認情況下,塊級元素會新起一行- 內容模型:一般塊級元素可以包含行內元素和其他塊級元素。這種結構上的包含繼承區別可以使塊級元素創建比行內元素更」大型「的結構常見的塊級元素如 div、header、footer、ul、p標籤等;常見的行內元素如 span、strong、input、label、i標籤等

2.4 常用定位方式

面試官:css裡定位方式有哪幾種,它們各有什麼用途呢?(基礎題)

CSS裡共有5種定位方式,它們分別是:

static(正常文檔流定位): 正常文檔流定位,此時 top, right, bottom, left 和 z-index 屬性無效,塊級元素從上往下縱向排布,行級元素從左向右排列relative(相對定位): 相對原文檔流布局進行偏移,設置了相對定位的元素可以脫離文檔流移動。往往我們要微調一些 內聯圖標的位置時會用到,或需要對該元素做z-index分層absolute(絕對定位): 相對於最近的非 static 定位祖先元素的偏移,來確定元素位置。彈層內一些固定在某處的元素 往往通過絕對定位來實現,比如關閉按鈕fixed(固定定位): 相對於屏幕視口(viewport)的位置來指定元素位置。元素的位置在屏幕滾動時不會改變,比如那種回到頂部的按鈕一般都是用此定位方式sticky(粘性定位):特性近似於relative和fixed的合體,經常用於實現垂直滾動 "吸頂" 效果面試官:元素設置了非static定位後可以用z-index做分層,說一下你對z-index的理解 (發散題)

CSS 中的z-index屬性控制重疊元素的垂直疊加順序,類似PS的圖層概念。默認元素的z-index為0,我們可以修改z-index來控制元素的圖層位置,而且z-index只能影響設置了position值的元素,我們可以設置z-index為負數去隱藏某個圖層

面試官:上面提到如果要微調一個行內元素的垂直位置,會使用relative布局,除此之外還有別的方法嗎?(基礎題)

這個問題很好回答,CSS3提供了transform屬性讓我們很方便對一個元素進行縮放、旋轉和平移,我們可以使用 translate(x, y)來對元素的位置進行微調。

面試官:相比較relative,為什麼現在更推薦使用translate來改變位置呢?

答案是改變transform或opacity不會觸發瀏覽器重新布局(reflow)或重繪(repaint),只會觸發複合(compositions)。而改變絕對定位會觸發重新布局,進而觸發重繪和複合。transform使瀏覽器為元素創建一個 GPU 圖層,但改變絕對定位會使用到 CPU。 因此translate()更高效,可以縮短平滑動畫的繪製時間。

2.5 常用布局方案

面試官:介紹一下你經常使用的一些布局方案吧(基礎題)

常用布局方案有 靜態布局浮動布局百分比流式布局inline-block水平布局flex彈性布局響應式布局rem布局等。現在最常用的是 flex彈性布局 和 rem布局。

面試官:實現垂直居中你一般有哪幾種方案?(基礎題)

最簡單的方法是用使用 flex布局:

<div> <div>內容</div></div>.container { display: flex; align-items: center; justify-content: center;}或者利用定位:

.container { position: relative;}.content { width: 100px; height: 100px; position: absolute; left: 0; right: 0; bottom: 0; top: 0;}或者採用BFC + transform:

.container { width: 500px; height: 500px; overflow: hidden; /*使容器成為一個BFC*/}.content { width: 100px; height: 100px; margin-top: 50%; transform: translateY(-50%);}2.6 層疊上下文(BFC)

面試官:正常流式布局下,我們如果給2個相鄰的塊級元素同時設置margin-top和margin-bottom為10px,他們實際會產生多少margin呢?(基礎題)

這個是日常做布局時經常會遇到的問題,答案當然是 10px,不過很多人是知其然卻不知其所以然,所以就算這個答對了,面試官往往也不會「罷休」

面試官:OK,回答正確。可以繼續講一下出現這個邊距摺疊的原因和如何避免這個問題嗎?(拓展題)

常規流布局時,盒子都是垂直排列,兩者之間的間距由各自的外邊距所決定,但不是二者外邊距之和。在CSS當中,相鄰的兩個盒子(可能是兄弟關係也可能是祖先關係)的外邊距可以結合成一個單獨的外邊距。這種合併外邊距的方式被稱為摺疊,並且因而所結合成的外邊距稱為摺疊外邊距。摺疊的結果按照如下規則計算:

兩個相鄰的外邊距都是正數時,摺疊結果是它們兩者之間較大的值。兩個相鄰的外邊距都是負數時,摺疊結果是兩者絕對值的較大值。兩個外邊距一正一負時,摺疊結果是兩者的相加的和。至於如何避免這個問題,就需要引出 塊級格式化上下文(Block Formatting Context,BFC) 的概念,外邊距摺疊(Margin collapsing)只會發生在屬於同一BFC的塊級元素之間,因此我們只需把兩個塊級元素設置為單獨的BFC,就能解決這個問題,最簡單的方式是給兩個區塊設置 overflow: hidden;

面試官:OK,回答正確,不過除了解決外邊距塌陷, 你知道BFC還有其他的用途嗎?(發散題)

除了解決外邊距塌陷,應用BFC還能讓 浮動元素的容器也能被撐開:浮動元素是會脫離文檔流的(絕對定位元素會脫離文檔流)。如果一個沒有高度或者height是auto的容器的子元素是浮動元素,則該容器的高度是不會被撐開的。我們可以給容器加一個 overflow: hidden; 來解決這個問題:

.container { height: auto; border: 1px solid #ddd; overflow: hidden; /*使容器成為一個BFC*/}.child { float: right; width: 200px; height: 100px; background: #f0f0f0;}不過現在浮動不常用了,利用BFC還有其他2個常用的用途:

兩欄布局,防止文字環繞等防止元素塌陷拓展:BFC的觸發條件

塊格式化上下文(Block Formatting Context,BFC) 是Web頁面的可視化CSS渲染的一部分,是塊盒子的布局過程發生的區域,也是浮動元素與其他元素交互的區域。下面這些條件會觸發BFC:

根元素(<html>)浮動元素(元素的 float 不是 none)絕對定位元素(元素的 position 為absolute 或 fixed)行內塊元素(元素的 display 為 inline-block)表格單元格(元素的 display為 table-cell,HTML表格單元格默認為該值)表格標題(元素的 display 為 table-caption,HTML表格標題默認為該值)匿名表格單元格元素(元素的 display為table、table-row、 table-row-group、table-header-group、table-footer-group(分別是HTML table、row、tbody、thead、tfoot的默認屬性)或 inline-table)overflow 值不為 visible 的塊元素display 值為 flow-root 的元素contain 值為layout、content或 paint 的元素彈性元素(display為 flex 或 inline-flex元素的直接子元素)網格元素(display為 grid 或 inline-grid 元素的直接子元素)多列容器(元素的 column-count 或 column-width 不為 auto,包括 column-count 為 1)column-span 為 all 的元素始終會創建一個新的BFC,即使該元素沒有包裹在一個多列容器中。更多BFC的知識歡迎點擊這個 傳送門 進行查看

2.7 媒體查詢

面試官:請講一下你對媒體查詢的理解以及它的作用(基礎題)

媒體查詢由一個可選的媒體類型和零個或多個使用媒體功能的限制了樣式表範圍的表達式組成,例如寬度、高度和顏色。媒體查詢,添加自CSS3,允許內容的呈現針對一個特定範圍的輸出設備而進行裁剪,而不必改變內容本身, 非常適合web網頁應對不同型號的設備而做出對應的響應適配(即響應式布局)

<!-- link元素中的CSS媒體查詢 --><link rel="stylesheet" media="(max-width: 800px)" href="example.css" /><!-- 樣式表中的CSS媒體查詢 --><style>@media (max-width: 600px) { .facet_sidebar { display: none; }}</style>2.8 盒模型

面試官:請簡單介紹一下你對盒模型的理解(基礎題)

當對一個文檔進行布局(layout)的時候,瀏覽器的渲染引擎會根據標準之一的 CSS 基礎框盒模型(CSS basic box model),將所有元素表示為一個個矩形的盒子(box)。CSS 決定這些盒子的大小、位置以及屬性(例如顏色、背景、邊框尺寸…)。盒模型由 content(內容)、padding(內邊距)、border(邊框)、margin(外邊距)組成:

2.9 偽類和偽元素

面試官:請介紹一下什麼是偽類和偽元素,並介紹一下他們的區別(基礎題)

偽類(pseudo-class) 是一個以冒號(:)作為前綴,被添加到一個選擇器末尾的關鍵字,當你希望樣式在特定狀態下才被呈現到指定的元素時,你可以往元素的選擇器後面加上對應的偽類偽元素用於創建一些不在文檔樹中的元素,並為其添加樣式。比如說,我們可以通過::before來在一個元素前增加一些文本,並為這些文本添加樣式。雖然用戶可以看到這些文本,但是這些文本實際上不在文檔樹中他們的區別可以概括為:偽類是通過在元素選擇器上加入偽類改變元素狀態,而偽元素通過對元素的操作進行對元素的改變

2.10 動畫與過渡

面試官:CSS動畫和過渡有什麼區別嗎?(基礎題)

過渡 Transition:需要事件觸發,比如 hover,focus,checked , js修改等過渡效果是一次性的,無法循環只能定義開始和結束狀態,不能定義中間狀態控制粒度比較粗糙,動畫 Animation:不需要事件觸發顯示地隨著時間的流逝,周期性的改變元素的css屬性值。區別於一次性通過百分比來定義過程中的不同形態,可以很細膩 總得來說,transition更加粗一點,比如過渡的速度進行了封裝,可以控制是勻速改變還是貝塞爾曲線之類的。而animation提供的keyframe方法,可以手動去指定每個階段的屬性。此外animation還封裝了循環次數,動畫延遲等功能,配置自由且功能強大。

面試官:CSS3如何實現逐幀動畫嗎?(拓展題)

CSS3 可以使用 animation-timing-function 的階梯函數 steps(number_of_steps, direction) 來實現逐幀動畫的連續播放。並配合雪碧圖,通過更改 background-image 的值實現幀的切換。

本文由博客群發一文多發等運營工具平臺 OpenWrite發布

相關焦點

  • 全面掌握CSS基本知識點
    拓展知識點 margin屬性:行內元素是沒有上下外邊距的,只有左右外邊距,所以儘量不要設置行內元素的內外上下邊距,設計寬高也是無效的兩個相鄰的塊級元素一個設置了margin-bottom、另一個設置margin-top的時候,會發生外邊距塌陷。兩個元素之間的margin值會合併,margin值最終取較大值。
  • 心理學常考易錯知識點——泛化與分化
    泛化與分化這類題目在歷年教師考試試題裡也經常遇到,很多考生和學員也經常在這個題目中摔跤絆跟頭,所以中公教師今天特意為大家準備了關於心理學常考易錯知識點——泛化與分化的相關練習題,希望能夠幫助大家對這個知識點有一個更深入的理解和記憶,以防於未然:一、提出者蘇聯生理學家、心理學家、醫師、高級神經活動學說的創始人巴普洛夫
  • 事業單位地震常考知識點
    在事業單位的考試中,地理的知識會經常出現,而地理所涉及的內容很廣,考生往往會對它束手無策,複習也無從下手,這就需要我們在平時多注意積累一些地理的常考知識點,今天我們就來說說地理中常考的一個熱點——地震。
  • 初三化學重要知識點,常考題型輔導,很全!
    我們遍觀各種化學考試,總會有一些知識點反覆的考,有一些題型幾乎每次考試都會碰到,而這些題目的難度其實並不大,關鍵在於我們對書上相關知識點的掌握程度,距離中考還有32天,小星為大家盤點了初三化學輔導中的重要知識點和常考題型,可以說是很全了。
  • 高中物理逢考過篩子內容:125個常考知識點+55道常考題!
    每年的物理試卷都有很多必考的知識點,要善於總結這類內容,做一個較好的歸納,其次要對各類物理模型與各類解題方法進行歸類,探究適合自己的解題方法,形成自己的破題套路與答題技巧,這樣在考試的緊張時間下你會更加從容。除此之外還要熟悉各類試卷的常考必考題型,了解出題思路與題型常規和一般的解題竅門,做到心中有數,這能有效地提升自己解題速度與準確率!
  • 2020中考化學常考知識點之離子概念
    中考網整理了關於2020中考化學常考知識點之離子概念,希望對同學們有所幫助,僅供參考。   離子概念   離子:帶電的原子或原子團叫離子。帶正電的離子叫陽離子;帶負電的離子叫陰離子。   離子裡:質子數=核電荷數=電子數±帶電量。
  • 2020初中語文常考知識點:《昆蟲記》
    中考網整理了關於2020初中語文常考知識點:《昆蟲記》,希望對同學們有所幫助,僅供參考。   主要內容   《昆蟲記》是一本講昆蟲生活的書,涉及蜣螂、螞蟻、西緒福斯蟲等100多種昆蟲。在這個世界上,人類現在已知的昆蟲種類約100萬種,佔所有已經知曉的動物種類的5/6;並且仍有幾百萬的未知曉的昆蟲仍待人類去發現和認知。
  • 2020中考化學常考知識點之原子團概念
    中考網整理了關於2020中考化學常考知識點之原子團概念,希望對同學們有所幫助,僅供參考。   相關推薦:   2020年中考化學複習知識點匯總   關注中考網微信公眾號  每日推送中考知識點,應試技巧 助你迎接2020年中考!
  • 2020教師資格數學常考知識點:質數
    【導讀】華圖寧夏教師招聘考試網同步未知發布:2020教師資格數學常考知識點:質數,詳細信息請閱讀下文!下面是寧夏華圖整理的數學常考知識點:質數,希望能給大家一些幫助。   一、定義   質數又稱素數。一個大於1的自然數,除了1和它自身外,不能被其他自然數整除的數叫做質數;否則稱為合數。
  • 2020中考化學常考知識點之水的化學性質
    中考網整理了關於2020中考化學常考知識點之水的化學性質,希望對同學們有所幫助,僅供參考。水的化學性質   (1)分解2H2O=通電=2H2↑+O2↑   (2)水可遇鹼性氧化物反應生成鹼(可溶性鹼),例如:H2O+CaO==Ca(OH)2   (3)水可遇酸性氧化物反應生成酸,例如:H2O+CO2==H2CO3   相關推薦:   2020年中考化學複習知識點匯總
  • 2020中考化學常考知識點之數字表示意義
    中考網整理了關於2020中考化學常考知識點之數字表示意義,希望對同學們有所幫助,僅供參考。  3、離子符號前面的數字:表示離子個數   4、元素符號右上角的數字:表示該離子所帶的電荷數Mg2+   5、元素符號正上方的數字:表示該元素的化合價   6、化學式中元素符號右下角的數字:表示該分子所含有的某原子個數H2O   相關推薦:   2020年中考化學複習知識點匯總
  • 清華狀元熬夜整理:高中化學推斷題常考知識點總結,逆襲必備!
    所以今天要分享的清華大學在讀博士史家昕攜手清北助學團整理的高中化學推斷題常考知識點總結,其中包括推斷題的基礎知識點還有常考知識點,吃透它自然就能輕鬆並且快速地解決推斷的類型題了。很多同學反饋通過這份資料受到了很多點撥,成績也提高了不少。希望能夠幫助到同學們和家長們!由於文章篇幅有限,以下是一部分。
  • 2020中考化學常考知識點之核外電子排布規律
    中考網整理了關於2020中考化學常考知識點之核外電子排布規律,希望對同學們有所幫助,僅供參考。   核外電子的分層排布規律:   第一層不超過2個,第二層不超過8個;最外層不超過8個。
  • 2020年健康管理師歷年常考知識點總結-有考網
    今天,小編為您整理好了2020年健康管理師考試歷年常考知識點的相關內容。各位考生朋友們快來跟小編看看具體情況吧。另外,各位小夥伴們要重視考前的複習階段哦,好好制定一個自己的複習計劃。2020年健康管理師考試歷年常考知識點如下,一起來看看具體情況吧。一、統計表的結構包括標題、標目、線條、數字等部分,有些統計表還有備註。
  • 語文老教師:文學常識常考知識點,小初高都實用,建議收藏
    文學常識是語文常考必考的知識點,文學常識題老師很少在課堂上系統講到,全靠自己平時積累。但是隨著年級知識點難度增大,文學常識題知識也比較繁雜,所以總結起來非常困難。導致很多同學在文學常識上丟分嚴重。老師給大家整理了小初高文學常識必考知識點,都是考試常考到的,建議給孩子收藏一份,考試少丟分。文末有word版完整高清資料獲取的方法!每天堅持整理各科學習資料,喜歡就請多多關注吧!word列印完整高清版資料:1、點擊頭像進入主頁並關注,2、點擊私信發「資料」即可
  • 高考化學常考知識點易錯點總結
    高考化學常考知識點易錯點總結對於高中生化學來說,該如何學習化學才能快速提高成績呢?化學有哪些重點的知識點可以學習呢?有途網小編為大家整理了一些。高中化學必考知識點歸納1、相對分子質量最小的氧化物是水【考點衍生:氮氣及其氧化物知識點 | 酸和對應的氧化物的反應】2、單質與水反應最劇烈的非金屬元素是F【考點衍生:水參與的非氧化還原反應 | 有關水的反應小結 】3、其最高價氧化物的水化物酸性最強的元素是Cl【考點衍生:含氧酸酸性方程式】4、其單質是最易液化的氣體的元素是Cl
  • 高中化學:高考高頻常考100個知識點總結!附324個化學方程式全
    應該算是部分心理素質差具體表現是,心跳加速腿抖,聲音顫抖(像哭了一樣)從上大學開始學姐就積極參加辯論賽,主持人大賽,還是不行,次次參加次次抖學姐從早上開始就緊張,緊張到噁心所以學姐希望高中生們一定要各方面能力都提高,不要只知道學習而且學姐說的這個能力對於每個人都很重要的,不僅是學生時代,踏入社會也同樣重要學姐本文帶來了高中化學:高頻常考
  • HTML+CSS:css定位詳解之相對定位、絕對定位和固定定位
    本篇文章我們主要給大家說一下css的定位。css的定位是我們以後網頁製作中比較常用的屬性,也是很重要的知識點。了解各個定位的作用以及層級關係對以後的頁面布局至關重要。css定位主要有四種,靜態定位、相對定位、絕對定位和固定定位。其中靜態定位這個是元素的默認定位方式,不能使用top,bottom,left,right和z-index屬性,其它三種定位可以使用以上幾個屬性。我們這裡主要介紹後邊的這三個定位。
  • 準高二同學必看:物理必修1 常考知識點總結,這個暑假逆襲翻盤
    高中物理必修1的主要內容是牛頓力學與運動學,考試常考諸如「對質點進行受力分析」「考察勻變速直線運動」「物體的受力問題」等知識點,這些都是極易出題的,而掌握的好也是穩穩拿分的。為了幫助同學們好好夯實高一物理基礎,北大的邱崇學長就整理了《高中物理必修1考試常出考點大集合》,內容為考試逢考必出的高頻考點,希望同學們可以高效利用這份乾貨滿滿的資料,高二高歌猛進,考試分數大漲!
  • 2020考研數學:線代方程組常考知識點
    下面中國教育在線考研頻道為大家分享2020考研數學線代方程組常考知識點,希望對2020考研的同學有所幫助。