1. 程式人生 > 其它 >web前端高頻面試題(筆試題)

web前端高頻面試題(筆試題)

1、簡述 <!doctype> 的作用?

決定瀏覽器渲染方式

<!DOCTYPE>:告知 瀏覽器當前的 HTML 或 XML 文件是哪一個版本. Doctype 是一條 宣告, 而不是一個標籤; 也可以把它叫做 “文件型別宣告”, 或 簡稱為 “DTD”.

:用HTML5的doctype宣告檔案包含HTML5標記

2、常見的瀏覽器及其核心?

瀏覽器:IE,Chrome,FireFox,Safari,Opera。

核心:Trident,Gecko,Blink,Webkit。

1,使用Trident的是internet explorer,國產的絕大部分瀏覽器。

2,使用Gecko的是Mozilla Firefox

3,使用Blink的是Chrome和Opera

4,使用WebKit的有蘋果的safari,谷歌的chrome,還有國產的大部分雙核瀏覽器其中一核就是WebKit

3、b 和 strong(i 和 em)標籤的區別?

​ b標籤是一個實體標籤,它所包圍的字元被設為bold(粗體),而strong標籤是一個語義標籤,作用是加強字元的語義

em標籤告訴瀏覽器把其中的文字表示為強調的內容。對於所有瀏覽器來說,這意味著要把這段文字用斜體來顯示。i標籤僅僅將 文字規定為斜體,並無特殊語義。

  • 4、談談對語義化的理解?

    概念:運用合適的標籤和特定的屬性去格式化文件(合適標籤和屬性要用在合適的場合)

  • 優點:

    • 易於開發和維護
    • 使用者體驗比較好
    • 易於seo,易於爬蟲抓取關鍵字,能和搜尋引擎建立良好的溝通。
    • 即使在沒有css樣式的情況下,也能呈現良好的效果

5、CSS 引入方式有哪些?

(1)內嵌式

通過來書寫CSS程式碼。

只能應用於當前網頁,不能被其它網頁共享。

注意:

(2)外聯式

通過標記來引入外部的CSS檔案(.css)。

可以被其它網頁共享。

格式:

注意:標記只能放在中

(3)行內樣式

通過style的屬性來書寫CSS程式碼。

舉例:

6、CSS 基本選擇器有哪些?

  • 萬用字元選擇器

    • 格式:

      * {

      屬性名:屬性值;

      屬性名:屬性值;

      屬性名:屬性值;

      }

      * 代表所有標籤

  • 標籤選擇器

    • 格式:

      關鍵字 {

      屬性名:屬性值;

      屬性名:屬性值;

      屬性名:屬性值;

      }

  • 類選擇器

    • 格式:

      .類名 {

      屬性名:屬性值;

      屬性名:屬性值;

      屬性名:屬性值;

      }

  • id選擇器

    • 格式

      #id名 {

      屬性名:屬性值;

      屬性名:屬性值;

      屬性名:屬性值;

      }

  • 優先順序

    • id選擇器>類選擇器>標籤選擇器>萬用字元選擇器

7、如何合併表格單元格?

  • 行合併
    • rowspan
    • 兩行合併為一行,上下合併
  • 列合併
    • colspan
    • 兩列合併為一列,左右合併

8、thead、tbody、tfoot 有什麼用?

  • thead: 表格的頭部,通常寫表格每一列的標題
  • tbody: 表格的主體,寫表格的資料
  • tfoot: 表格的底部,寫表格的腳註
  • th: 表格標題的單元格。預設居中
  • caption: 表格的標題

9、常見表單元素有哪些?

  • input標籤

    • text

      • 文字輸入型別

      • <input type="text" name="username">
        
    • password

      • 密碼型別

      • <input type="password" name="password">
        
    • radio

      • 單選按鈕

      • <input type="radio" name="sex" value="boy"><input type="radio" name="sex" value="girl">
    • checkbox

      • 複選框

      • <input type="checkbox" name="course" value="HTML">HTML
        <input type="checkbox" name="course" value="CSS">CSS
        
    • button

      • 普通按鈕

      • <input type="button" value="點我">
        
    • submit

      • 提交按鈕

      • <input type="submit" value="提交">
        
    • reset

      • 重置按鈕

      • <input type="reset" value="清空">
        
    • file

      • 檔案上傳

      • <input type="file" name="file">
        
    • image

      • 影象形式的提交按鈕

      • <input type="image" src="submit.jpg" alt="submit">
        
    • hidden

      • 隱藏域
  • select

    • 下拉框

    • <select name="area">
          <option value="HTML">html</option>
          <option value="JS">js</option>
          <option value="CSS">css</option>
      </select>
      
  • textarea

    • 文字域
  • label

    • <!-- label的for屬性要對應相應表單的id -->
              <input type="radio" name="shenfenzheng" value="zg" id="zg"><label for="zg">中國居民身份證</label>
              <input type="radio" name="shenfenzheng" value="ga" id="ga"><label for="ga">港澳臺居民身份證</label>
      

