日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 前端技术 > HTML >内容正文

HTML

HTML和CSS面试题—整理过的48题,关注收藏,持续更新

發布時間:2023/12/20 HTML 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 HTML和CSS面试题—整理过的48题,关注收藏,持续更新 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

1:主流瀏覽器的內核分別是什么

IE:trident內核?[‘traidnt ]

Firefox:gecko 內核?[?ɡek??]

Safari:webkit 內核

Chrome,Opera:Blink內核(基于webkit) ?

2:每個HTML文件開頭都有<!DOCTYPE html>,它的作用是什么

<!DOCTYPE html>聲明位于文檔中的最前面的位置,此標簽告知瀏覽器文檔使用哪種HTML或XHTMl規范(重點:告訴瀏覽器按照何種規范解析頁面)

嚴格模式下:頁面排版及 JS 解析是以該瀏覽器支持的最高標準來執行

混雜模式:不嚴格按照標準執行,主要用來兼容舊的瀏覽器,向后兼容

<!DOCTYPE??html>不存在或格式不正確會導致文檔以混雜模式呈現

3: div+css的布局較table布局有什么優點?

(1)div+css布局的好處:

a.符合W3C標準,結構、樣式和行為分離,代碼結構清晰明了,帶來足夠好的可維護性。

b.布局精準,網站版面布局修改簡單。

c.加快了頁面的加載速度(最重要的)。

