1. 程式人生 > >1-面試題-html+css(前端常見面試題帶答案 )

1-面試題-html+css(前端常見面試題帶答案 )

HTML+CSS常見面試題目

1.    對WEB標準以及W3C的理解與認識?

標籤閉合、標籤小寫、不亂巢狀、提高搜尋機器人搜尋機率、使用外鏈cssjs指令碼、結構行為表現的分離、檔案下載與頁面速度更快、內容能被更多的使用者所訪問、內容能被更廣泛的裝置所訪問、更少的程式碼和元件,容易維護、改版方便,不需要變動頁面內容、提供列印版本而不需要複製內容、提高網站易用性;

定製這些標準主要是為了提高網頁載入速度,便於開發。同時這也是一種商業手法,目的是讓製造商重視並重新定位規範,在新的瀏覽器和網路裝置中完全地支援那些規範,有利於整個行業的發展。

2.    xhtml和html有什麼區別?

HTML

XHTML是一種語言的不同階段,有點類似於文言文和白話文之間的關係。在XHTML中標記名稱、屬性名稱必須小寫,標記必須嚴格巢狀,必須封閉。而HTML是一種基本的WEB網頁設計語言,定義為超文字標記語言。

3.    Doctype? 嚴格模式與混雜模式-如何觸發這兩種模式,區分它們有何意義?

用於宣告文件使用那種規範(html/Xhtml)一般為嚴格過度基於框架的html文件。

加入XMl宣告可觸發,解析方式更改為IE5.5擁有IE5.5bug

4.    行內元素有哪些?塊級元素有哪些?CSS的盒模型?

塊級元素:div ph1 h2 h3 h4 form ul

 行內元素:a b br i span input select

Css盒模型:內容,border,marginpadding

5.    CSS引入的方式有哪些? link和@import的區別是?

內聯內嵌外鏈匯入

  區別:同時載入

  前者無相容性,後者CSS2.1以下瀏覽器不支援

Link 支援使用javascript改變樣式,後者不支援。

6.    CSS選擇符有哪些?哪些屬性可以繼承?優先順序演算法如何計算?內聯和important哪個優先順序高?

標籤選擇符類選擇符 id選擇符

繼承不如指定 Id>class>標籤選擇

後者優先順序高

7.    前端頁面有哪三層構成,分別是什麼?作用是什麼?

結構層 Html(作用:)表示層

CSS 行為層 js

8.    css的基本語句構成是?

選擇器{屬性1:1;屬性2:2;……}

9.    你做的頁面在哪些流覽器測試過?這些瀏覽器的核心分別是什麼?

Ie(Ie核心) 火狐(Gecko) 谷歌(webkit) opear(Presto)

10. 說出幾種IE6BUG的解決方法

1.雙邊距BUG float引起的使用display

2.3畫素問題使用float引起的使用dislpay:inline-3px

3.超連結hover點選後失效使用正確的書寫順序link visited hover active

4.Iez-index問題給父級新增position:relative

5.Png 透明使用js程式碼

6.Min-height最小高度!Important 解決

7.select ie6下遮蓋使用iframe巢狀

8.為什麼沒有辦法定義1px左右的寬度容器(IE6預設的行高造成的,使用over:hidden,zoom:0.08line-height:1px)

9.ie 6 不支援!important

11. img標籤上title與alt屬性的區別是什麼?

Alt 當圖片不顯示是用文字代表。

Title 為該屬性提供資訊

12. 描述cssreset的作用和用途。

Reset重置瀏覽器的css預設屬性瀏覽器的品種不同,樣式不同,然後重置,讓他們統一

13. 解釋csssprites,如何使用,他的優點是什麼?

Css 精靈把一堆小的圖片整合到一張大的圖片上,減輕伺服器對圖片的請求數量

14. 瀏覽器標準模式和怪異模式之間的區別是什麼?

盒子模型渲染模式的不同

  使用window.top.document.compatMode 可顯示為什麼模式

15. 你如何對網站的檔案和資源進行優化?期待的解決方案包括:

檔案合併

  檔案最小化/檔案壓縮

  使用CDN託管

  快取的使用

16. 什麼是語義化的HTML?

直觀的認識標籤對於搜尋引擎的抓取有好處

17. 清除浮動的幾種方式,各自的優缺點

1.使用空標籤清除浮動 clear:both(理論上能清楚任何標籤,,,增加無意義的標籤)

2.使用overflow:auto(空標籤元素清除浮動而不得不增加無意程式碼的弊端,,使用zoom:1用於相容IE)

3.是用afert偽元素清除浮動(用於非IE瀏覽器)先來簡單講講after,所謂after,就是指標籤的最後一個子元素的後面。於是呢,我們可以用CSS程式碼生成一個具有clear屬性的元素,其中的關鍵樣式就是content了。或許您從網上看到的content裡面的內容是”.”一個點,我了很多次,貌似隨便寫什麼東西都沒有問題。

18. css hack

<!--[if IE 6]--><![end if]-->

_marging\\IE 6

+margin\\IE 7

Marging:0auto \9 所有Ie

Margin \0\\IE 8

19. 超連結訪問過後hover樣式就不出現的問題?

解決方法是改變CSS屬性的排列順序:L-V-H-A

例子:<style>
a:link{ background:red;}
a:hover{background:blue;}
a:visited{background:green;}
a:action{background:white;}
</style>

20. IE6的雙倍邊距BUG

給當前元素新增樣式,使當前元素不為塊,如:display:inline;display:list-item這樣在元素浮動的時候就不會在ie6下面產生雙倍邊距的問題了.

拓展:這個bug是如何出現的?

當塊級元素有浮動樣式的時候,給元素新增margin-left和margin-right樣式,在ie6下就會出現雙倍邊距。

21. 為什麼FF下文字無法撐開容器的高度?

因為標準瀏覽器中固定高度值的容器是不會象IE6裡那樣被撐開的。

想固定高度,又想能被撐開需要怎樣設定呢?

辦法就是去掉height設定min-height:200px;   這裡為了照顧不認識min-heightIE6 可以這樣定義:
{
height:auto!important;
height:200px;
min-height:200px;
}

22. 為什麼web標準中IE無法設定滾動條顏色了?

滾動條的顏色一直以來就只支援IE的瀏覽器,就是IE瀏覽器的專有屬性,火狐等都是不支援的。

解決辦法是將body換成html

注:原來樣式<style type="text/css"> 
body { scrollbar-face-color:#f6f6f6;scrollbar-highlight-color:#fff; scrollbar-shadow-color:#eeeeee;scrollbar-3dlight-color:#eeeeee; scrollbar-arrow-color:#000; scrollbar-track-color:#fff;scrollbar-darkshadow-color:#fff; } 

</style> 

23. 為什麼無法定義1px左右高度的容器?

IE6下這個問題是因為預設的行高(大概10px)造成的,解決的方法也有很多,例如:overflow:hidden | zoom:0.08 | line-height:1px

24. 怎麼樣才能讓層顯示在FLASH之上呢?

解決的辦法是給FLASH設定透明。

25. 怎樣使一個層垂直居中於瀏覽器中?

針對於已知大小元素。首先使用百分比的絕對定位,此時只是層的左上角頂點居於瀏覽器中間,要想使層的中心位於瀏覽器中間就要使層的左上角頂點向上、向左移動高度、寬度的一半(與外補丁負值的方法,負值的大小為其自身寬度高度除以二)。

例子:

<styletype="text/css">
.center{ background:red;
          
 width:200px;
           
height:300px;
          
 position:absolute;
          
 top:50%;
          
 left:50%;
          
 margin:-150px 0 0 -100px;}
</style>
</head>

<body>
<div class="center">
層垂直居中於瀏覽器</div>
</body>

26. firefox巢狀div標籤的居中問題的解決方法

假定有如下情況:

<div id="a"style="width:200px;border:1px solid red;text-align:center;">

<div id="b"style="background-color:blue;width:30px;">&nbsp;</div>

</div>

如果要實現b在a中居中放置,一般只需用CSS設定a的text-align屬性為center。這樣的方法在IE裡看起來一切正常;但是在Firefox中b卻會是居左的。

解決辦法就是除了需要在a中設定text-align屬性為center之後,還需要設定b的橫向margin為auto。例如設定b的CSS樣式為:margin: 0auto;

所以,設定如下就可以實現居中:

<div id="a"style="width:200px;border:1px solid red;text-align:center;">

<div id="b"style="background-color:blue;width:30px;margin:0auto">&nbsp;</div>

</div>

27. 網頁製作中有哪幾種樣式設定方法?各有何特點?

28. 使用者自定義的類和ID在定義和使用時有什麼區別?

定義時,類以英文形式的句點“.”為起始標誌,ID以“#”為起始標誌;使用時,類可以在一個頁面中被多個不同的元素引用,而ID在一個頁面中只能被引用一次。

29. float元素的父元素不能指定clear屬性?

如果對float的元素的父元素使用clear屬性,周圍的float元素佈局就會混亂。這是MacIE的著名的bug,倘若不知道就會走彎路。

30. 簡述一下src與href的區別。

href 表示超文字引用(hypertext reference),在 linka 等元素上使用。src 表示來源地址,在 imgscriptiframe 等元素上。

src 的內容,是頁面必不可少的一部分,是引入。href 的內容,是與該頁面有關聯,是引用。區別就是,引入和引用。

31. 知道的網頁製作會用到的圖片格式有哪些?

主流的用於網頁的影象格式有JPG,PNG,GIF
JPG:壓縮率高,檔案小,最常用。
PNG:支援無失真壓縮,色彩損失小,保真度高,檔案稍大。
GIF:支援動畫顯示,但只支援256色顯示,目前已經被FLASH大量取代。

32. 每個HTML檔案裡開頭都有個很重要的東西,Doctype,知道這是幹什麼的嗎?

<!DOCTYPE> 宣告位於文件中的最前面,處於 <html> 標籤之前。告知瀏覽器的解析器,用什麼文件型別,規範來解析這個文件。

33. 行內元素有哪些?塊級元素有哪些?CSS的盒模型?

行內元素有:ab span img input select strong(強調的語氣) 塊級元素有:div ul olli dl dt dd h1 h2 h3 h4…p。內容(content)、填充(內邊距padding)、邊框(border)、邊界(外邊距margin)

拓展:知名的空元素:<br><hr><img><input><link><meta>

34. css層疊是什麼?介紹一下。

CSSCascading Style Sheet 的縮寫。譯作「層疊樣式表單」。是用於(增強)控制網頁樣式並允許將樣式資訊與網頁內容分離的一種標記性語言。

35. position值都有哪些,css3都有哪些新內容…

absolute
生成絕對定位的元素,相對於 static 定位以外的第一個父元素進行定位。元素的位置通過 "left", "top", "right" 以及 "bottom" 屬性進行規定。
fixed
生成絕對定位的元素,相對於瀏覽器視窗進行定位。元素的位置通過 "left", "top", "right" 以及 "bottom" 屬性進行規定。
relative
生成相對定位的元素,相對於其正常位置進行定位。因此,"left:20" 會向元素的 LEFT 位置新增 20 畫素。
static預設值。沒有定位,元素出現在正常的流中(忽略 top, bottom, left, right 或者宣告)。inherit規定應該從父元素繼承 position 屬性的值。
Css3屬性:
 1 選擇器 2 RGBA和透明度 3 多欄佈局 4 多背景圖 5 Word Wrap 6 文字陰影 7 @font-face屬性 8 圓角(邊框半徑) 9 邊框圖片 10 盒陰影 11 盒子大小 12 媒體查詢 13 語音

36. 在新視窗開啟連結的方法是?

target=_bank

拓展:為什麼要清除浮動?

CSS的float屬性,作用就是改變塊元素物件的預設顯示方式,HTML標籤設定了float屬性之後,它將不再獨自佔據一行,從而可以實現多個元素同處一行的效果,所以需要在樣式定義的後面進行清除浮動。

通過指定CSS屬性float的值,從而使元素向左或向右浮動,然後由後繼元素向上移動以填補前面元素的浮動而空出的可用空間。CSS的float屬性,作用就是改變塊元素物件的預設顯示方式,HTML標籤設定了float屬性之後,它將不再獨自佔據一行,從而可以實現多個元素同處一行的效果。Float的功能很強大,但是如果沒有好好掌握而使用很可能會成為你除錯樣式的噩夢。

使用Float樣式,如果沒有清除浮動,那麼有浮動元素的父元素容器將無法自動撐開。如果沒有清除內部浮動,此時會導致浮動的父元素無法自動撐開到本身應有的高度。也就是說:當一個元素是浮動的,如果沒有關閉浮動時,其父元素不會包含這個浮動元素,因為此時浮動元素從文件流中脫離。