整合營銷服務商

          電腦端+手機端+微信端=數據同步管理

          免費咨詢熱線:

          34道常見的HTML+CSS面試題(附答案)

          眾號【傳智播客博學谷】回復關鍵詞:前端 PS Java(100G) Python(80G) 大數據 區塊鏈 測試 PPT JS(40g+300教程) HTML 簡歷 領取相關學習資料!

          一、HTML

          1、<image>標簽上title屬性與alt屬性的區別是什么?

          alt屬性是為了給那些不能看到你文檔中圖像的瀏覽者提供文字說明的。且長度必須少于100個英文字符或者用戶必須保證替換文字盡可能的短。

          這包括那些使用本來就不支持圖像顯示或者圖像顯示被關閉的瀏覽器的用戶,視覺障礙的用戶和使用屏幕閱讀器的用戶等。

          title屬性為設置該屬性的元素提供建議性的信息。使用title屬性提供非本質的額外信息。參考《alt和title屬性的區別及應用》

          2、分別寫出以下幾個HTML標簽:文字加粗、下標、居中、字體

          加粗:<b>、<strong>

          下標:<sub>

          居中:<center>

          字體:<font>、<basefont>、參考《HTML標簽列表》

          3、請寫出至少5個html5新增的標簽,并說明其語義和應用場景

          section:定義文檔中的一個章節

          nav:定義只包含導航鏈接的章節

          header:定義頁面或章節的頭部。它經常包含 logo、頁面標題和導航性的目錄。

          footer:定義頁面或章節的尾部。它經常包含版權信息、法律信息鏈接和反饋建議用的地址。

          aside:定義和頁面內容關聯度較低的內容——如果被刪除,剩下的內容仍然很合理。

          參考《HTML5 標簽列表》

          4、請說說你對標簽語義化的理解?

          a. 去掉或者丟失樣式的時候能夠讓頁面呈現出清晰的結構

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

          c. 方便其他設備解析(如屏幕閱讀器、盲人閱讀器、移動設備)以意義的方式來渲染網頁;

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

          5、Doctype作用? 嚴格模式與混雜模式如何區分?它們有何意義?

          聲明位于文檔中的最前面,處于 標簽之前。告知瀏覽器以何種模式來渲染文檔。

          嚴格模式的排版和 JS 運作模式是,以該瀏覽器支持的最高標準運行。

          在混雜模式中,頁面以寬松的向后兼容的方式顯示。模擬老式瀏覽器的行為以防止站點無法工作。

          DOCTYPE不存在或格式不正確會導致文檔以混雜模式呈現。

          6、你知道多少種Doctype文檔類型?

          標簽可聲明三種 DTD 類型,分別表示嚴格版本、過渡版本以及基于框架的 HTML 文檔。

          HTML 4.01 規定了三種文檔類型:Strict、Transitional 以及 Frameset。

          XHTML 1.0 規定了三種 XML 文檔類型:Strict、Transitional 以及 Frameset。

          Standards (標準)模式(也就是嚴格呈現模式)用于呈現遵循最新標準的網頁,

          Quirks(包容)模式(也就是松散呈現模式或者兼容模式)用于呈現為傳統瀏覽器而設計的網頁。

          7、HTML與XHTML——二者有什么區別

          a. XHTML 元素必須被正確地嵌套。

          b. XHTML 元素必須被關閉。

          c. 標簽名必須用小寫字母。

          d. XHTML 文檔必須擁有根元素。

          參考《XHTML 與 HTML 之間的差異》

          8、html5有哪些新特性、移除了那些元素?

          a. HTML5 現在已經不是 SGML 的子集,主要是關于圖像,位置,存儲,多任務等功能的增加。

          b. 拖拽釋放(Drag and drop) API

          c. 語義化更好的內容標簽(header,nav,footer,aside,article,section)

          d. 音頻、視頻API(audio,video)

          e. 畫布(Canvas) API

          f. 地理(Geolocation) API

          g. 本地離線存儲 localStorage 長期存儲數據,瀏覽器關閉后數據不丟失

          h. sessionStorage 的數據在頁面會話結束時會被清除

          i. 表單控件,calendar、date、time、email、url、search

          j. 新的技術webworker, websocket等

          移除的元素:

          a. 純表現的元素:basefont,big,center, s,strike,tt,u;

          b. 對可用性產生負面影響的元素:frame,frameset,noframes;

          9、iframe的優缺點?

          優點:

          a. 解決加載緩慢的第三方內容如圖標和廣告等的加載問題

          b. iframe無刷新文件上傳

          c. iframe跨域通信

          缺點:

          a. iframe會阻塞主頁面的Onload事件

          b. 無法被一些搜索引擎索引到

          c. 頁面會增加服務器的http請求

          d. 會產生很多頁面,不容易管理。

          參考《iframe的一些記錄》

          10、Quirks模式是什么?它和Standards模式有什么區別?

          在寫程序時我們也會經常遇到這樣的問題,如何保證原來的接口不變,又提供更強大的功能,尤其是新功能不兼容舊功能時。IE6以前的頁面大家都不會去寫DTD,所以IE6就假定 如果寫了DTD,就意味著這個頁面將采用對CSS支持更好的布局,而如果沒有,則采用兼容之前的布局方式。這就是Quirks模式(怪癖模式,詭異模式,怪異模式)。

          區別:總體會有布局、樣式解析和腳本執行三個方面的區別。

          a. 盒模型:在W3C標準中,如果設置一個元素的寬度和高度,指的是元素內容的寬度和高度,而在Quirks 模式下,IE的寬度和高度還包含了padding和border。

          b. 設置行內元素的高寬:在Standards模式下,給等行內元素設置wdith和height都不會生效,而在quirks模式下,則會生效。

          c. 設置百分比的高度:在standards模式下,一個元素的高度是由其包含的內容來決定的,如果父元素沒有設置百分比的高度,子元素設置一個百分比的高度是無效的用

          d. 設置水平居中:使用margin:0 auto在standards模式下可以使元素水平居中,但在quirks模式下卻會失效。

          11、請闡述table的缺點

          a. 太深的嵌套,比如table>tr>td>h3,會導致搜索引擎讀取困難,而且,最直接的損失就是大大增加了冗余代碼量。

          b. 靈活性差,比如要將tr設置border等屬性,是不行的,得通過td

          c. 代碼臃腫,當在table中套用table的時候,閱讀代碼會顯得異常混亂

          d. 混亂的colspan與rowspan,用來布局時,頻繁使用他們會造成整個文檔順序混亂。

          e. 不夠語義

          參考《為什么說table表格布局不好?》

          12、簡述一下src與href的區別

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

          src是source的縮寫,指向外部資源的位置,指向的內容將會嵌入到文檔中當前標簽所在位置

          href是Hypertext Reference的縮寫,指向網絡資源所在位置,建立和當前元素(錨點)或當前文檔(鏈接)之間的鏈接

          公眾號【傳智播客博學谷】回復關鍵詞:前端 PS Java Python 大數據 區塊鏈 測試 PPT JS HTML 簡歷 領取相關學習資料!

          ss中的負邊距(negative margin)是布局中的一個常用技巧,只要運用得合理常常會有意想不到的效果。

          負邊距他符合正常的文檔流特性,w3c也支持使用負邊距,因此他有很好的兼容性不是在使用hack。


          在float中使用負邊距可能會在舊的瀏覽器造成一些問題,比如下面的這些:

          1. 讓鏈接不可點擊

          2. 文本變得很難選中

          3. 失去焦點的時候按tab鍵失效

          只要對節點添加position:relative屬性就可以解決上述問題。

          負邊距+絕對定位實現水平垂直居中

          常用的已知寬高讓內容垂直水平居中就是使用絕對定位之后讓內容定位到中心點,然后使用負邊距margin將content的中心拉回到父親節點的中心重合,這樣就達到了垂直居中的目的。如下圖所示:

          負邊距實現垂直水平居中

          去除掉列表排列中多余的空隙

          在項目的開發過程中,經常會有使用浮動列表展示信息的時候,但在設計的時候為了美觀每個item之間都會設置一定的間距來達到信息隔離的目的,并且在設計的時候一般都是使用分散兩段對齊完成布局,但是在代碼實現過程總能都會讓每個item有一個右邊距(margin-right)。這樣導致最右邊的item就會產生一個多余的右邊距而被擠到下一行去。

          當代碼是后端渲染后者是循環出來的時候對最右邊的item增加class還得不斷的判斷每個item的索引值,并且當父親節點寬度改變時有可能最右一個item還在不斷的變化中,這個時候就需要對父親節點完成實現負邊距并且在外層實現超出部分隱藏的功能就可以實現。

          負邊距實現列的多余margin隱藏

          負邊距實現列超出部分的效果

          去除列表最后一個li元素的border-bottom

          列表中我們經常會使用到border-bottom來讓li與li之間的內容有一個明顯的區分,單最后一個li的邊框會與外邊框連在一起或者重合導致外觀上的不好看,一種方法就是使用css3中的最后一個的選擇器來實現,li:last-of-type{border-bottom:0 none;}

          負邊距實現最后一個的border-bottom隱藏

          完成左右的自適應布局

          在響應式布局中,經常會用到左邊固定右邊自適應或者右邊固定左邊自適應的兩欄布局或者三欄布 局,在這種情況中如果不考慮兼容可以使用css的calc函數來實現(100% - 100px)這樣的動態計算值,但是這玩意連中國手機端最大的UC瀏覽器都不支持,所以還是不要想使用了。因此需要用到負邊距來實現頁面布局。

          負邊距實現響應式布局

          實現多列等高布局

          多列等高布局實現起來較為復雜,如果要內容自適應撐大達到等高布局很不好設計,一般的可以使用js來實現高度的自定義,計算那個高度高就用那個。這兒使用極大的padding-bottom來增加高度,然后用負邊距拉回來相互抵消達到高度撐滿整個父親節點的效果。

          負邊距實現等高布局

          還有部分應用,例如在實現左右都加入了邊框的分頁上,可以使用margin-left: -1px。直接實現抵消中間兩個item都有邊框而導致的邊框疊加的效果。在實現元素的寬度或者高度增加的時候,如果100%已經不能達到需要的數字大小時就可以用負邊距在增加數值來達到目的。


          個網頁前端是由HTML DOM與嵌套組合形成視圖結加上 CSS 樣式的修飾形成視圖,由JavaScript 接受用戶的交互請求,以事件機制來響應用戶交互操作而形成的。CSS是前臺頁面形式最重要的部分,它負責控制DOM元素的頁面布局和顏色、大小的屬性。

          在CSS中有一著名的盒子模型理論,可以用它來控制DOM的位置。基于div+css技術的“盒子模型”的出現大大代替了傳統的table表格嵌套。

          雖然其十分好用,但是對于很多新手來說,卻很難搞清楚它幾個屬性和內容之間的聯系個區別。

          盒子模型概念

          所有頁面的元素都可以看做一個盒子,占據著一定的頁面空間。一般來說這些被占據的空間往往會比單純的內容要大。因此,可以通過盒子的邊框和距離等參數來控制內容的位置。

          Div+CSS 盒子模型

          說明:

          1、Margin:中文叫外邊距,主要作用是控制邊框外(Border以外)的區域,外邊距是透明的

          2、Border:中文叫邊框,是圍繞在內邊距(Padding)和內容外的邊框。注意,它不是透明的

          3、Padding:中文叫內邊距,控制內容周圍的區域,內邊距是透明的

          4、Content:內容,盒子的內容,顯示文本和圖像。

          5、在Css文件中設置的Div的Css.width和Css. height就是內容的寬和高。

          6、盒子實際尺寸有可能大于內容尺寸:

          盒子模型的總寬度等于content(寬)+padding(左右)+border(左右)+margin(左右);

          盒子模型的總高度等于content(高)+padding(上下)+border(上下)+margin(上下);

          實例演示--原始樣式

          接下來通過實例演示的方式來一一講解Margin、Border、Padding的作用和區別。

          頁面如圖所示:


          原始樣式

          代碼:

          HTML:
          <body>
              <div class="TsetUpper"></div>
              <div class="TsetMiddle"></div>
              <div class="TsetDown"></div>
          </body>
          CSS:
          .TsetUpper{
          	width: 400px;
          	height: 200px;
          	background-color: black;
          	position: relative;
          	margin: auto;
          	text-align: center;
          }
          .TsetMiddle{
          	width: 600px;
          	height: 200px;
          	background-color: red;
          	position: relative;
          	margin: auto;
          }
          .TsetDown{
          	width: 400px;
          	height: 200px;
          	background-color: black;
          	position: relative;
          	margin: auto;
          	text-align: center;
          }

          Border

          元素邊框:我們可以在CSS邊框屬性中設置元素邊框的樣式和顏色。

          按如下代碼設置Div(TsetMiddle)的Border(邊框):

          border-style:solid;
          border-width: 10px;
          border-color: aqua;

          刷新頁面如下圖:此時TsetMiddle這個盒子的總寬度已經變成200+30+30了,而且可以設置其底色和線條樣式。

          Border

          Margin

          margin 控制周圍的元素區域。margin 沒有背景顏色,是完全透明的。通過margin可以控制元素與四周元素的空隙距離;

          按如下代碼設置Div(TsetMiddle)的margin(外邊距):

          margin: 30px auto;

          刷新頁面如下圖:此時TsetMiddle這個盒子的總寬度已經變成200+30(Border)+30(Margin)+30(Border)+30(Margin)了。

          Margin

          Padding

          Padding:當元素的 padding(填充)內邊距被清除時,所釋放的區域將會受到元素背景顏色的填充。

          按如下代碼設置Div(TsetMiddle)的margin(外邊距):

          padding: 30px;

          刷新頁面如下圖:此時TsetMiddle這個盒子的總寬度已經變成200+30(Padding)+30(Border)+30(Margin)+30(Padding)+30(Border)+30(Margin)了。

          Padding

          總結

          1、各屬性的值可以用px為單位,也可以用em,百分比等。

          2、可以利用盒子的各種屬性,調整其內容在父容器中的位置。


          主站蜘蛛池模板: 一区国产传媒国产精品| 波多野结衣电影区一区二区三区 | 激情爆乳一区二区三区| 老湿机一区午夜精品免费福利| 亚洲一区视频在线播放| 日韩精品午夜视频一区二区三区| 国产一区二区四区在线观看| 乱码人妻一区二区三区| 亚洲综合色一区二区三区| 亚洲欧美成人一区二区三区| 最美女人体内射精一区二区| 国产美女露脸口爆吞精一区二区 | 中文字幕精品一区二区三区视频| 一区二区中文字幕在线观看| 久久毛片免费看一区二区三区| 午夜视频一区二区| 国产精品合集一区二区三区| 一区二区三区福利视频免费观看| 精品久久一区二区三区| 亚洲一区二区三区无码国产| 成人区人妻精品一区二区不卡网站| 国产一区二区三区日韩精品| 爆乳无码AV一区二区三区| 一区二区国产精品| 日韩毛片一区视频免费| 日本一区二区三区不卡在线视频| 国产成人无码aa精品一区| 亚洲日韩AV一区二区三区中文| 精品一区二区三区波多野结衣| 国产精品一区在线麻豆| 亚洲一区二区三区久久久久| 久久久无码一区二区三区| 精品一区二区三区东京热| 99久久精品国产一区二区成人| 国产精品无码AV一区二区三区| 国产免费一区二区三区不卡 | 红杏亚洲影院一区二区三区| 美女免费视频一区二区三区| 亚洲欧洲一区二区三区| 色综合视频一区二区三区| chinese国产一区二区|