d.用只包含結構化內容的HTML代替嵌套的標簽,提高另外搜索引擎對網頁的搜索效率。

  • table布局的好處
  • a.容易上手。

    b.可以形成復雜的變化,簡單快速。

    c.表現上更加“嚴謹”,在不同瀏覽器中都能得到很好的兼容。

    4:img的alt屬性與title屬性有何異同

    alt屬性:在圖片無法加載的時候才會顯示的其值,

    title屬性:在圖片正常加載鼠標劃上去顯示的值

    5:strong標簽與em標簽的異同

    strong:粗體強調標簽,強調,表示內容的重要性

    em:斜體強調標簽,更強烈強調,表示內容的強調點

    6:漸進增強和優雅降級之間的不同

    漸進增強(progressive enhancement)?[pr?u'ɡresiv][?n?hɑ?nsm?nt]

    :針對低版本瀏覽器進行構建頁面,保證最基本的功能,然后再針對高級瀏覽器進行效果、交互等改進和追加功能達到更好的用戶體驗。

    優雅降級(?graceful degradation)[?ɡre?sfl ,deɡr??de??n]:一開始就構建完整的功能,然后再針對低版本瀏覽器進

    行兼容。

    漸進增強的觀點關注內容本身

    優雅降級的觀點更關注主流瀏覽器一些特定的瀏覽器除修復較大的錯誤外其他的差異將會被直接忽略

    7:為什么利用多個域名來存儲網站資源

  • :CDN緩存更方便CDN主要用來使用戶就近獲取資源
  • 突破瀏覽器并發限制同一時間針對同一域名下的請求有一定數量限制,超過限制數目的請求會被阻塞。一些靜態資源,如果放到不同的域名下面就能實現與其他資源的并發請求。
  • :節約 cookie 帶寬
  • :節約主域名的連接數,優化頁面響應速度
  • :對于UGC的內容和主站隔離,防止不必要的安全問題。
  • 8:網頁標準和標準制定機構的意義

    網頁標準的制定,使得web發展的更健康,提高網站的易用性。

    a、開發者遵循統一的標準,降低了開發難度和開發成本

    b、SEO優化網頁也會更加方便,不會因為濫用代碼出現各種bug和安全問題。

    9:簡述一下 src與 href 的區別

    src 用于替換當前元素,href 用于在當前文檔和引用資源之間確立聯系。

    Src是source的縮寫指向外部資源的位置指向的內容將會嵌入到文檔中當前標簽所在的位置例如js腳本img圖片frame等當瀏覽器解析到該元素時,會暫停其他資源的下載和處理,直到將該資源加載、編譯、執行完畢這也是為什么將js 腳本放在底部而不是頭部。

    href 是 Hypertext Reference 的縮寫,指向網絡資源所在位置,建立和當前元素(錨點)或當前文檔(鏈接)之間的鏈接,會并行下載資源并且不會停止對當前文檔的處理。這也是為什么建議使用 link 方式來加載 css,而不是使用@import 方式。

    10:網頁制作會用的圖片格式有哪些

    ?Png,jpeg,gif,svg,webp

    webp格式谷歌開發的新的圖片格式體積小質量好但兼容性略差

    11:微格式前端中怎么考慮微格式

    微格式(Microformats)是建立在已有的、被廣泛采用的標準基礎之上的一組簡單的、開放的數據格式

    作用

    a、在捉取Web內容時,能夠更為準確地識別內容塊的語義;

    b、對內容進行操作,包括提供訪問、校對,還可以將其轉化成其他的相關格式,提供給外部程序和Web服務使用。

    應用例子

    當用手機瀏覽某公司的網站時,手機瀏覽器識別出了網頁中的 hCard 信息。這個 hCard 標記了該公司的多種聯絡方式,手機瀏覽器很聰明地提示我“是否保存到通訊錄”,于是我很經松地保存了我所需要的信息

    12:從用戶刷新網頁開始,一次 js 請求一般情況下有哪些地方會有緩存處理?

    DNS緩存,CDN緩存,客戶端(瀏覽器緩存),服務器緩存

    DNS緩存是指在正常訪問ip之后,系統會將這個ip存儲起來,當再次訪問的時候,系統就會把本地的DNS緩存提取顯示,等于是加速了網址的解析。

    CDN是Content Delivery NetWork的簡稱,即‘內容分發網絡'的意思,主要用于分地域的集群服務器,當用戶瀏覽網站請求數據時,CDN會選擇一個離用戶最近的CDN邊緣節點來響應用戶的請求。

    服務器緩存就是存放頻繁訪問內容的服務器。

    13:一個頁面中有大量的圖片(大型電商網站),加載很慢,你有哪些辦法優化這些圖片的加載,給建

    a.?圖片懶加載,滾動到相應位置才加載圖片。

    b.?圖片預加載,如果為幻燈片、相冊等,將當前展示圖片的前一張和后一張優先下載。

    c.?使用CSSsprite,SVGsprite,Iconfont、Base64等技術,如果圖片為css圖片的話。

    d.?如果圖片過大,可以使用特殊編碼的圖片,加載時會先加載一張壓縮的特別厲害的縮略圖,以提高用戶體驗。

    14.你如何理解 HTML 結構的語義化

    A:在沒有CSS的情況下,頁面也能呈現出很好地內容結構、代碼結構:裸奔時好看;

    B:用戶體驗:例如title、alt用于解釋名詞或解釋圖片信息、label標簽的活用;

    C:有利于SEO:和搜索引擎建立良好溝通,有助于爬蟲抓取更多的有效信息:爬蟲依賴于標簽來確定上下文和各個關鍵字的權重;

    D:方便其他設備解析(如屏幕閱讀器、盲人閱讀器、移動設備)更好的方式來渲染網頁;

    E:便于團隊開發和維護,語義化更具可讀性,遵循W3C標準的團隊都遵循這個標準,可以減少差異化。

    15:前端角度出發有哪些注意事項有利于SEO?

    (1).維護網站,提高內容質量,保持更新

    (2).網站結構布局優化:盡量簡單、開門見山,提倡扁平化結構。

    (3).控制首頁鏈接數量,要適中

    (4).導航優化

    a:盡量采用文字方式

    b:搭配圖片導航,但是圖片代碼一定要進行優化,img標簽必須添加“alt”和“title”屬性

    c:應該加上面包屑導航

    (5).控制頁面的大小:減少http請求,提高網站的加載速度

    (6).適量的關鍵詞和網頁描述

    title標題強調重點即可

    meta keywords標簽:關鍵詞列重要關鍵字即可

    meta description標簽:網頁描述要高度概括

    body中的標簽:盡量讓代碼語義化

    a標簽:頁內鏈接,要加 “title” 屬性加以說明

    img應使用 “alt” 屬性加以說明

    strong、em標簽 : 需要強調時使用

    巧妙利用CSS布局

    謹慎使用 display:none

    保留文字效果

    16:對DOM設置CSS樣式的方式有哪些

    A:外部樣式表,引入一個外部 css 文件

    B:內部樣式表,將 css 代碼放在 <head> 標簽內部,<style>?

    C:內聯樣式,將 css 樣式直接定義在 HTML 元素內部

    17:css選擇器有哪些,選擇器的權重優先級

    選擇器類型

    (1)、ID  #id

    (2)、class  .class

    (3)、標簽  p

    (4)、通用  *

    (5)、屬性  [type="text"]

    (6)、偽類  a: hover

    (7)、偽元素  li: nth - child

    (8)、子選擇器(ul < li) 、相鄰選擇器(h1 + p)后代選擇器(li a)

    權重計算規則

    一般而言,選擇器越特殊,它的優先級越高。也就是選擇器指向的越準確,它的優先級就越高。

    !important 比 內聯優先級高

    (1).?第一等:代表內聯樣式,如: style=””,權值為1000。

    (2).?第二等:代表ID選擇器,如:#content,權值為0100。

    (3).?第三等:代表類,偽類和屬性選擇器,如.content,權值為0010。

    (4).?第四等:代表標簽和偽元素選擇器,如div p,權值為0001。

    (5).?通配符、子選擇器、相鄰選擇器等的。如*、>、+,權值為0000。

    (6).?繼承的樣式沒有權值。

    (7).相同權重

    優先級就近原則,樣式定義最近者為準,載入樣式以最后載入的定位為準;

    繼承性

    可繼承: font-size font-family color;

    不可繼承 :border padding margin width height ;

    CSS3 新增偽類舉例:

    p:first-of-type 選擇屬于其父元素的首個 <p> 元素的每個 <p> 元素。

    p:last-of-type 選擇屬于其父元素的最后 <p> 元素的每個 <p> 元素。

    p:only-of-type 選擇屬于其父元素唯一的 <p> 元素的每個 <p> 元素。

    p:only-child 選擇屬于其父元素的唯一子元素的每個 <p> 元素。

    p:nth-child(2) 選擇屬于其父元素的第二個子元素的每個 <p> 元素。

    :enabled、:disabled 控制表單控件的禁用狀態。

    :checked,單選框或復選框被選中。

    18:css對DOM元素設置不顯示的方式

    display:none;隱藏,并且不占位 寬高各種屬性值都‘丟失’
    visibility:hidden;隱藏,占位僅是視覺上‘看不見’
    width:0;height:0;overflow:hidden;這只是通過設置元素的大小使元素不顯示

    19:超鏈接訪問過后hover樣式就不出現的問題是什么如何解決

    問題是a標簽的四種狀態排序出問題了

    正確排序L-V-H-A

    love hate原則,即l(link)ov(visited)e h(hover)a(active)te。

    a:link 普通的、未被訪問的鏈接

    a:visited 用戶已訪問的鏈接

    a:hover 鼠標指針位于鏈接的上方

    a:active 鏈接被點擊的時刻

    20:?什么是 Css Hack?ie6,7,8 的 hack 分別是什么?

    針對不同的瀏覽器寫不同的 CSS code 的過程,就是 CSS hack。

    21. 行內元素和塊級元素的具體區別是什么?行內元素的 padding 和 margin 可設置嗎?

    (1):塊級元素(block)特性:

    總是獨占一行,表現為另起一行開始,而且其后的元素也必須另起一行顯示;

    寬度(width)、高度(height)、內邊距(padding)和外邊距(margin)都可控制;

    (2):內聯元素(inline)特性:

    寬度(width)、高度(height)、內邊距的上下都不可設置內外邊距的左右可設置其大小就是里面文字或圖片的大小。

    (3):inline-block 元素

    擁有內在尺寸,可設置高寬,但不會自動換行

    <input> 、<img> 、<button> 、<texterea> 、<label>。

    22:什么是外邊距重疊?重疊的結果是什么?

    外邊距重疊就是 margin-collapse。

    折疊外邊距 :在 CSS 當中,相鄰的兩個盒子(可能是兄弟關系也可能是祖先關系)的外邊距可以結合成一個單獨的外邊距。

    折疊結果遵循下列計算規則:

    兩個相鄰的外邊距都是正數時,折疊結果是它們兩者之間較大的值。

    兩個相鄰的外邊距都是負數時,折疊結果是兩者絕對值的較大值。

    兩個外邊距一正一負時,折疊結果是兩者的相加的和。

    23:rgba()和opacity區別

    opacity作用于元素,以及元素內的所有內容的透明度(元素會繼承其屬性)
    而rgba()只作用于元素的顏色或其背景色(設置rgba透明的元素的子元素不會繼承透明效果)

    24. css 中可以讓文字在垂直和水平方向上重疊的兩個屬性是什么?

    垂直方向:line-height

    水平方向:letter-spacing 增加或減少字符間距。

    可用于消除 inline-block 元素間的換行符空格間隙問題。

    25:如何垂直居中一個浮動元素

    方法一:.child{

    ? height: 100px;

    position: absolute;//父元素相對定位

    top:50%;

    left:50%;

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

    }

    方法二:.child{

    width: 100px;

    height: 100px;

    position: absolute;

    top:50%;

    left:50%;

    margin-top: -50px;

    margin-left: -50px;

    }

    方法三:child {

    width: 100px;

    height: 100px;

    position: absolute;

    top: 0;

    left: 0;

    right: 0;

    bottom: 0;

    margin: auto

    }

    26:如何垂直居中一個img??

    方法一:<img>的容器

    .img-container{

    display: table-cell;

    vertical-align: middle;

    text-align: center;

    }

    方法二:方法二

    .img-container{

    display: flex;

    justify-content: center;

    align-items: center;}

    27. px 和 em 的區別。

    px 和 em 都是長度單位,區別是,px 的值是固定的,指定是多少就是多少,計算比較容易。em 得值不是固定的,并且 em 會繼承父級元素的字體大小。

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

    28:Sass、LESS 是什么?大家為什么要使用他們?

    是 CSS 預處理器。他是 CSS 上的一種抽象層。他們是一種特殊的語法/語言編譯成

    CSS。

    優勢

    結構清晰,便于擴展。

    減少了重復代碼的編寫增加了變量等的功能

    可以方便的屏蔽瀏覽器私有語法差異。

    可以輕松實現多重繼承。

    完全兼容CSS代碼,可以方便地應用到老項目中。less只是在CSS語法上做了擴展,所以老的CSS代碼也可以與less代碼一同編譯。

    29:CSS 中 link 和@import 的區別是:

    Link 屬于 html 標簽,而@import 是 CSS 中提供的

    在頁面加載的時候,link 會同時被加載,而@import 引用的 CSS 會在頁面加載完成后才會加載引用的 CSS ,@import 只有在 ie5 以上才可以被識別,

    ?link 是 html 標簽,不存在瀏覽器兼容性問題

    Link 引入樣式的權重大于@import 的引用(@import 是將引用的樣式導入到當前的頁面中)

    30:簡介盒子模型:

    CSS 的盒子模型有兩種:IE 盒子模型、標準的 W3C 盒子模型模型

    盒模型:內容、內邊距、外邊距(一般不計入盒子實際寬度)、邊框

    0417 第二次提問

    31:為什么要初始化樣式?

    由于瀏覽器兼容的問題,不同的瀏覽器對標簽的默認樣式值不同,若不初始化會造成不同

    瀏覽器之間的顯示差異

    但是初始化 CSS 會對搜索引擎優化造成小影響

    32. BFC 是什么?

    BFC(塊級格式化上下文),頁面上的一個隔離的獨立容器一個創建了新的 BFC 的盒子是獨立布局的,盒子內元素的布

    局不會影響盒子外面的元素。在同一個 BFC 中的兩個相鄰的盒子在垂直方向發生 margin

    重疊的問題

    創建BFC

    1、float的值不是none。

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

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

    4、overflow的值不是visible

    33.HTML 與 XHTML——二者有什么區別?

    1. 所有的標記都必須要有一個相應的結束標記

    2. 所有標簽的元素和屬性的名字都必須使用小寫

    3. 所有的 XML 標記都必須合理嵌套

    4. 所有的屬性必須用引號 "" 括起來

    5. 把所有 < 和 & 特殊符號用編碼表示

    6. 給所有屬性賦一個值

    7. 不要在注釋內容中使用 "--"

    8. 圖片必須有說明文字

    34.html 常見兼容性問題?

    瀏覽器默認的margin和padding不同
    解決方案:加一個全局的 *{margin:0;padding:0;} 來統一

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

    (1).標簽閉合、標簽小寫、不亂嵌套、提高搜索機器人搜索幾率、

    (2):使用外 鏈 css 和 js 腳本、結構行為表現的分離、文件下載與頁面速度更快、內容能被更多的用戶所訪問、內容能被更廣泛的設備所訪問、

    (3):更少的代碼和組件,容易維 護、改版方便,不需要變動頁面內容、提供打印版本而不需要復制內容、提高網站易用性。

    36:常見行內元素有哪些?塊級元素有哪些?CSS 的盒模型?

    CSS 規范規定,每個元素都有 display 屬性,確定該元素的類型,每個元素都有默認

    的 display 值

    塊級元素(默認值是‘block’)?: div ?p??h1-h6?form ul hr table

    行內元素(默認值是‘inline’)?: a??b??br??i??span input?img?link?select ?small??strong

    Css 盒模型:內容,border ,margin,padding

    37:前端頁面的基本構成,分別是?作用是?

    結構層??Html

    表示層??CSS

    行為層 j?s

    38:列出 display 的值并說明他們的作用

    display:

    none:取消樣式

    block:塊級元素

    inline:行內元素

    inline-block:行內塊元素

    normal:默認樣式

    flex:彈性布局

    39:position的值注意他們的定位參照原點

    *absolute

    生成絕對定位的元素,相對于離最近的包含塊元素進行定位。

    *fixed

    生成絕對定位的元素,相對于瀏覽器窗口進行定位。

    * relative

    生成相對定位的元素,相對于其正常位置進行定位。

    * static 默認值。沒有定位,元素出現在正常的流中

    * inherit 規定從父元素繼承 position 屬性的值。

    40:i標簽與em標簽和b標簽與strong標簽的區別

    (1):b標簽和strong標簽都可以對文本進行加粗

    (2):i標簽和em標簽同樣也可以對文本進行傾斜

    但是strong和em有強調的作用,有利于SEO(搜索引擎優化

    所以日常工作中建議用strong和em標簽。

    41:瀏覽器標準模式和怪異模式?

    ??定義

    標準模式頁面按照HTML,CSS的定義渲染,

    怪異模式就是瀏覽器為了兼容很早之前針對舊版本瀏覽器設計,并未嚴格遵循W3C標準而產生的一種頁面渲染模式。

    ??區別

    兩者盒子模型 渲染模式的不同

    三者之間的區別對比:

    特性

    Cookie

    localStorage

    sessionStorage

    特性

    一般由服務器生成,可設置失效時間。如果在瀏覽器端生成Cookie,默認是關閉瀏覽器后失效

    除非被清除,否則永久保存

    僅在當前會話下有效,關閉頁面或瀏覽器后被清除

    存放數據大小

    4K左右

    一般為5MB

    與服務器端通信

    每次都會攜帶在HTTP頭中,如果使用cookie保存過多數據會帶來性能問題

    僅在客戶端(即瀏覽器)中保存,不參與和服務器的通信

    易用性

    需要程序員自己封裝,源生的Cookie接口不友好

    源生接口可以接受,亦可再次封裝來對Object和Array有更好的支持

    相同點:都存儲在客戶端
    不同點:

    1.存儲大小

    cookie數據大小不能超過4k。

    sessionStorage和localStorage 雖然也有存儲大小的限制,但比cookie大得多,可以達到5M或更大。

    2.有效時間

    localStorage ? ?存儲持久數據,瀏覽器關閉后數據不丟失除非主動刪除數據;

    sessionStorage ?數據在當前瀏覽器窗口關閉后自動刪除。

    cookie ? ? s? ? ?設置的cookie過期時間之前一直有效,即使窗口或瀏覽器關閉

    3. 數據與服務器之間的交互方式

    cookie的數據會自動的傳遞到服務器,服務器端也可以寫cookie到客戶端

    sessionStorage和localStorage不會自動把數據發給服務器,僅在本地保存。

    sessionStorage 用于本地存儲一個會話(session)中的數據,這些數據只有在同一個會

    話中的頁面才能訪問并且當會話結束后數據也隨之銷毀。因此 sessionStorage 不是一種持久化的本地存儲,僅僅是會話級別的存儲。而 localStorage 用于持久化的本地存儲,除非主動刪除數據,否則數據是永遠不會過期的。

    43:IE 的雙邊距 BUG:塊級元素 float 后設置橫向 margin,ie6 顯示的margin 比設置的較大。

    解決:加入_display:inline

    44:從瀏覽器地址欄輸入url到顯示頁面的步驟 ??

    ?????瀏覽器根據請求的 URL 交給 DNS 進行域名解析,找到真實 IP 地址,向服務器發起請求;

    ??????服務器交給后臺處理完成后返回數據,瀏覽器接收文件(HTML、CSS、JS、images等);

    ??????瀏覽器對加載到的資源(HTML、CSS、JS、images等)進行語法解析,建立相應的內部數據結構(如HTML的DOM);

    ??????載入解析到的資源文件,渲染頁面,完成。

    46:寫出常用的css傳統布局

    ????表格布局,

    ????浮動布局,

    ???????浮動布局主要采用float和clear兩個屬性來構建。

    ????定位布局 ?

    ????????position屬性來實現元素的絕對定位和相對定位。

    ?流體布局的方式

    47:簡單描述一下什么是flex布局及常用屬性說明

    ???????1、 ?flex-direction:排列方向

    ????????????flex-direction: row | row-reverse | column | column-reverse

    ???????2、flex-wrap如果一條軸線排不下,如何換行

    ????????????flex-wrap: nowrap | wrap | wrap-reverse

    ???????3、flex-flow屬性(上述兩個組合)

    ????????????flex-flow: flex-direction, flex-wrap

    ????????????flex-direction屬性和flex-wrap屬性的簡寫形式,默認值為row nowrap

    ???????4、justify-content屬性(在主軸上的對齊方式)橫向

    ????????????justify-content: flex-start | flex-end | center | space-between | space-around

    ???????5、align-items屬性(在交叉軸上如何對齊)縱向

    ????????align-items: flex-start | flex-end | center | baseline | stretch

    ???????6、flex-grow屬性(放大比例,默認為0,即如果存在剩余空間,也不放大)

    ????????flex-grow: 默認為0 ?

    ???????7、flex-shrink屬性(縮小比例,默認為1,即如果空間不足,則縮小)

    ????????flex-shrink: 默認為1

    ???????8、flex-basis屬性(在分配多余空間之前,項目占據的主軸空間)

    ????????flex-basis: | auto

    ???????9、flex屬性

    ????????flex屬性是flex-grow, flex-shrink 和 flex-basis的簡寫,默認值為0 1 auto。后兩個屬性可選

    ????????flex: auto; (1 1 auto)

    ????????flex: none; (0 0 auto)

    48:如何初始化css的樣式

    ????????css reset

    ????????normalize css

    ????????*{}

    總結

    以上是生活随笔為你收集整理的HTML和CSS面试题—整理过的48题,关注收藏,持续更新的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。