web前端面試題目--css篇(2019年實(shí)戰(zhàn)整理)

????????????????????????????????????????????????css篇

一、css3的新特性(不列全部,撿重點(diǎn)回答)

1、CSS3選擇器:last-child、nth-child(n)、nth-last-child(n)等。點(diǎn)此查看更多

2、@Font-face(加載字體樣式)

3、Transition,Transform和Animation(動(dòng)畫相關(guān))

????這三個(gè)特性是CSS3新增的和動(dòng)畫相關(guān)的特性。

Transition

????Transition可以在當(dāng)元素從一種樣式變換為另一種樣式時(shí)為元素添加效果,而不用使用Flash動(dòng)畫或JavaScript。

Transition有如下屬性:

????transition-property: 規(guī)定應(yīng)用過(guò)渡的CSS屬性的名稱。

????transition-duration: 規(guī)定完成過(guò)渡效果需要多長(zhǎng)時(shí)間。

????transition-delay: 規(guī)定過(guò)渡效果何時(shí)開始,默認(rèn)是0。

????transition-timing-function: 規(guī)定過(guò)渡效果的時(shí)間曲線,默認(rèn)是"ease",還有l(wèi)inear、ease-in、ease-out、ease-in-out和cubic-bezier等過(guò)渡類型。

????transition: 簡(jiǎn)寫屬性,用于在一個(gè)屬性中設(shè)置四個(gè)過(guò)渡屬性。

Transform

????Transform用來(lái)向元素應(yīng)用各種2D和3D轉(zhuǎn)換,該屬性允許我們對(duì)元素進(jìn)行旋轉(zhuǎn)、縮放、移動(dòng)或傾斜等操作。

變換類型

????transform可以有各種變換類型,即屬性值:

????none: 定義不進(jìn)行轉(zhuǎn)換。

????matrix(n,n,n,n,n,n): 定義2D轉(zhuǎn)換,使用六個(gè)值的矩陣。

????matrix3d(n,n,n,n,n,n,n,n,n,n,n,n,n,n,n,n): 定義3D轉(zhuǎn)換,使用16個(gè)值的4x4矩陣。

????translate(x,y): 定義2D位移轉(zhuǎn)換。

????translate3d(x,y,z): 定義3D位移轉(zhuǎn)換。

????translateX(x): 定義位移轉(zhuǎn)換,只是用X軸的值。

????translateY(y): 定義位移轉(zhuǎn)換,只是用Y軸的值。

????translateZ(z): 定義3D位移轉(zhuǎn)換,只是用Z軸的值。

????scale(x,y): 定義2D縮放轉(zhuǎn)換。

????scale3d(x,y,z): 定義3D縮放轉(zhuǎn)換。

????scaleX(x): 通過(guò)設(shè)置X軸的值來(lái)定義縮放轉(zhuǎn)換。

????scaleY(y): 通過(guò)設(shè)置Y軸的值來(lái)定義縮放轉(zhuǎn)換。

????scaleZ(z): 通過(guò)設(shè)置Z軸的值來(lái)定義3D縮放轉(zhuǎn)換。

????rotate(angle): 定義2D旋轉(zhuǎn),在參數(shù)中規(guī)定角度。

????rotate3d(x,y,z,angle): 定義3D旋轉(zhuǎn)。

????rotateX(angle): 定義沿著X軸的3D旋轉(zhuǎn)。

????rotateY(angle): 定義沿著Y軸的3D旋轉(zhuǎn)。

????rotateZ(angle): 定義沿著Z軸的3D旋轉(zhuǎn)。

????skew(x-angle,y-angle): 定義沿著X和Y軸的2D傾斜轉(zhuǎn)換。

????skewX(angle): 定義沿著X軸的2D傾斜轉(zhuǎn)換。

????skewY(angle): 定義沿著Y軸的2D傾斜轉(zhuǎn)換。

????perspective(n): 為3D轉(zhuǎn)換元素定義透視視圖。

Animation

????Animation讓CSS擁有了可以制作動(dòng)畫的功能。使用CSS3的Animation制作動(dòng)畫我們可以省去復(fù)雜的js代碼。

