問題1:
3種列表及嵌套
無(wú)序列表一般用于導(dǎo)航菜單等,使用范圍最廣。有序列表用于排序
問題2:如何去除表前面的點(diǎn)或者數(shù)字
list-style:none
問題3: class 和 id 有什么區(qū)別?什么時(shí)候用 class 什么時(shí)候用 id?
這兩者最大的不同,是在於 ID 選擇器在一個(gè) HTML 文件中只能被使用一次,而 Class 選擇器在一個(gè) HTML 文件中可以被使用多次。第二個(gè)不同的地方,是 ID 選擇器可以被 Javascript 中的 GetElementByID 函數(shù)所運(yùn)用,而 Class 選擇器無(wú)法被 Javascript 運(yùn)用到。
並沒有什麼固定的規(guī)則,來(lái)決定什麼時(shí)候要用 ID 及什麼時(shí)候要用 Class。我們的建議是盡量用 Class,因?yàn)檫@樣子最靈活 (同一個(gè) HTML 文件可以利用這類的選擇器多次)。唯一的例外,是當(dāng)你要用 Javascript 的 GetElementByID 函數(shù)時(shí)。在這個(gè)情況下,你就應(yīng)該要用 ID。
問題4:塊級(jí)元素、行內(nèi)元素是什么?有什么區(qū)別?分別對(duì)應(yīng)哪些常用標(biāo)簽?
塊級(jí)元素: <div>,<h> ,<ol>, <p>, <table>, <form>
行內(nèi)元素: <a>,<input>,<span>,<lable>
行內(nèi)元素與塊級(jí)元素的區(qū)別:
- 行內(nèi)元素與塊級(jí)函數(shù)可以相互轉(zhuǎn)換,通過修改display屬性值來(lái)切換塊級(jí)元素和行內(nèi)元素,行內(nèi)元素display:inline,塊級(jí)元素display:block。
- 行內(nèi)元素和其他行內(nèi)元素都會(huì)在一條水平線上排列,都是在同一行的;塊級(jí)元素卻總是會(huì)在新的一行開始排列,各個(gè)塊級(jí)元素獨(dú)占一行,垂直向下排列,若想使其水平方向排序,可使用左右浮動(dòng)(float:left/right)讓其水平方向排列。
- 行內(nèi)元素不可以設(shè)置寬高,寬度高度隨文本內(nèi)容的變化而變化,但是可以設(shè)置行高(line-height),同時(shí)在設(shè)置外邊距margin上下無(wú)效,左右有效,內(nèi)填充padding上下無(wú)效,左右有效;
塊級(jí)元素可以設(shè)置寬高,并且寬度高度以及外邊距,內(nèi)填充都可隨意控制。 - 塊級(jí)元素可以包含行內(nèi)元素和塊級(jí)元素,還可以容納內(nèi)聯(lián)元素和其他元素;行內(nèi)元素不能包含塊級(jí)元素,只能容納文本或者其他行內(nèi)元素。
問題5 display: block、display: inline、display: inline-block分別有什么作用?
display:block 將對(duì)象顯示為塊元素
display:inline 將對(duì)象顯示為行內(nèi)元素
display:inline-block 將對(duì)象顯示為行內(nèi)元素,對(duì)象的內(nèi)容顯示為塊元素
問題6
上述代碼在頁(yè)面申明3個(gè)塊元素,里面包含內(nèi)容,并將3個(gè)塊元素水平居中,上下外面距設(shè)為“0”,由于ul標(biāo)簽瀏覽器自帶樣式會(huì)覆蓋父元素的margin,所以頁(yè)面顯示為header和content之間有外邊距。
問題7 如何理解 HTML CSS 語(yǔ)義化? 在平時(shí)寫代碼的過程中要注意哪些細(xì)節(jié)
語(yǔ)義化就是根據(jù)內(nèi)容的結(jié)構(gòu)化(內(nèi)容語(yǔ)義化),選擇合適的標(biāo)簽(代碼語(yǔ)義化)便于開發(fā)者閱讀和寫出更優(yōu)雅的代碼的同時(shí)讓瀏覽器的爬蟲和機(jī)器很好地解析。
語(yǔ)義化的好處在于沒有CSS的情況下,頁(yè)面也能呈現(xiàn)出很好地內(nèi)容結(jié)構(gòu)、代碼結(jié)構(gòu),增加了用戶體驗(yàn),方便SEO及其他設(shè)備解析,也利于團(tuán)隊(duì)維護(hù)。
注意細(xì)節(jié):
- 頁(yè)面合理分層,先大后細(xì)
- 合理使用標(biāo)簽
- 合理命名id 和class,不要使用id="a",class="b"這類簡(jiǎn)陋的命名方式
問題8 form表單有什么作用?有哪些常用的input 標(biāo)簽,分別有什么作用?
<form>標(biāo)簽用于為用戶輸入創(chuàng)建html表單,表單用于向服務(wù)器傳遞數(shù)據(jù)。
- <input type="text"> 定義文本域輸入
- <input type="password">定義密碼域輸入
- <input type="file">定義文件上傳
- <input type="radio">定義單選框
- <input type="checkbox">定義復(fù)選框
- <input type="submit">定義提交表單按鈕
問題9 post 和 get 方式的區(qū)別?
- get是從服務(wù)器上獲取數(shù)據(jù),post是向服務(wù)器傳送數(shù)據(jù)。
- get是把參數(shù)數(shù)據(jù)隊(duì)列加到提交表單的ACTION屬性所指的URL中,值和表單內(nèi)各個(gè)字段一一對(duì)應(yīng),在URL中可以看到。post是通過HTTPpost機(jī)制,將表單內(nèi)各個(gè)字段與其內(nèi)容放置在HTML HEADER內(nèi)一起傳送到ACTION屬性所指的URL地址。用戶看不到這個(gè)過程。
- 對(duì)于get方式,服務(wù)器端用Request.QueryString獲取變量的值,對(duì)于post方式,服務(wù)器端用Request.Form獲取提交的數(shù)據(jù)。
- get傳送的數(shù)據(jù)量較小,不能大于2KB。post傳送的數(shù)據(jù)量較大,一般被默認(rèn)為不受限制。但理論上,IIS4中最大量為80KB,IIS5中為100KB。5.get安全性非常低,post安全性較高。
問題10 在input里,name 有什么作用?
name 屬性用于對(duì)提交到服務(wù)器后的表單數(shù)據(jù)進(jìn)行標(biāo)識(shí),或者在客戶端通過 JavaScript 引用表單數(shù)據(jù)。只有設(shè)置了 name 屬性的表單元素才能在提交表單時(shí)傳遞它們的值。
問題11 <button>提交</button>、<a class="btn" href="#">提交</a><input type="submit" value="提交">三者有什么區(qū)別?
<button>提交</button>定義了一個(gè)提交按鈕;
<a class="btn" href="#">提交</a>定義了一個(gè)提交鏈接,點(diǎn)擊會(huì)跳轉(zhuǎn)。
<input type="submit" value="提交">定義了一個(gè)form表單提交按鈕,用于傳遞form表單。
問題12 radio 如何 分組?
<input type="radio">中"name"值相同的分為一組
問題13 placeholder 屬性有什么作用?
palceholder用于描述輸入字段預(yù)期值的提示信息(hint)。 該提示會(huì)在輸入字段為空時(shí)顯示,并會(huì)在字段獲得焦點(diǎn)時(shí)消失。
問題14 type=hidden隱藏域有什么作用? 舉例說明
隱藏域在頁(yè)面中對(duì)于用戶是不可見的,在表單中插入隱藏域的目的在于收集或發(fā)送信息,以利于被處理表單的程序所使用。瀏覽者單擊發(fā)送按鈕發(fā)送表單的時(shí)候,隱藏域的信息也被一起發(fā)送到服務(wù)器。
- 有些時(shí)候我們要給用戶一信息,讓他在提交表單時(shí)提交上來(lái)以確定用戶身份,如sessionkey,等等.當(dāng)然這些東西也能用cookie實(shí)現(xiàn),但使用隱藏域就簡(jiǎn)單的多了.而且不會(huì)有瀏覽器不支持,用戶禁用cookie的煩惱。
- 有些時(shí)候一個(gè)form里有多個(gè)提交按鈕,怎樣使程序能夠分清楚到底用戶是按那一個(gè)按鈕提交上來(lái)的呢?我們就可以寫一個(gè)隱藏域,然后在每一個(gè)按鈕處加上onclick="document.form.command.value="xx""然后我們接到數(shù)據(jù)后先檢查command的值就會(huì)知道用戶是按的那個(gè)按鈕提交上來(lái)的。
- 有時(shí)候一個(gè)網(wǎng)頁(yè)中有多個(gè)form,我們知道多個(gè)form是不能同時(shí)提交的,但有時(shí)這些form確實(shí)相互作用,我們就可以在form中添加隱藏域來(lái)使它們聯(lián)系起來(lái)。
- javascript不支持全局變量,但有時(shí)我們必須用全局變量,我們就可以把值先存在隱藏域里,它的值就不會(huì)丟失了。
- 還有個(gè)例子,比如按一個(gè)按鈕彈出四個(gè)小窗口,當(dāng)點(diǎn)擊其中的一個(gè)小窗口時(shí)其他三個(gè)自動(dòng)關(guān)閉.可是IE不支持小窗口相互調(diào)用,所以只有在父窗口寫個(gè)隱藏域,當(dāng)小窗口看到那個(gè)隱藏域的值是close時(shí)就自己關(guān)掉。