action

  • action屬性定義提交表單時執行的動作。通常表單會提交到web伺服器網頁,如果省略會被提交到當前頁面

method

  • get

    • 從伺服器獲取資料, 資料量小, 不安全的
    • get是預設方法
  • post

    • 向伺服器傳遞資料,相對安全
    • 資料量大
  • checked

    • 應用到單選框,複選框

    • <input type="checkbox" checked>
      
  • selected

    • 下拉框

    • <select name="area">
          <option value="HTML">html</option>
          <option value="JS" selected>js</option>
          <option value="CSS">css</option>
      </select>
      
  • value

    • <input type="text" name="name" value="web前端">
      
  • readonly

    • <input type="text" name="name" value="web前端" readonly>
      
  • disabled

    • <input type="text" name="name" value="web前端" disabled>
      
  • maxlength

    • <input type="text" name="name" maxlength="6">
      
  • size 運用多選框

    • <select name="name" size="3">
      
  • style="resize: none;"

    • <!-- resize: none 設定為不能改變尺寸 -->
      <textarea name="" cols="30" rows="10" style="resize: none;"></textarea>
      

10、請簡述一下盒模型的組成?

盒模型的概念

  • 概念:css盒模型本質是一個盒子,封裝周圍的html標籤,它包括:外邊距,邊框,填充(內邊距)和實際內容
  • 內容 content :
    • width: 設定寬度
    • height: 設定高度
  • 內邊距(填充區域)padding :
    • 單邊內邊距:padding-top padding-bottom padding-left padding-right
    • 簡寫 :
      • 一個值:表示四個方向的內邊距值。
      • 兩個值:分別表示上下,左右的內邊距值
      • 三個值:分別表示上,左右,下的內邊距值
      • 四個值:分別表示上,右,下,左的內邊距值
  • 邊框 border :
    • border-width
    • border-style :
      • none 定義無邊框
      • dotted 定義點狀邊框
      • dashed 定義虛線邊框
      • solid 定義實現邊框
      • double 定義雙線。雙線的高度等於border-width的值
    • border-color
  • border: 1px solid red;
  • 外邊距 margin :
    • 單邊外邊距 : margin-top margin-bottom margin-left margin-right
    • 簡寫:
      • 一個值:表示四個方向的外邊距值。
      • 兩個值:分別表示上下,左右的外邊距值
      • 三個值:分別表示上,左右,下的外邊距值
      • 四個值:分別表示上,右,下,左的外邊距值
  • 外邊距傳遞和塌陷
    • 給父級設定邊框或內邊距
    • 給父級設定溢位隱藏 overflow:hidden,實際上是觸發BFC

11、CSS 複合選擇器有哪些?

  • 群組選擇器

    • /* 
                  群組選擇器
                      多個選擇器組合到一起用逗號分隔
               */
              .box,h3,p,span {
                  color: gold;
              }
      
      
    - 
    
  • 交集選擇器

    • /* 
                  交集選擇器
                      用兩個或者兩個以上條件尋找
                      即有div又有.box1類名
               */
              div.box1 {
                  color: deeppink;
              }
      
  • 子代選擇器

    • /* 
                  子代選擇器
               */
              .wrap>.box {
                  color: blue;
              }
      
      
    - 
    
  • 後代選擇器

    • /* 後代選擇器 */
              .wrap .box {
                  color: gold;
              }
      
  • 偽類連結選擇器

    • :link 未訪問狀態
    • :visited 已訪問狀態
    • :hover 滑鼠懸停狀態
    • :active 滑鼠點選那一刻

12、塊級標籤和行內標籤的區別?

Html中常見行級標籤:span、a、em、strong、b …

特點:在一行內顯示(在一行中可以並列多個行級標籤),不能設定寬高屬性,水平方向的padding和margin可以設定,垂直方向的無效。

Html中常見塊級標籤:div、p、ul、li、dl、td、dd、h1~h6 …