4、邊框(border)

????CSS3新增了三個(gè)邊框?qū)傩?,分別是border-radius、box-shadow和border-image。border-radius可以創(chuàng)建圓角邊框,box-shadow可以為元素添加陰影,border-image可以使用圖片來(lái)繪制邊框。IE9+支持border-radius和box-shadow屬性。Firefox、Chrome以及Safari支持所有新的邊框?qū)傩浴?/p>

5、陰影(Shadow)?

6、box-sizing

????box-sizing屬性可設(shè)置的值有content-box、border-box和inherit。

????content-box: padding和border不被包含在定義的width和height之內(nèi)。對(duì)象的實(shí)際寬度等于設(shè)置的width值和border、padding之和,即 (Element width = width + border + padding),此屬性表現(xiàn)為標(biāo)準(zhǔn)模式下的盒模型。

????border-box: padding和border被包含在定義的width和height之內(nèi)。對(duì)象的實(shí)際寬度就等于設(shè)置的width值,即使定義有border和padding也不會(huì)改變對(duì)象的實(shí)際寬度,即 (Element width = width),此屬性表現(xiàn)為怪異模式下的盒模型。

7、文字效果

等.........


二、如何居中一個(gè)div(此處默認(rèn)水平開始)

1、通過(guò)margin: 0 auto; text-align: center實(shí)現(xiàn)CSS水平居中。

2、通過(guò)display:flex實(shí)現(xiàn)CSS水平居中

3、通過(guò)display:table-cell和margin-left實(shí)現(xiàn)CSS水平居中。

4、通過(guò)position:absolute實(shí)現(xiàn)CSS水平居中。

5、通過(guò)display:inline-block和margin:0 auto實(shí)現(xiàn)CSS水平居中。

垂直居中

1、通過(guò)position:absolute,讓left和top都是50%,這在水平方向上讓div的最左與屏幕的最左相距50%,垂直方向上一樣,所以再用transform向左(上)平移它自己寬度(高度)的50%,也就達(dá)到居中效果了(margin設(shè)負(fù)值也可以單獨(dú)拿出來(lái),此處不舉例說(shuō)明)

2、通過(guò)display:flex實(shí)現(xiàn)CSS垂直居中

等.........


三、請(qǐng)簡(jiǎn)述盒模型

????盒模型由外而內(nèi)包括:邊距(margin)、邊框(border)、填充(padding)、內(nèi)容(content)。它在頁(yè)面中所占的實(shí)際寬度是margin + border + paddint + content 的寬度相加。

但是,盒模型有標(biāo)準(zhǔn)盒模型和IE的盒模型。點(diǎn)此查看更多


四、css優(yōu)先級(jí)

1、從大到小

????內(nèi)聯(lián)樣式 > ID 選擇器 > 類選擇器 = 屬性選擇器 = 偽類選擇器 > 元素(類型)選擇器 = 偽元素選擇器

????!important 權(quán)重最高


五、清除浮動(dòng)

1,父級(jí)div定義?height

????父級(jí)div手動(dòng)定義height,就解決了父級(jí)div無(wú)法自動(dòng)獲取到高度的問(wèn)題

2、結(jié)尾處加空div標(biāo)簽?clear:both

????添加一個(gè)空div,利用css提高的clear:both清除浮動(dòng),讓父級(jí)div能自動(dòng)獲取到高度

3、父級(jí)div定義?偽類:after?和?zoom

????瀏覽器支持好,不容易出現(xiàn)怪問(wèn)題

4、父級(jí)div定義?overflow:hidden

????必須定義width或zoom:1,同時(shí)不能定義height,使用overflow:hidden時(shí),瀏覽器會(huì)自動(dòng)檢查浮動(dòng)區(qū)域的高度


六、margin重疊問(wèn)題。

????1、相鄰元素margin重疊

????2、父元素和子元素之間margin重疊

解決方案:

margin-top重疊

????1.給父元素添加overflow:hidden;

????2.給父元素添加border屬性;

????3.在父元素中添加padding-top;

????4.在父元素和子元素之間添加空格文字圖片等;

margin-bottom重疊

? ? 1、和margin-top設(shè)置類似,另外還可以給父元素添加高度值;

關(guān)于margin值的計(jì)算

????1、如果兩個(gè)margin都是正值,那么取margin值最大那個(gè),例如父元素設(shè)置margin-top為20px,而子元素也設(shè)置了margin-top為50px,那么最終是以子元素的margin-top為準(zhǔn);

? ? 2、如果兩個(gè)margin值為一正一負(fù),則最終的margin值以這兩個(gè)margin值相加的結(jié)果為準(zhǔn);

? ? 3、如果兩個(gè)margin值都為負(fù)數(shù),則取這兩個(gè)負(fù)margin值中絕對(duì)值最大的那個(gè)負(fù)margin值為準(zhǔn);


七、css字體單位及應(yīng)用場(chǎng)景

1、px

????px就是pixel像素的縮寫,相對(duì)長(zhǎng)度單位,網(wǎng)頁(yè)設(shè)計(jì)常用的基本單位。像素px是相對(duì)于顯示器屏幕分辨率而言的

2、em

????em是相對(duì)長(zhǎng)度單位。相對(duì)于當(dāng)前對(duì)象內(nèi)文本的字體尺寸(參考物是父元素的font-size)

如當(dāng)前父元素的字體尺寸未設(shè)置,則相對(duì)于瀏覽器的默認(rèn)字體尺寸

特點(diǎn):

  1. em的值并不是固定的;

  2. em會(huì)繼承父級(jí)元素的字體大小

3、rem(移動(dòng)端)

????rem是CSS3新增的一個(gè)相對(duì)單位,rem是相對(duì)于HTML根元素的字體大小(font-size)來(lái)計(jì)算的長(zhǎng)度單位

????如果你沒有設(shè)置html的字體大小,就會(huì)以瀏覽器默認(rèn)字體大小,一般是16px

4、vw、vh

????vw、vh、vmax、vmin這四個(gè)單位都是基于視口

????vw是相對(duì)視口(viewport)的寬度而定的,長(zhǎng)度等于視口寬度的1/100

????假如瀏覽器的寬度為200px,那么1vw就等于2px(200px/100)

????vh是相對(duì)視口(viewport)的高度而定的,長(zhǎng)度等于視口高度的1/100

????假如瀏覽器的高度為500px,那么1vh就等于5px(500px/100)

????vmin和vmax是相對(duì)于視口的高度和寬度兩者之間的最小值或最大值

5、%(百分比)

????一般來(lái)說(shuō)就是相對(duì)于父元素

????1、對(duì)于普通定位元素就是我們理解的父元素

????2、對(duì)于position: absolute;的元素是相對(duì)于已定位的父元素

????3、對(duì)于position: fixed;的元素是相對(duì)于ViewPort(可視窗口)

6、rpx(微信小程序)

????rpx其實(shí)是微信對(duì)于rem的一種應(yīng)用的規(guī)定,或者說(shuō)一種設(shè)計(jì)的方案,官方上規(guī)定屏幕寬度為20rem,規(guī)定屏幕寬為750rpx。所以在微信小程序中1rem=750/20rpx。


八、box-sizing的作用

????box-sizing 屬性允許您以特定的方式定義匹配某個(gè)區(qū)域的特定元素。

????1、content-box? 是默認(rèn)值。

????如果你設(shè)置一個(gè)元素的寬為100px,那么這個(gè)元素的內(nèi)容區(qū)會(huì)有100px寬,并且任何邊框和內(nèi)邊距的寬度都會(huì)被增加到最后繪制出來(lái)的元素寬度中。

????2、border-box?

????告訴瀏覽器去理解你設(shè)置的邊框和內(nèi)邊距的值是包含在width內(nèi)的。也就是說(shuō),如果你將一個(gè)元素的width設(shè)為100px,那么這100px會(huì)包含其它的border和padding,內(nèi)容區(qū)的實(shí)際寬度會(huì)是width減去border?+ padding的計(jì)算值。大多數(shù)情況下這使得我們更容易的去設(shè)定一個(gè)元素的寬高。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容