前端面試題集錦(二)之CSS部分

2022-07-16 04:39:10 字數 3595 閱讀 8390

1、css中的選擇器都有哪些?許可權情況如何? 

解答:(1)類選擇器 .classname

(2) id選擇器 #id

(3) 元素選擇器 div 可以多個,以逗號隔開

(4)父子選擇器 以空格隔開 div p ,表示所有div 下的p元素

(5)父子組合選擇器 div>p , 表示所有父級元素是div的p元素

(6)相鄰選擇器 div+p , 表示所有緊接著div之後的p元素

(7)屬性選擇器 [target] , 表示所有帶有target屬性的元素

(8)屬性篩選選擇器 [arrt= ] [arrt-= ] [arrt|=] ,分別表示某項屬性等於 ,某項屬性包含,某項屬性以某字元開頭的元素

(9)偽類選擇器 :link , :visited, :hover, :active, :first-child, 等等

選擇器許可權: 行內樣式 > id > class > element > * 萬用字元

2、css常用的偽類和偽元素

解答:(1)常用的偽類有:

:hover -表示滑鼠經過改變顏色;

:nth-child(even)-表示父元素的第偶數個子元素, 常用來生成斑馬紋效果

:nth-child(odd)-表示父元素的第奇數個子元素,常用來生成斑馬紋效果

:disabled - 表示選擇所有禁用的表單元素

:checked - 表示所有選中的表單元素

(2)常用的偽元素

:after 向指定的元素後增加內容

:before 向指定的元素前增加內容

:first-letter 表示要選中的文字的第乙個字母的樣式

:first-line 表示要選中的文字的第一行文字的樣式

3、css中的盒模型,有哪幾種盒模型

解答:css中的定位屬性:分為幾種

(1)static : 預設定位, 無定位

(2)relative: 相對定位,相對於自身位置進行偏移

(3)absolute: 絕對行為, 相對於最近的非 static 定位祖先元素的偏移,絕對定位的元素可以設定外邊距(margin),且不會與其他邊距合併

(4) fixed : 固定定位,相對於螢幕視口(viewport)的位置

(5)sticky: 粘性定位,盒位置根據正常流計算(這稱為正常流動中的位置),

然後相對於該元素在流中的 flow root(bfc)和 containing block(最近的塊級祖先元素)定位。

在所有情況下(即便被定位元素為 table時),該元素定位均不對後續元素造成影響。

當元素 b 被粘性定位時,後續元素的位置仍按照 b 未定位時的位置來確定。

position: sticky對 table元素的效果與 position: relative 相同。

4、css中的盒模型,分為哪幾種?

解答:(1)盒模型的概念:

盒模型的組成由里向外content,padding,border,margin.

標準盒模型:盒模型的寬高只是內從content的寬高

ie盒模型: ie模型中盒模型的寬高是內容(content)+填充(padding)+邊框(border)的總寬高。

(2)css3 的屬性 box-sizing

可以設定盒模型為content-box 或 border-box

5、css中的float屬性的理解,如何清除浮動,如何解決浮動元素撐不開高度的問題

解答:css中的float屬性

浮動可以理解為讓某個div元素脫離標準流,漂浮在標準流之上,和標準流不是乙個層次

(1)浮動的本質是用來文字環繞的,像分欄布局和列表排列都可用其它屬性實現。

(2)浮動是乙個帶有方位的display:inline-block;所以設定浮動,就會有預設的display:inline-block;這個屬性。

不需要再寫display了;設定display:inline-block帶來的各種效果,比如高寬自適應而不是繼承父元素寬。

可以設定高和寬。他的前後不會像塊級元素預設換行(但是它沒有高度)。

(3)浮動會破壞inline-box,產生兩個結果。①(無inlinebox->無line-box->無高度)。

②與文字無法同行顯示。這兩個結果恰恰是文字環繞的所必需的

float和position的相互影響

如果在float上設定position:absolute的話,會覆蓋float的屬性。就不是浮動了。float失效

在float上設定position:relative的話,如果設定left/top/right/bottom等屬性,則元素會先浮動到相應位置,

然後再根據top/left/bottom/right所設定的距離發生偏移,在float上設定margin屬性也是有效的。

清除浮動的方法:設定clear:both,clear:left,clear:right屬性,

解決浮動元素撐不開父元素高度的問題:

1、使用空的塊級元素撐開高度

2、對父元素使用:after偽元素

3、對父元素新增over-flow:hidden屬性

6、css中外邊距重合問題的描述,如何解決,css中bfc的理解block fomatting context

解答:(1)在乙個web頁面的css渲染中,塊級格式化上下文 (block fromatting context)是按照塊級盒子布局的。w3c對bfc的定義如下:

浮動元素和絕對定位元素,非塊級盒子的塊級容器(例如 inline-blocks, table-cells, 和 table-captions),

以及overflow值不為「visiable」的塊級盒子,都會為他們的內容建立新的bfc(塊級格式上下文)。

(2)建立bfc的條件

1、float的值不是none。

2、position的值不是static或者relative。

3、display的值是inline-block、table-cell、flex、table-caption或者inline-flex

4、overflow的值不是visible

bfc是乙個獨立的布局環境,其中的元素布局是不受外界的影響,並且在乙個bfc中,

塊盒與行盒(行盒由一行中所有的內聯元素所組成)都會垂直的沿著其父元素的邊框排列。

作用: 利用bfc避免外邊距摺疊,解決容器高度不會被浮動元素撐開的問題,避免文字環繞,可以避免多列布局中的樣式問題,

7、css3中新增的常用屬性,

解答:(1)邊框圓角 border-radius, 邊框

(2) 文字陰影,盒陰影,文字溢位省略

(3)背景(多個),背景尺寸剪下,顏色漸變

(4)2d 與 3d轉換, transform ,translate, rotate, scale,skew, rotatex, rotetey

(5) 過渡 transition , 動畫 animation

(6) 多列布局,彈性盒模型flex

(7)多**查詢

8、css響應式設計的方法

解答:9、如何在網頁中新增乙個三角形或指定的其他圖形?解決思路有幾種?

解答:(1)利用高度為0的塊及元素的邊框設定,css設定

(2)利用html轉義字串設定

(3) 利用:after偽元素設定

(4)利用字型圖示或背景設定

前端面試題收集(css部分)

2018 03 18 1 css reset 作用 用途 重置瀏覽器的css預設屬性,瀏覽器不同,樣式不同,然後重置,讓它們統一 2 css hack end if margin ie6 margin ie7 margin 0 auto 9 所有ie margin 0 ie8 3 css引入方式幾種...

前端面試題集錦三

瀏覽器怎麼匹配某個選擇器?https的原理,加密方式?由於http是明文傳送資料,不具備加密的功能。通訊協議中通過ssl 安全套接層 或tsl的組合使用 來加密http的通訊內容。http 加密 認證 完整性保護 https。加密方式 對稱加密方式和非對稱加密。對稱加密即為加密和解密共用同乙個方式。...

前端面試題集錦(三)

target和currenttarget區別於聯絡 target是指乙個觸發物件的引用,currenttarget是用來標識事件的當前目標 例如 e.target可以用來實現事件委託,原理是通過事件冒泡 或事件捕獲 給父元素新增事件監聽,e.target指向觸發元素的事件,例如在上述的例子中,e.t...