CSS3面試題


1.隱藏網頁中的元素有幾種方式?這些方法有什么區別?

答案:三種方法.

display:none;脫離文檔流,不占頁面空間,會改變頁面布局。

visivility:hidden;不會脫離文檔流,不會改變頁面布局,仍占頁面空間。

opacity:0;該元素隱藏起來了,但不會改變頁面布局,並且,如果該元素已經綁定

一些事件,如click事件,那么點擊該區域,也能觸發點擊事件.

 

2.如何解決子元素的上外邊距溢出?

答案:在父元素的第一個子元素位置處添加一個空的table標記.

 

3.常用來設置透明度的方式有幾種?他們之間有何區別?

答案:opacity和rgba

opacity能設置與元素相關各種顏色的透明度

rgba()只能設置當前某一種顏色的透明度.

 

4.浮動會對父元素的高度帶來什么影響?如何解決這個問題?

答案:子元素一旦浮動,父元素的高度為0,在父元素最后一個子元素位置處

添加一個空的塊級元素,並設置其clear屬性為both.

.clear:after{ 

     display:block;

     content:"",

     clear:both;

}

 

5.哪些元素默認有外邊距?

答案:body,p,h1-h6,ul,ol,dl,pre

 

6.網頁中如何定義錨點?如何連接到錨點位置?

答案:a標記用name定義錨點,其他標記用id屬性定義錨點.

連接到錨點的位置:href="#錨點名稱";

 

7.框模型默認的計算方式是什么?要改變默認的計算方式用哪個屬性及值?

實際占地寬度=左右外邊距+左右邊框+左右內邊距+width 

實際占地高度=上下外邊距+上下邊框+上下內邊距+height

改變計算方式: box-sizing:border-box

 

8.實現時針轉動效果需要用到CSS中哪些關鍵技術?

答案:旋轉,動畫,,絕對定位

 

9.設置行內元素居中對齊用什么屬性?

答案:text-aligin:center

 

10.如果要將表單中控件的值提交給服務器必須為控件設置什么屬性?

答案:name和value屬性

 

11.transition和animation的區別?

答案:Animation和transition大部分屬性是相同的,他們都是隨時間改變元素的屬性值,他們的主要

區別是transition需要觸發一個事件才能改變屬性,而animation不需要觸發任何事件的情況下也會隨着

時間改變屬性值,並且transition為2幀.從from.... to ,而animation可以以幀一幀的,也可以理解為一個

animation是由多個transition組成.

 

12.如何實現水平垂直居中?

答案:

1.定位+外邊距

盒子寬高已知,position:absolute;left:50%;top:50%;

margin-left:-自身一半寬度;margin-top:-自身一半高度;

 

2.定位+transform  盒子寬高已知,

#container{

    position:relative;

    border:1px solid red;

    width:800px;

    height:600px;

}

#content{

   width:100px;

   height:100px;

   background:blue;

   position:absolute;

   top:50%;

   left:50%;

   transform:translate(-50%,-50%);

}

 

3.flex布局

父級:

   display:flex;

   align-items:center;/*垂直居中*/

   justify-content:center;/*水平居中*/

 

居中布局

-水平居中

    行內元素:text-aligin:center;

    塊級元素:margin:0 auto;

    絕對定位已知寬度: position:absolute;margin-left:-(寬度的一半);left:50%;

    絕對定位+transform: postion:absolute;left:50%;transform:translateX(-50%);

    彈性布局水平居中: display:flex;justify-content:cneter;

-垂直居中

    line-height:height;高度設置和盒子一樣高

    絕對定位和transform: position:absolute;top:50%;transform:translateY(-50%);

    彈性布局垂直居中: display:flex;aligin-items:center;

    絕對定位已知高度:position:absolute;margin-top:-(高度的一半);top:50%;

-水平垂直居中

  1.已知寬高100px

     position:absolute;

     top:50%;

     left:50%;

     margin-left:-50px;

     margin-top:-50px;

   2.彈性布局

     display:flex;

      justify-content:center;

      aligin-items:center;

   3.css3的transform屬性

      position:absolute;

      top:50%;

      left:50%;

      transform:translate(-50%,-50%);

    4.margin:auto;

     postion:absolute;

     top:0;

     left:0;

     right:0;

     bottom:0;

     margin:auto;

 

13.盒子模型你是怎么理解的?

答案:元素框處理元素內容,內邊距外邊距以及邊框計算方式.

盒子模型有兩種,W3C和IE盒子模型

(1)w3c的盒模型: width=content內容區域寬;不包括margin,padding,border

(2)IE盒模型: width=content 內容寬度 + padding 寬度  + border 寬度

(3)box-sizing  border-box在已設定的寬度和高度之內去設定padding和border

content-box在已設定的高度和寬度之外設置padding和border

 

14.src和href的區別?

答案:

(1) href:href是Hypertext Reference的縮寫,表示超文本引用。用來建立當前元素和文檔

之間的連接。並行下載該文檔,不會停止對當前文檔的處理.

(2)src:src是source的縮寫,src指向的內容會嵌入到文檔當前標簽所在位置.