特點:獨佔一行,能設定width,height,margin和padding等屬性

13、浮動產生的問題?清除浮動的方案?

浮動元素引起的問題:

浮動元素脫離文件流之後在文件流中不佔位,父元素的高度無法被撐開,影響與父元素同級的元素

清楚浮動的方法:

(1)給父級元素加高度(不推薦使用,它只適合高度固定的佈局,一般父盒子都是為由內容撐起來)

(2)在結尾處新增空div標籤clear:both。具體做法:新增一個div標籤並定義一個cl的類名,給cl類名新增樣式clear:both,將該div標籤放到父元素內容結束前的位置(缺點:會多加CSS和HTML標籤)。

(3)給父級元素定義 overflow:hidden(推薦使用,缺點:不能和position配合使用,因為超出的尺寸的會被隱藏)

(4)給父級div定義偽類:after和zoom(推薦使用)

/清除浮動程式碼/ .clearfloat:after{display:block;clear:both;content:"";visibility:hidden;height:0} .clearfloat{zoom:1}

然後父級元素新增clearfloat類名即可

(5)給父級元素新增浮動(缺點:會產生新的浮動問題)

14、偽元素如何建立 ?

偽元素clearfix:after{

content:‘’;

clear:both;

display:block;}

15、如何實現盒子水平垂直居中?

居中技巧
  • 1、方案 1 margin 負間距 (1)必需知道該 div 的寬度和高度; (2)然後設定位置為絕對位置; (3)距離頁面視窗左邊框和上邊框的距離設定為 50%,這個 50% 就是指盒子左上角頂點距離頁面左、上邊 界的 50%; (4)最後將該 div 分別左移和上移,使整個盒子居中,左移和上移的大小就是該 DIV( 包括 border 和 padding) 寬度和高度的一半

  • <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <title>Document</title>
        <style>
            * {
                padding: 0;
                margin: 0;
            }
            .box {
                width: 300px;
                height: 200px;
                background-color: red;
                position: fixed;
                left: 50%;
                margin-left: -150px;
                top: 50%;
                margin-top: -100px;
            }
        </style>
    </head>
    <body>
        <div class="box"></div>
    </body>
    </html>
    
  
- 2、方案 2 margin:auto 實現絕對定位元素的居中(該方法相容 ie8 以上瀏覽器)。 此方案程式碼關鍵點: (1)上下左右均 0 位置定位; (2)margin: auto。

- ```html
  <!DOCTYPE html>
  <html lang="en">
  <head>
      <meta charset="UTF-8">
      <meta name="viewport" content="width=device-width, initial-scale=1.0">
      <title>Document</title>
      <style>
          * {
              padding: 0;
              margin: 0;
          }
          .box {
              width: 300px;
              height: 200px;
              background-color: gold;
              margin: auto;
              position: absolute;
              left: 0;
              right: 0;
              top: 0;
              bottom: 0;
          }
      </style>
  </head>
  <body>
      <div class="box"></div>
  </body>
  </html>

16、圖片下方空白間隙如何解決?

    • 去除圖片下間隙的辦法有很多,常用的有 3 種:

      • 設定父盒子字號為 0

        • .wrap{
             font-size: 0;  
          }
          
      • 改變圖片的 display

        • img{
             display: block;  
          }
          
          
      • 給圖片設定垂直對齊方式

        • img{
             vertical-align: middle;// 設定為任意不為 baseline 的值都可以 
           }
          

17、請簡述 等高佈局、聖盃佈局、雙飛翼佈局的實現原理。

聖盃佈局實現:
1.一個大盒子,裡面有三個小盒子,左右固定,中間自適應100%,中間部分一定要先解析
2.三個盒子加浮動,左側部分設定margin-left:-100%;右側部分設定margin-left:-自己本身寬度
3.大盒子加左右padding,左右部分用定位定位到相應的位置
缺點:當縮小到中間部分小於左側寬度時,佈局混亂
雙飛翼佈局實現:
1.一個大盒子,裡面有三個小盒子,左右固定,中間自適應100%,中間部分一定要先解析
2.三個盒子加浮動,左側部分設定margin-left:-100%;右側部分設定margin-left:-自己本身寬度
3.中間部分內部巢狀一個標籤,加左右的外邊距
缺點:相對於聖盃佈局,增加一層結構程式碼

假等高佈局:

內外邊距相消法:內邊距設定特別大,外邊距設定特別小,父標籤加溢位隱藏,overflow:hidden;

真等高佈局:

Document
1先帝創業未半而中道崩殂,今天下三分,益州疲弊,此誠危急存亡之秋也。然侍衛之臣不懈於內,忠志之士忘身於外者,蓋追先帝之殊遇,欲報之於陛下也。誠宜開張聖聽,以光先帝遺德,恢弘志士之氣,不宜妄自菲薄,引喻失義,以塞忠諫之路也。
1先帝創業未半而中道崩殂,今天下三分,益州疲弊,此誠危急存亡之秋也。然侍衛之臣不懈於內,忠志之士忘身於外者,蓋追先帝之殊遇,欲報之於陛下也。誠宜開張聖聽,以光先帝遺德,恢弘志士之氣,不宜妄自菲薄,引喻失義,以塞忠諫之路也。
2先帝創業未半而中道崩殂,今天下三分,益州疲弊,此誠危急存亡之秋也。然侍衛之臣不懈於內,忠志之士忘身於外者,蓋追先帝之殊遇,欲報之於陛下也。誠宜開張聖聽,以光先帝遺德,恢弘志士之氣,不宜妄自菲薄,引喻失義,以塞忠諫之路也。 先帝創業未半而中道崩殂,今天下三分,益州疲弊,此誠危急存亡之秋也。然侍衛之臣不懈於內,忠志之士忘身於外者,蓋追先帝之殊遇,欲報之於陛下也。誠宜開張聖聽,以光先帝遺德,恢弘志士之氣,不宜妄自菲薄,引喻失義,以塞忠諫之路也。 先帝創業未半而中道崩殂,今天下三分,益州疲弊,此誠危急存亡之秋也。然侍衛之臣不懈於內,忠志之士忘身於外者,蓋追先帝之殊遇,欲報之於陛下也。誠宜開張聖聽,以光先帝遺德,恢弘志士之氣,不宜妄自菲薄,引喻失義,以塞忠諫之路也。 3先帝創業未半而中道崩殂,今天下三分,益州疲弊,此誠危急存亡之秋也。然侍衛之臣不懈於內,忠志之士忘身於外者,蓋追先帝之殊遇,欲報之於陛下也。誠宜開張聖聽,以光先帝遺德,恢弘志士之氣,不宜妄自菲薄,引喻失義,以塞忠諫之路也。 先帝創業未半而中道崩殂,今天下三分,益州疲弊,此誠危急存亡之秋也。然侍衛之臣不懈於內,忠志之士忘身於外者,蓋追先帝之殊遇,欲報之於陛下也。誠宜開張聖聽,以光先帝遺德,恢弘志士之氣,不宜妄自菲薄,引喻失義,以塞忠諫之路也。

18、簡述 CSS 精靈圖原理,及優缺點?

CSS Sprites其實就是把網頁中一些背景圖片整合到一張圖片檔案中,再利用CSS的"background-image",“background-repeat”,"background-position"的組合進行背景定位,background-position可以用數字精確地定位出背景圖片的位置。

優點:

①減少網頁的http請求,從而加快了網頁載入速度,提高使用者體驗。

②減少圖片的體積,因為每個圖片都有一個頭部資訊,把多個圖片放到一個圖片裡,就會共用同一個頭資訊,從而減少了位元組數。

③解決了網頁設計師在圖片命名上的困擾,只需對一張集合的圖片上命名就可以了,不需要對每一個小元素進行命名。

④更換風格方便,只需要在一張或少張圖片上修改圖片的顏色或樣式,整個網頁的風格就可以改變。

缺點:

①在寬屏,高解析度的螢幕下的自適應頁面,你的圖片如果不夠寬,很容易出現背景斷裂。

②CSS Sprites在開發的時候,要通過photoshop或其他工具測量計算每一個背景單元的精確位置。

③在維護的時候比較麻煩,如果頁面背景有少許改動,一般就要改這張合併的圖片。

④精靈圖不能隨意改變大小和顏色。改變大小會失真模糊,降低使用者體驗,Css3新屬性可以改變精靈圖顏色,但是比較麻煩,並且新屬性有相容問題,現在一般用字型圖示代替精靈圖。

19、簡述 BFC 規則及解決的問題?

  • 什麼是bfc?

    • Formatting Context:指頁面中的一個渣染區域,並且擁有一套渣染規則,他決定了 其子標籤如何定位,以及與其他標籤的相互關係和作用。

      BFC塊級格式化上下文,它是指一個獨立的塊級渲染區域,只有Block-level BOX參與, 該區域擁有一套渲染規則來約束塊級盒子的佈局,且與區域外部無關。

  • 怎樣生成BFC

    • 根標籤
    • float的值不為none
    • overflow 的值不為 visible
    • display 的值為 inline-block
    • position 的值為 absolute 或 fixed
  • BFC的特性

    • 內部的標籤預設會在垂直方向上一個接一個的放置。
    • 垂直方向上的距離由margin決定,屬於同一個BFC的兩個相鄰標籤的margin會發 生重疊。
    • 每個標籤的左外邊距與包含塊的左邊界相接觸(從左向右),即使浮動標籤也是如此。
    • BFC 的區域不會與 float 的標籤區域重疊。
    • 計算BFC的髙度時,浮動子標籤也參與計算。
    • BFC就是頁面上的一個隔離的獨立容器,容器裡面的子標籤不會影響到外面標籤, 反之亦然。
  • BFC解決的問題

    • 外邊距塌陷
    • 清浮動
    • 兩欄或者三欄自適應佈局

20、文字溢位顯示省略號如何實現?

  • 單行文字溢位顯示省略號

    • white-space

      • normal 預設。空白會被瀏覽器忽略。
      • pre 空白會被瀏覽器保留。
      • nowrap 文字不會換行,文字會在在同一行上繼續,直到遇到 br 標籤為止。
      • pre-wrap 保留空白符序列,但是正常地進行換行。
      • pre-line 合併空白符序列,但是保留換行符。
    • text-overflow

      • clip 修剪文字。
      • ellipsis 顯示省略符號來代表被修剪的文字。
      • [string] 使用給定的字串來代表被修剪的文字。 目前只在Firefox下有效。
    • p {
          width:200px;	/*限定盒子的寬度*/
          overflow:hidden;	/*給元素設定溢位隱藏屬性*/
          text-overflow: ellipsis;	/*文字溢位顯示省略號*/
          white-space:nowrap; /* 文字不換行 */
      }
      
  • 多行文字溢位顯示省略號

    • 利用WebKit的CSS擴充套件屬性(只有-webkit-核心才有作用)

      • p{
            width:200px;	/*限定盒子的寬度*/
            overflow: hidden; /*給元素設定溢位隱藏屬性*/
            text-overflow: ellipsis; /*文字溢位顯示省略號*/
            display: -webkit-box; /*將物件作為彈性伸縮盒子模型顯示*/
            -webkit-line-clamp: 2;/*用來限制在一個塊元素顯示的文字的行數,這是一個不規範的屬性,它沒有出現在CSS規範草案中。*/
            -webkit-box-orient: vertical;/*設定或檢索伸縮盒物件的子元素的排列方式*/
        }
        

21、為什麼要初始化 CSS 樣式?哪些樣式需要初始化?

​ 保證瀏覽器的統一性,去掉標籤自帶的樣式

22、display:none 和 visibility:hidden 的區別?

盒子隱藏:

  • display:none:隱藏該元素並且該元素所佔的空間也不存在了。
  • visibility:hidden :隱藏該元素但是該元素所佔的記憶體空間還存在,即“隱身效果”。

23、你能想出幾種方法讓元素在頁面中消失?

盒子隱藏:

  • display:none:隱藏該元素並且該元素所佔的空間也不存在了。
  • visibility:hidden :隱藏該元素但是該元素所佔的記憶體空間還存在,即“隱身效果”。

24、標籤應該如何合理巢狀?

  • 標籤的巢狀規則
    • h標籤和p標籤只能巢狀其他行內標籤或者文字
    • h標籤和p標籤不能巢狀其他塊級標籤
    • a標籤屬於行內標籤,但是比較特殊,可以巢狀任何標籤,除了a標籤
    • 其他行內標籤只能巢狀文字,或者行內標籤
    • ul和ol子標籤必須是li
  • 塊級標籤
    • div h1-h6 p ul li ol li dl dt dd
    • 總是從新行開始
    • 高度、行高、外邊距以及內邊距都可以控制
    • 寬度預設是容器的100%
    • 可以容納內聯標籤和其他塊級標籤
  • 行內標籤
    • strong b em i ins u del s span
    • 和相鄰行內標籤在一行上
    • 高、寬無效,但水平方向的padding和margin可以設定,垂直方向的無效
    • 預設寬度就是它本身內容的寬度
    • 行內標籤只能容納文字或者其他行內標籤
  • 行內塊標籤
    • img input td
    • 和相鄰的行內標籤在一行,但之間會有白色縫隙
    • 預設寬度就是它本身內容的寬度
    • 高度、行高、外邊距以及內邊距都可以控制
  • 標籤顯示模式轉換 display
    • 塊轉行內:display : inline;
    • 行內轉塊 : display : block;
    • 塊、行內轉行內塊 : display : inline-block;

25、簡述網頁中常見圖片格式及特點?

格式優點缺點使用場景
jpg色彩豐富,檔案小有失真壓縮,反覆儲存圖片質量下降明顯色彩豐富的圖片/漸變影象
gif檔案小,支援動畫、透明,相容性比較好只支援256種顏色色彩簡單的logo/icon/動圖
png無失真壓縮,支援透明,簡單圖片尺寸小不支援動畫,色彩豐富的圖片尺寸大logo/icon/透明圖
webp檔案小,支援有損和無失真壓縮,支援動畫、透明瀏覽器相容性不好支援webp格式的app和webview

26、說說你瞭解的瀏覽器相容問題有哪些?

  • 相容問題

    • ie中圖片邊框問題

      • 圖片放在a標籤中

      • img {
            border:none
        }
        
    • ie8以下瀏覽器中背景複合屬性的寫法問題

      • .bg {
            background:url("./images/bg.jpg")no-repeat center
        }
        
      • //解決方案:在url和no-repeat 直接加上空格
        .bg {
            background:url("./images/bg.jpg") no-repeat center
        }
        
    • 其他ie低版本相容問題

      • 在IE6及更早瀏覽器中定義小高度的容器

        • #test {
          	overflow:hidden;
              height:1px;
              font-size:0;
              line-height:0;
          }
          
      • IE6及更早瀏覽器浮動時產生雙倍邊距的BUG

        • 解決方案:針對ie6設定該標籤的display屬性為inline即可

        • #test {
          	float:left;
              _display:inline;
          }
          
      • IE7及更早瀏覽器下子標籤相對定位時父標籤overflow屬性的auto|hidden失效的問題

        • 解決方案:給父標籤也設定相對定位position:relative;
      • 塊轉行內塊 ie7 不在一行顯示

        • 解決方案:

        • div {
              display:inline-block;
              *display:inline;
              *zoom:1;
          }
          
      • ie7 及以下瀏覽器 清浮動問題

        • /* : 單冒號相容性更好,不推薦用雙冒號 :: */
                .clearfix:after {
                    content: '';
                    display: block;
                    clear: both;
                }
          
                /* 相容 ie7 及以下瀏覽器 清浮動問題 */
                .clearfix {
                    *zoom: 1;
                }
          

27、什麼是 CSSHack 技術?

CSS Hack

  • 條件Hack

    • 大於:gt

    • 大於或等於:gte

    • 小於:lt

    • 小於或等於:lte

    • <!--[if IE]>
             <p>只在IE中能看到這個段落</p> 
         <![endif]-->
         //只有IE6以上,才能看到應用了test類的標籤是紅色文字
       <!--[if gt IE 6]>
             <style>
               .test {
                     color:red;
               }
             </style>
       <![endif]-->
      
    • IE10以上已經將條件註釋移除,使用時要注意

    • 屬性級Hack

      • _ 下劃線:選擇IE6及以下

      • *:選擇IE7及以下

      • \0:選擇ie8以上

    • color:red;//所有瀏覽器可識別
      _color:red;//僅IE6識別
      *color:red;//IE6、IE7識別
      color:red\0;//IE8、IE9識別
      
    • 選擇符級Hack

      • * html .box {
            background:red;
        }//只有在IE6顯示紅色
        
      • * + html .box {
            background:red;
        }//只有在IE7顯示紅色
        

28、在專案中你是如何做圖片優化的?

  • 使用背景圖
    • 對於頁面中與頁面內容無關,起修飾作用的圖片,使用背景圖 background-image(如頁面中小圖示尤其多次重複出現的,紋理性的背景),與頁面內容相關展示性的圖片如(廣告圖、產品圖)使用 img 標籤。
  • 圖片品質
    • 注意圖片優化:在保證視覺效果的情況下,選擇最小的圖片格式與圖片質量,以減少載入時間。
    • 注:通常顏色豐富線條複雜的圖片選擇 .jpg,顏色單一的小圖片使用 .gif,需要更好的顯示細節或需要支援半透明的圖片使用 .png 等。
  • 使用精靈圖
    • 運用 CSS sprites 技術集中小的背景圖或圖示,減少頁面 http 請求。