如img、script、ifram當瀏覽器解析到該元素時,會暫停瀏覽器的渲染,直到

該資源加載完畢.

 

15.說出link和import的區別?

(1)使用方法不同:

link一般在html頭部定義,作為html標簽,鏈接資源,主要用於鏈接外部的樣式表.

import 一般定義在css內部,並且一定要在其他所有規則之前,也就是一般寫在文件頭部,

並且專門拿來鏈css的。

(2)加載順序差別

import 比link延遲一些,它會等到頁面下載完成后才加載,因而可能會產生閃爍.

 

16.改變頁面元素位置的定位方式及他們的區別?

答案:relative相對定位相對於自身原來位置進行偏移,

仍處於標准文檔流中;

absolute絕對定位 相對於最近的已定位的祖先元素,有已定位(指position不是static的元素)

祖先元素,以最近的祖先元素為參考標准。如果無已定位祖先元素,以body元素為偏移參照,完全

脫離文檔流;

fixed固定定位的元素會相對於視窗來定位,者意味着即便頁面滾動,它還是會停留在固定的位置。

固定定位也會脫離文檔流。

 

17.display有哪些值,說明他們的作用?

答案:display的取值可以是none/inline/block/inline-block/table

none:元素隱藏不可見,並且元素也不占頁面空間.

inline:元素將呈現行內元素的特點,多個元素在一行中顯示,不允許修改尺寸,也不能設置垂直外邊距。

block:元素將呈現塊級元素的特點,每個元素獨占一行,允許修改尺寸。

inline-block:元素將呈現行內塊元素的特點,多個元素在一行中顯示,但是可以修改尺寸。

table:元素將顯示表格的特點,由內容決定表格的顯示方式。元素獨占一行,允許修改尺寸。

 

18.有兩個div,外框和內寬高度寬度都不定,內寬垂直水平居中,利用css如何實現?

答案:

.content{ 

   display:flex;

   justify-content:center;

   aligin-items:center;

}

 

19.說說em和rem的區別?

答案:rem是基於html元素的字體大小來決定,而em則根據使用他的元素的字體大小決定(

很多人錯誤以為是根據父類元素,實際上時元素繼承了父類屬性才會產生的錯覺)

 

20.瀏覽器的內核分別是什么?

 

答案:IE 瀏覽器的內核 Trident、Mozilla 的 Gecko、Chrome 的 Blink(WebKit 的分支)、

Opera 內核原為 Presto,現為 Blink

 

21.為什么要初始化CSS樣式?

因為瀏覽器的兼容問題,不同瀏覽器對有些標簽的默認值是不同的,

如果沒對CSS初始化往往會出現瀏覽器之間的頁面顯示差異。當然,

初始化會對SEO有一定影響,但力求影響最小的情況下初始化。最簡單的

初始方法就是:*{padding:0;margin:0;}(不建議)淘寶的樣式初始化:

body,h1,h2,h3,h4,h5,h6,hr,dl,dt,dd,ul,ol,li,pre,form,fieldset,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%;}

ul ol {list-style:none;}

a{text-decoration:none;}

a:hover{text-decoration:underline}

img{border:0;}

 

button,input,select,textarea{font-size:100%;}

table{border-collapse:collapse;border-spacing:0;}

 

22.CSS哪些屬性可以繼承?優先級算法如何計算?CSS3新增偽類有哪些?

答案:可繼承的樣式:font-szie,font-family,color,background等

不可繼承的樣式:border,padding,margin,width,height;

優先級就近原則,同權重情況下以最近者為准;

優先級為:!important>id>class>tag  important比內聯優先級高

 

CSS3新增偽類:

:first-child 選擇屬於其父元素的首個元素.

:last-child 選擇其父元素的最后一個元素.

:only-child 選擇屬於其父元素唯一的元素.

:nth-child(n)  選擇屬於其父元素的任意一個子元素.

:empty      選擇沒有子元素的元素.

:not(selector) 將滿足指定選擇器的元素給排除在外.

 

23.描述css rest的作用。

答案:reset重置瀏覽器為元素設置的默認樣式,瀏覽器的種類不同,樣式可能不同,

重置是為了讓他們統一樣式.

 

24.清除浮動帶來影響的幾種方式,各自的優缺點.

答案:

1.直接設置父元素高度,但不是每次都知道父元素的高度.

2.設置父元素也浮動,但不是任何時候父元素都需要浮動,

而且浮動會影響后續元素.

3.為父元素設置overflow屬性,但如果有內容需要溢出顯示的話,也會

一同被隱藏.

4.在父元素中,追加空子元素,並設置其clear:both,但頁面中會多出一個空元素.

5.用內容生成的方式 :after{content:"",display:block;clear:both;}

 

25.px和em的區別

px和em都是長度單位,區別是,px的值是固定的,指定是多少就是多少,計算比較容易

em的值不是固定的,並且em會繼承父級元素的字體大小.

瀏覽器默認字體高都是16px.所以未經調整的瀏覽器都符合:1em=16px

那么12px=0.75em,10px=0.625em

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM